nl::PairingCode

Riepilogo

Enumerazioni

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

Funzioni

GeneratePairingCode(uint8_t pairingCodeLen, char *outBuf)
Genera un codice di accoppiamento casuale.
IntToPairingCode(uint64_t val, uint8_t pairingCodeLen, char *outBuf)
Codifica un valore intero come codice di accoppiamento Weave.
IntToPairingCodeChar(int val)
char
Converti un valore intero compreso tra 0 e 31 nel carattere del codice di accoppiamento Weave corrispondente.
IsValidPairingCodeChar(char ch)
bool
Restituisce true se un carattere fornito è un carattere di un codice di accoppiamento Weave valido.
KryptoniteDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Genera una stringa di codice di accoppiamento Kryptonite specificato con l'ID di un dispositivo Kryptonite.
KryptonitePairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Restituisce l'ID dispositivo codificato nel codice di accoppiamento Kryptonite.
NevisDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Genera una stringa del codice di accoppiamento Nevis specificato con un ID dispositivo Nevis.
NevisPairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Restituisce l'ID dispositivo codificato nel codice di accoppiamento Nevis.
NormalizePairingCode(char *pairingCode, size_t & pairingCodeLen)
void
Normalizza i caratteri in una stringa di codice di accoppiamento.
PairingCodeCharToInt(char ch)
int
Converti un carattere del codice di associazione Weave in un valore intero compreso tra 0 e 31.
PairingCodeToInt(const char *pairingCode, size_t pairingCodeLen, uint64_t & val)
Decodifica un codice di accoppiamento Weave come valore intero.
VerifyPairingCode(const char *pairingCode, size_t pairingCodeLen)
Verifica un codice di accoppiamento di Weave confrontandolo con il relativo carattere di controllo.

Enumerazioni

@353

 @353

@354

 @354

@355

 @355

@356

 @356
Proprietà
kBitsPerCharacter

Numero di bit codificati in un singolo carattere del codice di accoppiamento.

kKryptonitePairingCodeLength

Lunghezza del codice di accoppiamento per Kryptonite.

kPairingCodeLenMin

Lunghezza minima di un codice di accoppiamento.

kStandardPairingCodeLength

Lunghezza del codice di accoppiamento per la maggior parte dei prodotti Nest.

Funzioni

GeneratePairingCode

WEAVE_ERROR GeneratePairingCode(
  uint8_t pairingCodeLen,
  char *outBuf
)

Genera un codice di accoppiamento casuale.

La funzione genera una stringa di codice di accoppiamento Weave casuale con una lunghezza specificata. , codificato come numero big-endian in base-32, più un carattere di controllo Verhoeff finale. La stringa generata ha una lunghezza fissa specificata dal parametro activationCodeLen. La stringa viene riempita a sinistra con zeri necessari per soddisfare questa lunghezza.

Dettagli
Parametri
[in] pairingCodeLen
La lunghezza desiderata della stringa del codice di accoppiamento, incluso il carattere di spunta finale. Deve essere maggiore o uguale a 2.
[out] outBuf
Un puntatore a un buffer di caratteri che riceverà il codice di accoppiamento codificato, più un carattere di terminazione nullo. Il buffer fornito deve avere una dimensione di almeno pari aPairCodeLen + 1.
Valori restituiti
WEAVE_NO_ERROR
Se il metodo ha esito positivo.
WEAVE_ERROR_INVALID_ARGUMENT
Se AssociationCodeLen è < 2 o il valore intero fornito non possono essere codificati nel numero di caratteri specificato da matchingCodeLen, meno 1 per il carattere di controllo.

IntToPairingCode

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

Codifica un valore intero come codice di accoppiamento Weave.

La funzione genera una stringa di codice di accoppiamento Weave composta da un valore intero senza segno fornito, codificato come numero big-endian in base 32, più un carattere di controllo Verhoeff finale. La stringa generata ha una lunghezza fissa specificata dal parametro activationCodeLen. La stringa viene riempita a sinistra con zeri necessari per soddisfare questa lunghezza.

