nl::PairingCode

Zusammenfassung

Aufzählungen

@353 enum
@354 enum
@355 enum
@356{
  kStandardPairingCodeLength = 6,
  kKryptonitePairingCodeLength = 9,
  kPairingCodeLenMin = 2,
  kBitsPerCharacter = 5
}
enum

Funktionen

GeneratePairingCode(uint8_t pairingCodeLen, char *outBuf)
Erzeuge einen zufälligen Kopplungscode.
IntToPairingCode(uint64_t val, uint8_t pairingCodeLen, char *outBuf)
Codieren Sie einen Ganzzahlwert als Weave-Kopplungscode.
IntToPairingCodeChar(int val)
char
Wandelt einen ganzzahligen Wert im Bereich 0–31 in das entsprechende Weave-Kopplungscodezeichen um.
IsValidPairingCodeChar(char ch)
bool
Gibt "true" zurück, wenn das angegebene Zeichen ein gültiges Zeichen für einen Weave-Kopplungscode ist.
KryptoniteDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Generiert einen Kryptonite-Kopplungscodestring anhand einer Kryptonite-Geräte-ID.
KryptonitePairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Gibt die mit Kryptonite-Kopplungscode codierte Geräte-ID zurück.
NevisDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Generiert einen Nevis-Kopplungscodestring anhand einer Nevis-Geräte-ID.
NevisPairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Gibt die mit dem Nevis-Kopplungscode codierte Geräte-ID zurück.
NormalizePairingCode(char *pairingCode, size_t & pairingCodeLen)
void
Normalisieren Sie die Zeichen in einem Kopplungscodestring.
PairingCodeCharToInt(char ch)
int
Wandelt ein Weave-Kopplungscodezeichen in einen ganzzahligen Wert im Bereich 0 bis 31 um.
PairingCodeToInt(const char *pairingCode, size_t pairingCodeLen, uint64_t & val)
Decodieren Sie einen Weave-Kopplungscode als Ganzzahlwert.
VerifyPairingCode(const char *pairingCode, size_t pairingCodeLen)
Überprüfe einen Weave-Kopplungscode anhand des Prüfzeichens.

Aufzählungen

@353

 @353

@354

 @354

@355

 @355

@356

 @356
Attribute
kBitsPerCharacter

Anzahl der Bits, die in einem einzelnen Kopplungscodezeichen codiert sind.

kKryptonitePairingCodeLength

Länge des Kopplungscodes für Kryptonite.

kPairingCodeLenMin

Mindestlänge eines Kopplungscodes.

kStandardPairingCodeLength

Länge des Kopplungscodes für die meisten Nest-Produkte.

Funktionen

GeneratePairingCode

WEAVE_ERROR GeneratePairingCode(
  uint8_t pairingCodeLen,
  char *outBuf
)

Erzeuge einen zufälligen Kopplungscode.

Die Funktion generiert einen Zufalls-Weave-Kopplungs-Code-String mit einem bestimmten Längen-Wert, der als Big-Endian-Zahl mit Base 32 codiert ist, plus einem nachgestellten Verhoeff-Prüfzeichen. Der generierte String hat eine feste Länge, die durch den Parameter „pairingCodeLen“ definiert wird. Die Zeichenfolge wird auf der linken Seite nach Bedarf mit Nullen aufgefüllt, um diese Länge zu erreichen.

Details
Parameter
[in] pairingCodeLen
Die gewünschte Länge des Kopplungscodestrings, einschließlich des nachgestellten Prüfzeichens. Muss >= 2 sein.
[out] outBuf
Ein Zeiger auf einen Zeichenpuffer, der den codierten Kopplungscode sowie ein Null-Abschlusszeichen empfängt. Der bereitgestellte Zwischenspeicher sollte mindestens so groß sein wie „pairingCodeLen + 1“.
Rückgabewerte
WEAVE_NO_ERROR
Gibt an, ob die Methode erfolgreich war.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn „pairingCodeLen“ < 2 ist oder der angegebene Ganzzahlwert nicht mit der von „pairingCodeLen“ angegebenen Anzahl von Zeichen, minus 1 für das Prüfzeichen, codiert werden kann.

IntToPairingCode

WEAVE_ERROR IntToPairingCode(
  uint64_t val,
  uint8_t pairingCodeLen,
  char *outBuf
)

Codieren Sie einen Ganzzahlwert als Weave-Kopplungscode.

Die Funktion generiert eine Weave-Kopplungs-Codezeichenfolge, die aus einem bereitgestellten vorzeichenlosen Ganzzahlwert besteht, der als Big-Endian-Zahl mit Base32 codiert ist, und einem nachgestellten Verhoeff-Prüfzeichen. Der generierte String hat eine feste Länge, die durch den Parameter „pairingCodeLen“ definiert wird. Die Zeichenfolge wird auf der linken Seite nach Bedarf mit Nullen aufgefüllt, um diese Länge zu erreichen.

