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)
Generieren Sie einen zufälligen Kopplungscode.
IntToPairingCode(uint64_t val, uint8_t pairingCodeLen, char *outBuf)
Codieren Sie einen Ganzzahlwert als Weave-Kopplungscode.
IntToPairingCodeChar(int val)
char
Wandeln Sie eine Ganzzahl im Bereich von 0 bis 31 in das entsprechende Weave-Kopplungs-Codezeichen um.
IsValidPairingCodeChar(char ch)
bool
Gibt "true" zurück, wenn das angegebene Zeichen ein gültiges Weave-Kopplungs-Codezeichen ist.
KryptoniteDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Generiert einen Kryptonit-Kopplungs-Codestring anhand einer Kryptonit-Geräte-ID.
KryptonitePairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Gibt die Geräte-ID zurück, die im Kryptonite-Kopplungscode codiert ist.
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 Geräte-ID zurück, die im Nevis-Kopplungscode codiert ist.
NormalizePairingCode(char *pairingCode, size_t & pairingCodeLen)
void
Normalisieren Sie die Zeichen in einem Kopplungscodestring.
PairingCodeCharToInt(char ch)
int
Wandelt ein Weave-Kopplungs-Codezeichen 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)
Verifizieren Sie einen Weave-Kopplungscode mit seinem Prüfzeichen.

Aufzählungen

@353

 @353

@354

 @354

@355

 @355

@356

 @356
Attribute
kBitsPerCharacter

Anzahl der in einem einzelnen Kopplungscodezeichen codierten Bits.

kKryptonitePairingCodeLength

Länge des Kopplungscodes für Kryptonit.

kPairingCodeLenMin

Mindestlänge eines Kopplungscodes.

kStandardPairingCodeLength

Länge des Kopplungscodes bei den meisten Nest-Produkten

Funktionen

GeneratePairingCode

WEAVE_ERROR GeneratePairingCode(
  uint8_t pairingCodeLen,
  char *outBuf
)

Generieren Sie einen zufälligen Kopplungscode.

Die Funktion generiert einen zufälligen Weave-Kopplungs-Codestring mit einer bestimmten Länge. als Big-Endian-Basis-32-Zahl mit einem nachgestellten Verhoeff-Prüfzeichen. Der generierte String hat eine feste Länge, die durch den Parameter „pairingCodeLen“ angegeben wird. Der String wird nach Bedarf mit Nullen auf der linken Seite 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 mindestens 2 sein.
[out] outBuf
Ein Zeiger auf einen Zeichenpuffer, der den codierten Kopplungscode sowie ein Null-Terminatorzeichen empfängt. Der bereitgestellte Puffer sollte mindestens so groß sein wie „PairingCodeLen + 1“.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn „pairingCodeLen“ < 2 oder der angegebene Ganzzahlwert darf nicht in der mit „pairingCodeLen“ angegebenen Anzahl von Zeichen codiert werden (minus 1 für das Prüfzeichen).

IntToPairingCode

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

Codieren Sie einen Ganzzahlwert als Weave-Kopplungscode.

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

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

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

Wandeln Sie eine Ganzzahl im Bereich von 0 bis 31 in das entsprechende Weave-Kopplungs-Codezeichen um.

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

Details
Parameter
[in] val
Ganzzahlwert, der konvertiert 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 Weave-Kopplungs-Codezeichen ist.

Beachten Sie, dass bei dieser Funktion nicht zwischen Groß- und Kleinschreibung unterschieden wird.

Details
Parameter
[in] ch
Das Zeichen, das geprüft werden soll.
Rückgabe
"True", wenn ein angegebenes Zeichen ein gültiges Weave-Kopplungs-Codezeichen ist.

KryptoniteDeviceIdToPairingCode

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

Generiert einen Kryptonit-Kopplungs-Codestring anhand einer Kryptonit-Geräte-ID.

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

KryptonitePairingCodeToDeviceId

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

Gibt die Geräte-ID zurück, die im Kryptonite-Kopplungscode codiert ist.

Details
Parameter
[in] pairingCode
Ein NULL-terminierter String, der einen Kryptonit-Kopplungscode enthält.
[out] deviceId
Ein Verweis auf eine Ganzzahl, die die decodierte Kryptonit-Geräte-ID empfängt.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_INVALID_ARGUMENT
Die Länge des bereitgestellten Kopplungscodes ist falsch, der Kopplungscode enthält ungültige Zeichen oder die Anfangszeichen 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 Zwischenspeicher, der den Nevis-Kopplungscode empfängt, ein NULL-Beendigungszeichen. Der bereitgestellte Puffer sollte mindestens 7 Zeichen lang sein.
[in] pairingCodeBufSize
Die Größe des Zwischenspeichers, auf den "pairingCodeBuf" verweist.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn die bereitgestellte Geräte-ID außerhalb des zulässigen Bereichs liegt oder der bereitgestellte Puffer zu klein ist.

NevisPairingCodeToDeviceId

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

Gibt die Geräte-ID zurück, die im Nevis-Kopplungscode codiert ist.

Details
Parameter
[in] pairingCode
Ein mit 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
Wenn die Methode erfolgreich war.
WEAVE_ERROR_INVALID_ARGUMENT
Die Länge des bereitgestellten Kopplungscodes ist falsch, der Kopplungscode enthält ungültige Zeichen oder die Anfangszeichen 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 und ordnet die unzulässigen Zeichen "I", "O" und "Q" zu. und "Z" bis '1', '0', '0' und "2" und entfernt alle anderen Codezeichen, die keine Kopplung sind, aus dem gegebenen String.

Der Eingabestring muss nicht mit NULL beendet werden. Wenn er es ist, wird die Ausgabe jedoch ebenfalls mit NULL beendet.

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

PairingCodeCharToInt

int PairingCodeCharToInt(
  char ch
)

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

Bei dieser Funktion wird nicht zwischen Groß- und Kleinschreibung unterschieden.

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-Basis-32-Zahl und gibt den resultierenden Wert als vorzeichenlose Ganzzahl zurück. Der Eingabestring kann eine beliebige Länge größer als 2 sein, solange die decodierte Ganzzahl in einen uint64-Wert passt.

Es wird nicht versucht, das Prüfzeichen Verhoeff zu überprüfen (siehe „VerifyPairingCode()“).

Details
Parameter
[in] pairingCode
Zu decodierender Kopplungscodestring Dieser String muss nicht mit NULL beendet werden.
[in] pairingCodeLen
Die Länge des Kopplungscodestrings ohne NULL-Endzeichen. Muss mindestens 2 sein.
[out] val
Entspricht dem decodierten Ganzzahlwert.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn „pairingCodeLen“ < 2, oder der angegebene Kopplungscodestring enthält ein ungültiges Zeichen oder der im Kopplungscode codierte Ganzzahlwert überschreitet den Höchstwert, der in einer uint64_t-Datei gespeichert werden kann.

VerifyPairingCode

WEAVE_ERROR VerifyPairingCode(
  const char *pairingCode,
  size_t pairingCodeLen
)

Verifizieren Sie einen Weave-Kopplungscode mit seinem Prüfzeichen.

Details
Parameter
[in] pairingCode
Der zu prüfende Kopplungscode-String. Dieser String muss nicht mit NULL beendet werden.
[in] pairingCodeLen
Die Länge des Kopplungscodestrings ohne NULL-Endzeichen. Muss mindestens 2 sein.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn „pairingCodeLen“ < 2 oder die Anfangszeichen des Kopplungscodes stimmen nicht mit dem Wert des Prüfzeichens überein.