nl::PairingCode

Podsumowanie

Wyliczenia

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

Funkcje

GeneratePairingCode(uint8_t pairingCodeLen, char *outBuf)
Wygeneruj losowy kod parowania.
IntToPairingCode(uint64_t val, uint8_t pairingCodeLen, char *outBuf)
Zakoduj wartość całkowitą jako kod parowania Weave.
IntToPairingCodeChar(int val)
char
Przekształć liczbę całkowitą z zakresu 0..31 na odpowiedni znak kodu parowania Weave.
IsValidPairingCodeChar(char ch)
bool
Zwraca wartość „prawda”, jeśli podany znak jest prawidłowym znakiem kodu parowania Weave.
KryptoniteDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Generuje ciąg kodu parowania Kryptonite dla identyfikatora urządzenia Kryptonite.
KryptonitePairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Zwraca identyfikator urządzenia zakodowany w kodzie parowania Kryptonite.
NevisDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Generuje ciąg kodu parowania Nevis z podanym identyfikatorem urządzenia Nevis.
NevisPairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Zwraca identyfikator urządzenia zakodowany w kodzie parowania Nevis.
NormalizePairingCode(char *pairingCode, size_t & pairingCodeLen)
void
Normalizuj znaki w ciągu kodu parowania.
PairingCodeCharToInt(char ch)
int
Przekształć znak kodu parowania Weave na wartość całkowitą z zakresu od 0 do 31.
PairingCodeToInt(const char *pairingCode, size_t pairingCodeLen, uint64_t & val)
Zdekoduj kod parowania Weave jako wartość całkowitą.
VerifyPairingCode(const char *pairingCode, size_t pairingCodeLen)
Zweryfikuj kod parowania Weave ze znakiem kontrolnym.

Wyliczenia

@353

 @353

@354

 @354

@355

 @355

@356

 @356
Właściwości
kBitsPerCharacter

Liczba bitów zakodowanych w pojedynczym znaku kodu parowania.

kKryptonitePairingCodeLength

Długość kodu parowania dla Kryptonite.

kPairingCodeLenMin

Minimalna długość kodu parowania.

kStandardPairingCodeLength

Długość kodu parowania w przypadku większości produktów Nest.

Funkcje

GeneratePairingCode

WEAVE_ERROR GeneratePairingCode(
  uint8_t pairingCodeLen,
  char *outBuf
)

Wygeneruj losowy kod parowania.

Funkcja generuje losowy ciąg kodu parowania Weave o określonej długości. zakodowana jako big-endian, algorytm o podstawie 32 i znakiem wyboru Verhoeff na końcu. Wygenerowany ciąg ma stałą długość określoną przez parametr parowaniaCodeLen. Aby uzyskać tę długość, po lewej stronie ciągu znaków zostaje dopełnione zerami.

Szczegóły
Parametry
[in] pairingCodeLen
Wymagana długość ciągu kodu parowania, łącznie ze znakiem wyboru na końcu. Musi być >= 2.
[out] outBuf
Wskaźnik do bufora znaków, do którego otrzymasz zakodowany kod parowania, plus znak zakończenia o wartości null. Dostarczony bufor powinien być co najmniej tak duży jak parowaniaCodeLen + 1.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli przy użyciu metody się udało:
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli parowanieCodeLen to < Wartość 2 lub podana wartość całkowita nie może być zakodowana w postaci liczby znaków określonej przez metodę parowaniaCodeLen z odejmowaniem 1 dla znaku kontrolnego.

IntToPairingCode

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

Zakoduj wartość całkowitą jako kod parowania Weave.

Funkcja generuje ciąg kodu parowania Weave zawierający podaną wartość całkowitą bez znaku, zakodowaną w postaci liczby big-endianowej o podstawie 32 i znaku kontrolnego Verhoeff na końcu. Wygenerowany ciąg ma stałą długość określoną przez parametr parowaniaCodeLen. Aby uzyskać tę długość, po lewej stronie ciągu znaków zostaje dopełnione zerami.