Details
Parameter
[in] val
Wert, der codiert werden soll
[in] pairingCodeLen
Die gewünschte Länge des codierten Kopplungscodestrings, einschließlich des nachgestellten Prüfzeichens. Muss >= 2 sein.
[out] outBuf
Ein Zeiger auf einen Zeichenpuffer, der den codierten Kopplungscode sowie ein Null-Abschlusszeichen empfängt. Der bereitgestellte Zwischenspeicher sollte mindestens so groß sein wie „pairingCodeLen + 1“.
Rückgabewerte
WEAVE_NO_ERROR
Gibt an, ob die Methode erfolgreich war.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn „pairingCodeLen“ < 2 ist oder der angegebene Ganzzahlwert nicht mit der von „pairingCodeLen“ angegebenen Anzahl von Zeichen, minus 1 für das Prüfzeichen, codiert werden kann.

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

Wandelt einen ganzzahligen Wert im Bereich 0–31 in das entsprechende Weave-Kopplungscodezeichen um.

Beachten Sie, dass diese Funktion immer Großbuchstaben erzeugt.

Details
Parameter
[in] val
Ganzzahlwert, der umgewandelt werden soll.
Rückgabe
Das Kopplungscodezeichen, das dem angegebenen Ganzzahlwert entspricht, oder 0, wenn der Ganzzahlwert außerhalb des zulässigen Bereichs liegt.

IsValidPairingCodeChar

bool IsValidPairingCodeChar(
  char ch
)

Gibt "true" zurück, wenn das angegebene Zeichen ein gültiges Zeichen für einen Weave-Kopplungscode ist.

Bei dieser Funktion wird die Groß-/Kleinschreibung nicht berücksichtigt.

Details
Parameter
[in] ch
Das Zeichen, das geprüft werden soll.
Rückgabe
True, wenn das angegebene Zeichen ein gültiges Zeichen für einen Weave-Kopplungscode ist.

KryptoniteDeviceIdToPairingCode

WEAVE_ERROR KryptoniteDeviceIdToPairingCode(
  uint64_t deviceId,
  char *pairingCodeBuf,
  size_t pairingCodeBufSize
)

Generiert einen Kryptonite-Kopplungscodestring anhand einer Kryptonite-Geräte-ID.

Details
Parameter
[in] deviceId
Eine Kryptonite-Geräte-ID.
[out] pairingCodeBuf
Ein Zeiger auf einen Zwischenspeicher, der den Kryptonite-Kopplungscode, ein NULL-Beendigungszeichen, empfängt. Der bereitgestellte Puffer sollte mindestens 7 Zeichen umfassen.
[in] pairingCodeBufSize
Die Größe des Zwischenspeichers, auf den „pairingCodeBuf“ verweist.
Rückgabewerte
WEAVE_NO_ERROR
Gibt an, ob die Methode erfolgreich war.
WEAVE_ERROR_INVALID_ARGUMENT
Die angegebene Geräte-ID liegt außerhalb des zulässigen Bereichs oder der bereitgestellte Puffer ist zu klein.

KryptonitePairingCodeToDeviceId

WEAVE_ERROR KryptonitePairingCodeToDeviceId(
  const char *pairingCode,
  uint64_t & deviceId
)

Gibt die mit Kryptonite-Kopplungscode codierte Geräte-ID zurück.

Details
Parameter
[in] pairingCode
Ein NULL-beendeter String, der einen Kryptonit-Kopplungscode enthält.
[out] deviceId
Ein Verweis auf eine Ganzzahl, die die decodierte Kryptonite-Geräte-ID empfängt.
Rückgabewerte
WEAVE_NO_ERROR
Gibt an, ob die Methode erfolgreich war.
WEAVE_ERROR_INVALID_ARGUMENT
Die Länge des Kopplungscodes ist falsch, er enthält ungültige Zeichen oder die ersten Zeichen des Kopplungscodes stimmen nicht mit dem Prüfzeichen überein.

NevisDeviceIdToPairingCode

WEAVE_ERROR NevisDeviceIdToPairingCode(
  uint64_t deviceId,
  char *pairingCodeBuf,
  size_t pairingCodeBufSize
)

Generiert einen Nevis-Kopplungscodestring anhand einer Nevis-Geräte-ID.

Details
Parameter
[in] deviceId
Eine Nevis-Geräte-ID.
[out] pairingCodeBuf
Ein Zeiger auf einen Puffer, der den Nevis-Kopplungscode, ein NULL-Beendigungszeichen, empfängt. Der bereitgestellte Puffer sollte mindestens 7 Zeichen umfassen.
[in] pairingCodeBufSize
Die Größe des Zwischenspeichers, auf den „pairingCodeBuf“ verweist.
Rückgabewerte
WEAVE_NO_ERROR
Gibt an, ob die Methode erfolgreich war.
WEAVE_ERROR_INVALID_ARGUMENT
Die angegebene Geräte-ID liegt außerhalb des zulässigen Bereichs oder der bereitgestellte Puffer ist zu klein.