Dettagli
Parametri
[in] val
Il valore da codificare.
[in] pairingCodeLen
La lunghezza desiderata della stringa del codice di accoppiamento codificata, incluso il carattere di controllo finale. Deve essere maggiore o uguale a 2.
[out] outBuf
Un puntatore a un buffer di caratteri che riceverà il codice di accoppiamento codificato, più un carattere di terminazione nullo. Il buffer fornito deve avere una dimensione di almeno pari aPairCodeLen + 1.
Valori restituiti
WEAVE_NO_ERROR
Se il metodo ha esito positivo.
WEAVE_ERROR_INVALID_ARGUMENT
Se AssociationCodeLen è < 2 o il valore intero fornito non possono essere codificati nel numero di caratteri specificato da matchingCodeLen, meno 1 per il carattere di controllo.

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

Converti un valore intero compreso tra 0 e 31 nel carattere del codice di accoppiamento Weave corrispondente.

Tieni presente che questa funzione produce sempre caratteri maiuscoli.

Dettagli
Parametri
[in] val
Il valore intero da convertire.
Restituisce
Il carattere del codice di associazione che corrisponde al valore intero specificato o 0 se il valore intero non rientra nell'intervallo.

IsValidPairingCodeChar

bool IsValidPairingCodeChar(
  char ch
)

Restituisce true se un carattere fornito è un carattere di un codice di accoppiamento Weave valido.

Tieni presente che questa funzione è senza distinzione tra maiuscole e minuscole.

Dettagli
Parametri
[in] ch
Il carattere da verificare.
Restituisce
True se un carattere fornito è un carattere di un codice di accoppiamento Weave valido.

KryptoniteDeviceIdToPairingCode

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

Genera una stringa di codice di accoppiamento Kryptonite specificato con l'ID di un dispositivo Kryptonite.

Dettagli
Parametri
[in] deviceId
Un ID dispositivo Kryptonite.
[out] pairingCodeBuf
Un puntatore a un buffer che riceverà il codice di accoppiamento Kryptonite, un carattere di terminazione NULL. Il buffer fornito deve avere una dimensione di almeno 7 caratteri.
[in] pairingCodeBufSize
La dimensione del buffer a cui punta l'PairCodeBuf.
Valori restituiti
WEAVE_NO_ERROR
Se il metodo ha esito positivo.
WEAVE_ERROR_INVALID_ARGUMENT
Se l'ID dispositivo fornito non rientra nell'intervallo o se il buffer fornito è troppo piccolo.

KryptonitePairingCodeToDeviceId

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

Restituisce l'ID dispositivo codificato nel codice di accoppiamento Kryptonite.

Dettagli
Parametri
[in] pairingCode
Una stringa con terminazione NULL contenente un codice di accoppiamento Kryptonite.
[out] deviceId
Un riferimento a un numero intero che riceve l'ID dispositivo Kryptonite decodificato.
Valori restituiti
WEAVE_NO_ERROR
Se il metodo ha esito positivo.
WEAVE_ERROR_INVALID_ARGUMENT
Se la lunghezza del codice di accoppiamento fornito non è corretta, se il codice di accoppiamento contiene caratteri non validi o se i caratteri iniziali del codice di accoppiamento non sono coerenti con il carattere di controllo.

NevisDeviceIdToPairingCode

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

Genera una stringa del codice di accoppiamento Nevis specificato con un ID dispositivo Nevis.

Dettagli
Parametri
[in] deviceId
Un ID dispositivo Nevis.
[out] pairingCodeBuf
Un puntatore a un buffer che riceverà il codice di accoppiamento Nevis, un carattere di terminazione NULL. Il buffer fornito deve avere una dimensione di almeno 7 caratteri.
[in] pairingCodeBufSize
La dimensione del buffer a cui punta l'PairCodeBuf.
Valori restituiti
WEAVE_NO_ERROR
Se il metodo ha esito positivo.
WEAVE_ERROR_INVALID_ARGUMENT
Se l'ID dispositivo fornito non rientra nell'intervallo o se il buffer fornito è troppo piccolo.

NevisPairingCodeToDeviceId

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

Restituisce l'ID dispositivo codificato nel codice di accoppiamento Nevis.