Szczegóły
Parametry
[in] val
Wartość do zakodowania.
[in] pairingCodeLen
Żądana długość zakodowanego ciągu kodu parowania, w tym znak kontrolny. Musi być >= 2.
[out] outBuf
Wskaźnik do bufora znaków, do którego otrzymasz zakodowany kod parowania, plus znak zakończenia o wartości null. Dostarczony bufor powinien być co najmniej tak duży jak parowaniaCodeLen + 1.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli przy użyciu metody się udało:
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli parowanieCodeLen to < Wartość 2 lub podana wartość całkowita nie może być zakodowana w postaci liczby znaków określonej przez metodę parowaniaCodeLen z odejmowaniem 1 dla znaku kontrolnego.

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

Przekształć liczbę całkowitą z zakresu 0..31 na odpowiedni znak kodu parowania Weave.

Pamiętaj, że ta funkcja zawsze tworzy znaki pisane wielkimi literami.

Szczegóły
Parametry
[in] val
Wartość całkowita do przekonwertowania.
Zwroty
Znak kodu parowania, który odpowiada określonej wartości całkowitej, lub 0, jeśli wartość jest poza zakresem.

IsValidPairingCodeChar

bool IsValidPairingCodeChar(
  char ch
)

Zwraca wartość „prawda”, jeśli podany znak jest prawidłowym znakiem kodu parowania Weave.

Pamiętaj, że ta funkcja nie rozróżnia wielkości liter.

Szczegóły
Parametry
[in] ch
Znak, który ma zostać przetestowany.
Zwroty
Wartość true, jeśli podany znak jest prawidłowym znakiem kodu parowania Weave.

KryptoniteDeviceIdToPairingCode

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

Generuje ciąg kodu parowania Kryptonite dla identyfikatora urządzenia Kryptonite.

Szczegóły
Parametry
[in] deviceId
Kryptonitowy identyfikator urządzenia.
[out] pairingCodeBuf
Wskaźnik do bufora, do którego zostanie przesłany kod parowania Kryptonite – znak zakończenia o wartości NULL. Dostarczony bufor powinien mieć co najmniej 7 znaków.
[in] pairingCodeBufSize
Rozmiar bufora wskazywanego przez parowaniaCodeBuf.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli przy użyciu metody się udało:
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli podany identyfikator urządzenia jest poza zasięgiem lub jeśli dostarczony bufor jest zbyt mały.

KryptonitePairingCodeToDeviceId

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

Zwraca identyfikator urządzenia zakodowany w kodzie parowania Kryptonite.

Szczegóły
Parametry
[in] pairingCode
Ciąg znaków z zakończeniem NULL, który zawiera kod parowania Kryptonite.
[out] deviceId
Odwołanie do liczby całkowitej, która otrzymuje zdekodowany identyfikator urządzenia Kryptonite.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli przy użyciu metody się udało:
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli podany kod parowania jest nieprawidłowy, jeśli zawiera nieprawidłowe znaki lub jeśli początkowe znaki w kodzie są niespójne ze znakiem kontrolnym.

NevisDeviceIdToPairingCode

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

Generuje ciąg kodu parowania Nevis z podanym identyfikatorem urządzenia Nevis.

Szczegóły
Parametry
[in] deviceId
Identyfikator urządzenia Nevis.
[out] pairingCodeBuf
Wskaźnik do bufora, do którego zostanie przesłany kod parowania Nevis – znak zakończenia NULL. Dostarczony bufor powinien mieć co najmniej 7 znaków.
[in] pairingCodeBufSize
Rozmiar bufora wskazywanego przez parowaniaCodeBuf.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli przy użyciu metody się udało:
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli podany identyfikator urządzenia jest poza zasięgiem lub jeśli dostarczony bufor jest zbyt mały.

NevisPairingCodeToDeviceId

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

Zwraca identyfikator urządzenia zakodowany w kodzie parowania Nevis.