NevisPairingCodeToDeviceId

WEAVE_ERROR NevisPairingCodeToDeviceId(
  const char *pairingCode,
  uint64_t & deviceId
)

Gibt die mit dem Nevis-Kopplungscode codierte Geräte-ID zurück.

Details
Parameter
[in] pairingCode
Ein NULL-beendeter String, der einen Nevis-Kopplungscode enthält.
[out] deviceId
Ein Verweis auf eine Ganzzahl, die die decodierte Nevis-Geräte-ID empfängt.
Rückgabewerte
WEAVE_NO_ERROR
Gibt an, ob die Methode erfolgreich war.
WEAVE_ERROR_INVALID_ARGUMENT
Die Länge des Kopplungscodes ist falsch, er enthält ungültige Zeichen oder die ersten Zeichen des Kopplungscodes stimmen nicht mit dem Prüfzeichen überein.

NormalizePairingCode

void NormalizePairingCode(
  char *pairingCode,
  size_t & pairingCodeLen
)

Normalisieren Sie die Zeichen in einem Kopplungscodestring.

Diese Funktion wandelt alle Buchstaben in Großbuchstaben um, ordnet die unzulässigen Zeichen "I", "O", "Q" und "Z" den Buchstaben "1", "0", "0" und "2" zu und entfernt alle anderen Codezeichen ohne Kopplung aus dem angegebenen String.

Der Eingabestring muss nicht NULL-terminiert sein. Ist dies jedoch der Fall, wird die Ausgabe ebenfalls NULL beendet.

Details
Parameter
[in,out] pairingCode
Der zu normalisierende Kopplungscodestring bei der Eingabe. Bei der Ausgabe der normalisierte String. Der String muss nicht auf NULL beendet sein.
[in,out] pairingCodeLen
Bei Eingabe die Länge des Kopplungscodestrings ohne NULL-Abschlusszeichen. Bei der Ausgabe die Länge des normalisierten Strings.

PairingCodeCharToInt

int PairingCodeCharToInt(
  char ch
)

Wandelt ein Weave-Kopplungscodezeichen in einen ganzzahligen Wert im Bereich 0 bis 31 um.

Bei dieser Funktion wird die Groß-/Kleinschreibung nicht berücksichtigt.

Details
Parameter
[in] ch
Das Zeichen, das umgewandelt werden soll.
Rückgabe
Ganzzahliger Wert, der dem angegebenen Kopplungscodezeichen entspricht, oder -1, wenn ch kein gültiges Zeichen ist.

PairingCodeToInt

WEAVE_ERROR PairingCodeToInt(
  const char *pairingCode,
  size_t pairingCodeLen,
  uint64_t & val
)

Decodieren Sie einen Weave-Kopplungscode als Ganzzahlwert.

Die Funktion parst die Anfangszeichen einer Weave-Kopplungs-Codezeichenfolge als Big-Endian-Zahl mit Base 32 und gibt den resultierenden Wert als vorzeichenlose Ganzzahl zurück. Der Eingabestring kann eine beliebige Länge >= 2 haben, solange die decodierte Ganzzahl in ein uint64_t-Element passt.

Es wird nicht versucht, das Verhoeff-Prüfzeichen zu verifizieren (sieheVerifyPairingCode()).

Details
Parameter
[in] pairingCode
Der zu decodierende Kopplungscodestring. Dieser String muss nicht über NULL beendet werden.
[in] pairingCodeLen
Die Länge des Kopplungscodestrings ohne NULL-Abschlusszeichen. Muss >= 2 sein.
[out] val
Der decodierte ganzzahlige Wert.
Rückgabewerte
WEAVE_NO_ERROR
Gibt an, ob die Methode erfolgreich war.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn „pairingCodeLen“ < 2 ist, der angegebene Kopplungscodestring ein ungültiges Zeichen enthält oder der im Kopplungscode codierte Ganzzahlwert den Maximalwert überschreitet, der in einem uint64_t gespeichert werden kann.

VerifyPairingCode

WEAVE_ERROR VerifyPairingCode(
  const char *pairingCode,
  size_t pairingCodeLen
)

Überprüfe einen Weave-Kopplungscode anhand des Prüfzeichens.

Details
Parameter
[in] pairingCode
Der zu prüfende Kopplungscodestring. Dieser String muss nicht über NULL beendet werden.
[in] pairingCodeLen
Die Länge des Kopplungscodestrings ohne NULL-Abschlusszeichen. Muss >= 2 sein.
Rückgabewerte
WEAVE_NO_ERROR
Gibt an, ob die Methode erfolgreich war.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn „pairingCodeLen“ < 2 ist oder die Anfangszeichen des Kopplungscodes nicht mit dem Wert des Prüfzeichens übereinstimmen.