Dettagli
Parametri
[in] pairingCode
Una stringa con terminazione NULL contenente un codice di accoppiamento Nevis.
[out] deviceId
Un riferimento a un numero intero che riceve l'ID dispositivo Nevis decodificato.
Valori restituiti
WEAVE_NO_ERROR
Se il metodo ha esito positivo.
WEAVE_ERROR_INVALID_ARGUMENT
Se la lunghezza del codice di accoppiamento fornito non è corretta, se il codice di accoppiamento contiene caratteri non validi o se i caratteri iniziali del codice di accoppiamento non sono coerenti con il carattere di controllo.

NormalizePairingCode

void NormalizePairingCode(
  char *pairingCode,
  size_t & pairingCodeLen
)

Normalizza i caratteri in una stringa di codice di accoppiamento.

Questa funzione converte tutti i caratteri alfabetici in lettere maiuscole e mappa i caratteri non ammessi "I", "O", "Q" e "Z" a "1", "0", "0" e "2" e rimuove dalla stringa specificata tutti gli altri caratteri di codice non associati.

Non è necessario che la stringa di input sia terminata con NULL; in questo caso, anche l'output sarà terminato con NULL.

Dettagli
Parametri
[in,out] pairingCode
All'input, la stringa del codice di accoppiamento da normalizzare. Nell'output, la stringa normalizzata. Non è necessario che la stringa sia terminata con NULL.
[in,out] pairingCodeLen
All'input, la lunghezza della stringa del codice di accoppiamento, escluso il carattere di terminazione NULL. Nell'output, la lunghezza della stringa normalizzata.

PairingCodeCharToInt

int PairingCodeCharToInt(
  char ch
)

Converti un carattere del codice di associazione Weave in un valore intero compreso tra 0 e 31.

Tieni presente che questa funzione è senza distinzione tra maiuscole e minuscole.

Dettagli
Parametri
[in] ch
Il carattere da convertire.
Restituisce
Un valore intero corrispondente al carattere del codice di associazione specificato o -1 se ch non è un carattere valido.

PairingCodeToInt

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

Decodifica un codice di accoppiamento Weave come valore intero.

La funzione analizza i caratteri iniziali di una stringa di codice di accoppiamento Weave come un numero big-endian in base-32 e restituisce il valore risultante come numero intero senza segno. La stringa di input può avere qualsiasi lunghezza maggiore o uguale a 2, purché il numero intero decodificato rientri in un valore uint64_t.

Non viene effettuato alcun tentativo di verificare il carattere di controllo Verhoeff (vedi VerifyPairingCode()).

Dettagli
Parametri
[in] pairingCode
La stringa del codice di accoppiamento da decodificare. Questa stringa non deve essere terminata con NULL.
[in] pairingCodeLen
La lunghezza della stringa del codice di accoppiamento, escluso il carattere di terminazione NULL. Deve essere maggiore o uguale a 2.
[out] val
Il valore intero decodificato.
Valori restituiti
WEAVE_NO_ERROR
Se il metodo ha esito positivo.
WEAVE_ERROR_INVALID_ARGUMENT
Se AssociationCodeLen è < 2, oppure la stringa del codice di accoppiamento fornita contiene un carattere non valido o il valore intero codificato nel codice di accoppiamento supera il valore massimo memorizzabile in un uint64_t.

VerifyPairingCode

WEAVE_ERROR VerifyPairingCode(
  const char *pairingCode,
  size_t pairingCodeLen
)

Verifica un codice di accoppiamento di Weave confrontandolo con il relativo carattere di controllo.

Dettagli
Parametri
[in] pairingCode
La stringa del codice di accoppiamento da controllare. Questa stringa non deve essere terminata con NULL.
[in] pairingCodeLen
La lunghezza della stringa del codice di accoppiamento, escluso il carattere di terminazione NULL. Deve essere maggiore o uguale a 2.
Valori restituiti
WEAVE_NO_ERROR
Se il metodo ha esito positivo.
WEAVE_ERROR_INVALID_ARGUMENT
Se AssociationCodeLen è < 2 o i caratteri iniziali del codice di accoppiamento non sono coerenti con il valore del carattere di controllo.