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 nell'intervallo 0..31 con il corrispondente carattere del codice di accoppiamento Weave.
IsValidPairingCodeChar(char ch)
bool
Restituisce true se il carattere fornito è un carattere di codice di accoppiamento Weave valido.
KryptoniteDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Genera una stringa di codice di accoppiamento Kryptonite in base a un ID 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 in base a 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 accoppiamento Weave in un valore intero nell'intervallo 0..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 il codice di accoppiamento Weave in base al relativo carattere di spunta.

Enumerazioni

@353

 @353

@354

 @354

@355

 @355

@356

 @356
Proprietà
kBitsPerCharacter

Numero di bit codificati in un singolo carattere di 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 casuale di Weave con un valore di length. specificato, codificata come numero big-endian, base-32, più un carattere di controllo Verhoeff finale. La stringa generata ha una lunghezza fissa specificata dal parametro MatchingCodeLen. La stringa viene riempita a sinistra con gli zeri necessari per rispettare questa lunghezza.

Dettagli
Parametri
[in] pairingCodeLen
La lunghezza desiderata della stringa del codice di accoppiamento, incluso il carattere di controllo finale. Deve essere >= 2.
[out] outBuf
Un puntatore a un buffer di caratteri che riceverà il codice di accoppiamento codificato, più un carattere di terminazione null. Il buffer fornito deve avere dimensioni minime pari a accoppiamentCodeLen + 1.
Valori restituiti
WEAVE_NO_ERROR
Se il metodo è riuscito.
WEAVE_ERROR_INVALID_ARGUMENT
Se MatchingCodeLen è < 2 o il valore intero fornito non può essere codificato 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, base-32, più un carattere di controllo Verhoeff finale. La stringa generata ha una lunghezza fissa specificata dal parametro MatchingCodeLen. La stringa viene riempita a sinistra con gli zeri necessari per rispettare questa lunghezza.

Dettagli
Parametri
[in] val
Il valore da codificare.
[in] pairingCodeLen
La lunghezza desiderata della stringa di codice di accoppiamento codificata, incluso il carattere di controllo finale. Deve essere >= 2.
[out] outBuf
Un puntatore a un buffer di caratteri che riceverà il codice di accoppiamento codificato, più un carattere di terminazione null. Il buffer fornito deve avere dimensioni minime pari a accoppiamentCodeLen + 1.
Valori restituiti
WEAVE_NO_ERROR
Se il metodo è riuscito.
WEAVE_ERROR_INVALID_ARGUMENT
Se MatchingCodeLen è < 2 o il valore intero fornito non può essere codificato nel numero di caratteri specificato da MatchingCodeLen, meno 1 per il carattere di controllo.

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

Converti un valore intero nell'intervallo 0..31 con il corrispondente carattere del codice di accoppiamento Weave.

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 oppure 0 se il valore intero non rientra nell'intervallo consentito.

IsValidPairingCodeChar

bool IsValidPairingCodeChar(
  char ch
)

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

Tieni presente che questa funzione non fa distinzione tra maiuscole e minuscole.

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

KryptoniteDeviceIdToPairingCode

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

Genera una stringa di codice di accoppiamento Kryptonite in base a un ID dispositivo Kryptonite.

Dettagli
Parametri
[in] deviceId
Un ID dispositivo Kryptonite.
[out] pairingCodeBuf
Un puntatore a un buffer che riceverà il codice di accoppiamento della Kryptonite, un carattere di terminazione NULL. Il buffer fornito deve avere una dimensione minima di 7 caratteri.
[in] pairingCodeBufSize
La dimensione del buffer a cui punta accoppiandoCodeBuf.
Valori restituiti
WEAVE_NO_ERROR
Se il metodo è riuscito.
WEAVE_ERROR_INVALID_ARGUMENT
Se l'ID dispositivo fornito è fuori intervallo o se il buffer è 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 è riuscito.
WEAVE_ERROR_INVALID_ARGUMENT
Se la lunghezza del codice di associazione fornito non è corretta o se il codice di associazione contiene caratteri non validi o se i caratteri iniziali del codice di associazione 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 in base a 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 minima di 7 caratteri.
[in] pairingCodeBufSize
La dimensione del buffer a cui punta accoppiandoCodeBuf.
Valori restituiti
WEAVE_NO_ERROR
Se il metodo è riuscito.
WEAVE_ERROR_INVALID_ARGUMENT
Se l'ID dispositivo fornito è fuori intervallo o se il buffer è 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 è riuscito.
WEAVE_ERROR_INVALID_ARGUMENT
Se la lunghezza del codice di associazione fornito non è corretta o se il codice di associazione contiene caratteri non validi o se i caratteri iniziali del codice di associazione 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, mappa i caratteri non ammessi "I", "O", "Q" e "Z" in "1", "0", "0" e "2" rispettivamente e rimuove tutti gli altri caratteri di codice non associati alla stringa specificata.

Non è necessario che la stringa di input venga terminata con NULL. Tuttavia, se questo è impostato, anche l'output verrà 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 venga terminata con NULL.
[in,out] pairingCodeLen
Sull'ingresso, la lunghezza della stringa del codice di accoppiamento, esclusi i caratteri di terminazione NULL. Nell'output, la lunghezza della stringa normalizzata.

PairingCodeCharToInt

int PairingCodeCharToInt(
  char ch
)

Converti un carattere del codice di accoppiamento Weave in un valore intero nell'intervallo 0..31.

Tieni presente che questa funzione non fa distinzione tra maiuscole e minuscole.

Dettagli
Parametri
[in] ch
Il carattere da convertire.
Restituisce
Un valore intero corrispondente al carattere del codice di accoppiamento 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 un numero intero senza segno. La stringa di input può avere una lunghezza qualsiasi = 2 purché il numero intero decodificato rientri in uint64_t.

Non viene fatto alcun tentativo per verificare il carattere di controllo Verhoeff (vedi VerificationPairingCode()).

Dettagli
Parametri
[in] pairingCode
La stringa del codice di accoppiamento da decodificare. Non è necessario terminare questa stringa con NULL.
[in] pairingCodeLen
La lunghezza della stringa del codice di accoppiamento, esclusi i caratteri di terminazione NULL. Deve essere >= 2.
[out] val
Il valore intero decodificato.
Valori restituiti
WEAVE_NO_ERROR
Se il metodo è riuscito.
WEAVE_ERROR_INVALID_ARGUMENT
Se MatchingCodeLen è < 2 o la stringa del codice di accoppiamento fornita contiene un carattere non valido, oppure il valore intero codificato nel codice di associazione supera il valore massimo che può essere memorizzato in uint64_t.

VerifyPairingCode

WEAVE_ERROR VerifyPairingCode(
  const char *pairingCode,
  size_t pairingCodeLen
)

Verifica il codice di accoppiamento Weave in base al relativo carattere di spunta.

Dettagli
Parametri
[in] pairingCode
La stringa del codice di accoppiamento da controllare. Non è necessario terminare questa stringa con NULL.
[in] pairingCodeLen
La lunghezza della stringa del codice di accoppiamento, esclusi i caratteri di terminazione NULL. Deve essere >= 2.
Valori restituiti
WEAVE_NO_ERROR
Se il metodo è riuscito.
WEAVE_ERROR_INVALID_ARGUMENT
Se MatchingCodeLen è < 2 o i caratteri iniziali del codice di associazione non sono coerenti con il valore del carattere di controllo.