Szczegóły
Parametry
[in] pairingCode
Ciąg znaków z zakończeniem NULL, który zawiera kod parowania Nevis.
[out] deviceId
Odwołanie do liczby całkowitej, która otrzymuje zdekodowany identyfikator urządzenia Nevis.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli przy użyciu metody się udało:
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli podany kod parowania jest nieprawidłowy, jeśli zawiera nieprawidłowe znaki lub jeśli początkowe znaki w kodzie są niespójne ze znakiem kontrolnym.

NormalizePairingCode

void NormalizePairingCode(
  char *pairingCode,
  size_t & pairingCodeLen
)

Normalizuj znaki w ciągu kodu parowania.

Ta funkcja konwertuje wszystkie znaki alfabetyczne na wielkie litery i mapuje niedozwolone znaki „I”, „O”, „Q” i „Z” do „1”, „0”, „0” i „2” oraz usuwa wszystkie pozostałe niesparowane znaki kodu z danego ciągu.

Ciąg wejściowy nie musi być zakończony wartością NULL, ale jeśli tak się stanie, dane wyjściowe również będą miały wartość NULL.

Szczegóły
Parametry
[in,out] pairingCode
Ciąg kodu parowania zostanie znormalizowany. Na danych wyjściowych Znormalizowany ciąg znaków. Ciąg znaków nie musi kończyć się wartością NULL.
[in,out] pairingCodeLen
Długość ciągu tekstowego kodu parowania, bez żadnych znaków zakończenia NULL. Na wyjściu jest to długość znormalizowanego ciągu znaków.

PairingCodeCharToInt

int PairingCodeCharToInt(
  char ch
)

Przekształć znak kodu parowania Weave na wartość całkowitą z zakresu od 0 do 31.

Pamiętaj, że ta funkcja nie rozróżnia wielkości liter.

Szczegóły
Parametry
[in] ch
Znak do przekonwertowania.
Zwroty
Wartość całkowita odpowiadająca określonemu znakowi kodu parowania lub -1, jeśli ch nie jest prawidłowym znakiem.

PairingCodeToInt

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

Zdekoduj kod parowania Weave jako wartość całkowitą.

Funkcja analizuje początkowe znaki z ciągu kodu parowania Weave w postaci liczby big-endian o podstawie 32 i zwraca wynikową wartość jako liczbę całkowitą bez znaku. Ciąg wejściowy może mieć dowolną długość >= 2, o ile zdekodowana liczba całkowita mieści się w zakresie uint64_t.

Nie jest podejmowana żadna próba weryfikacji znaku kontrolnego Verhoeff (patrz VerifyPairingCode()).

Szczegóły
Parametry
[in] pairingCode
Ciąg kodu parowania do zdekodowania. Ten ciąg znaków nie musi mieć wartości NULL.
[in] pairingCodeLen
Długość ciągu kodu parowania, bez żadnych znaków zakończenia NULL. Musi być >= 2.
[out] val
Zdekodowana liczba całkowita.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli przy użyciu metody się udało:
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli parowanieCodeLen to < 2 lub podany ciąg kodu parowania zawiera nieprawidłowy znak albo liczba całkowita zakodowana w kodzie parowania przekracza maksymalną wartość, jaką można zapisać w uint64_t.

VerifyPairingCode

WEAVE_ERROR VerifyPairingCode(
  const char *pairingCode,
  size_t pairingCodeLen
)

Zweryfikuj kod parowania Weave ze znakiem kontrolnym.

Szczegóły
Parametry
[in] pairingCode
Ciąg kodu parowania do sprawdzenia. Ten ciąg znaków nie musi mieć wartości NULL.
[in] pairingCodeLen
Długość ciągu kodu parowania, bez żadnych znaków zakończenia NULL. Musi być >= 2.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli przy użyciu metody się udało:
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli parowanieCodeLen to < 2 lub jego początkowe znaki w kodzie parowania są niezgodne z wartością znaku kontrolnego.