nl::PairingCode

Résumé

Énumérations

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

Fonctions

GeneratePairingCode(uint8_t pairingCodeLen, char *outBuf)
Générez un code d'association aléatoire.
IntToPairingCode(uint64_t val, uint8_t pairingCodeLen, char *outBuf)
Encodez une valeur entière sous forme de code d'association Weave.
IntToPairingCodeChar(int val)
char
Convertissez une valeur entière comprise dans la plage 0 à 31 en caractère de code d'association Weave correspondant.
IsValidPairingCodeChar(char ch)
bool
Renvoie "true" si un caractère fourni est un caractère de code d'association Weave valide.
KryptoniteDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Génère une chaîne de code d'association Kryptonite en fonction d'un ID d'appareil Kryptonite.
KryptonitePairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Renvoie l'ID d'appareil encodé dans le code d'association Kryptonite.
NevisDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Génère une chaîne de code d'association Nevis à partir d'un ID d'appareil Nevis.
NevisPairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Renvoie l'ID d'appareil encodé dans le code d'association Nevis.
NormalizePairingCode(char *pairingCode, size_t & pairingCodeLen)
void
Normalisez les caractères dans une chaîne de code d'association.
PairingCodeCharToInt(char ch)
int
Convertit un caractère de code d'association Weave en valeur entière comprise dans la plage 0 à 31.
PairingCodeToInt(const char *pairingCode, size_t pairingCodeLen, uint64_t & val)
Décodez un code d'association Weave sous la forme d'une valeur entière.
VerifyPairingCode(const char *pairingCode, size_t pairingCodeLen)
Vérifiez un code d'association Weave par rapport à son caractère de contrôle.

Énumérations

@353

 @353

@354

 @354

@355

 @355

@356

 @356
Propriétés
kBitsPerCharacter

Nombre de bits encodés dans un seul caractère de code d'association.

kKryptonitePairingCodeLength

Longueur du code d'association pour Kryptonite.

kPairingCodeLenMin

Longueur minimale d'un code d'association.

kStandardPairingCodeLength

Longueur du code d'association pour la plupart des produits Nest.

Fonctions

GeneratePairingCode

WEAVE_ERROR GeneratePairingCode(
  uint8_t pairingCodeLen,
  char *outBuf
)

Générez un code d'association aléatoire.

La fonction génère une chaîne de code d'association Weave aléatoire d'une longueur spécifiée. , encodée sous la forme d'un chiffre en base 32 en big-endian suivi d'un caractère de contrôle Verhoeff à la fin. La longueur de la chaîne générée est fixe, spécifiée par le paramètre "pairCodeLen". À gauche, la chaîne est complétée par des zéros si nécessaire pour atteindre cette longueur.

Détails
Paramètres
[in] pairingCodeLen
Longueur souhaitée de la chaîne du code d'association, y compris le caractère de contrôle à la fin. Doit être supérieur ou égal à 2.
[out] outBuf
Un pointeur vers un tampon de caractères qui recevra le code d'association encodé, ainsi qu'un caractère de fin de ligne nul. La taille du tampon fourni doit être au moins égale à la taille de pairCodeLen + 1.
Valeurs renvoyées
WEAVE_NO_ERROR
Si la méthode aboutit.
WEAVE_ERROR_INVALID_ARGUMENT
Si PairCodeLen est < 2 ou la valeur entière fournie ne peut pas être encodée selon le nombre de caractères spécifié par pairCodeLen, moins 1 pour le caractère de contrôle.

IntToPairingCode

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

Encodez une valeur entière sous forme de code d'association Weave.

La fonction génère une chaîne de code d'association Weave composée d'une valeur entière non signée fournie, encodée sous la forme d'un chiffre en base 32 en big-endian et d'un caractère de contrôle Verhoeff à la fin. La longueur de la chaîne générée est fixe, spécifiée par le paramètre pairCodeLen. À gauche, la chaîne est complétée par des zéros si nécessaire pour atteindre cette longueur.

Détails
Paramètres
[in] val
Valeur à encoder.
[in] pairingCodeLen
Longueur souhaitée de la chaîne de code d'association encodée, y compris le caractère de contrôle de fin. Doit être supérieur ou égal à 2.
[out] outBuf
Un pointeur vers un tampon de caractères qui recevra le code d'association encodé, ainsi qu'un caractère de fin de ligne nul. La taille du tampon fourni doit être au moins égale à la taille de pairCodeLen + 1.
Valeurs renvoyées
WEAVE_NO_ERROR
Si la méthode aboutit.
WEAVE_ERROR_INVALID_ARGUMENT
Si PairCodeLen est < 2 ou la valeur entière fournie ne peut pas être encodée selon le nombre de caractères spécifié par pairCodeLen, moins 1 pour le caractère de contrôle.

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

Convertissez une valeur entière comprise dans la plage 0 à 31 en caractère de code d'association Weave correspondant.

Notez que cette fonction génère toujours des caractères majuscules.

Détails
Paramètres
[in] val
Valeur entière à convertir.
Renvoie
Caractère de code d'association correspondant à la valeur entière spécifiée, ou 0 si la valeur entière est en dehors de la plage.

IsValidPairingCodeChar

bool IsValidPairingCodeChar(
  char ch
)

Renvoie "true" si un caractère fourni est un caractère de code d'association Weave valide.

Notez que cette fonction n'est pas sensible à la casse.

Détails
Paramètres
[in] ch
Caractère à tester.
Renvoie
"True" si un caractère fourni est un caractère de code d'association Weave valide.

KryptoniteDeviceIdToPairingCode

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

Génère une chaîne de code d'association Kryptonite en fonction d'un ID d'appareil Kryptonite.

Détails
Paramètres
[in] deviceId
ID d'appareil Kryptonite.
[out] pairingCodeBuf
Un pointeur vers un tampon qui recevra le code d'association Kryptonite, un caractère de fin NULL. La taille du tampon fourni doit comporter au moins 7 caractères.
[in] pairingCodeBufSize
Taille du tampon indiqué par pairCodeBuf.
Valeurs renvoyées
WEAVE_NO_ERROR
Si la méthode aboutit.
WEAVE_ERROR_INVALID_ARGUMENT
Si l'ID d'appareil fourni est en dehors de la plage ou si la mémoire tampon fournie est trop petite.

KryptonitePairingCodeToDeviceId

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

Renvoie l'ID d'appareil encodé dans le code d'association Kryptonite.

Détails
Paramètres
[in] pairingCode
Chaîne se terminant par une valeur NULL contenant un code d'association Kryptonite.
[out] deviceId
Référence à un entier qui reçoit l'ID de l'appareil Kryptonite décodé.
Valeurs renvoyées
WEAVE_NO_ERROR
Si la méthode aboutit.
WEAVE_ERROR_INVALID_ARGUMENT
Si la longueur du code d'association fourni est incorrecte, si le code d'association contient des caractères non valides ou si les caractères initiaux du code d'association ne correspondent pas au caractère de contrôle.

NevisDeviceIdToPairingCode

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

Génère une chaîne de code d'association Nevis à partir d'un ID d'appareil Nevis.

Détails
Paramètres
[in] deviceId
ID d'appareil Nevis.
[out] pairingCodeBuf
Pointeur vers un tampon qui recevra le code d'association Nevis, un caractère de fin NULL. La taille du tampon fourni doit comporter au moins 7 caractères.
[in] pairingCodeBufSize
Taille du tampon indiqué par pairCodeBuf.
Valeurs renvoyées
WEAVE_NO_ERROR
Si la méthode aboutit.
WEAVE_ERROR_INVALID_ARGUMENT
Si l'ID d'appareil fourni est en dehors de la plage ou si la mémoire tampon fournie est trop petite.

NevisPairingCodeToDeviceId

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

Renvoie l'ID d'appareil encodé dans le code d'association Nevis.

Détails
Paramètres
[in] pairingCode
Chaîne se terminant par une valeur NULL contenant un code d'association Nevis.
[out] deviceId
Référence à un entier qui reçoit l'ID d'appareil Nevis décodé.
Valeurs renvoyées
WEAVE_NO_ERROR
Si la méthode aboutit.
WEAVE_ERROR_INVALID_ARGUMENT
Si la longueur du code d'association fourni est incorrecte, si le code d'association contient des caractères non valides ou si les caractères initiaux du code d'association ne correspondent pas au caractère de contrôle.

NormalizePairingCode

void NormalizePairingCode(
  char *pairingCode,
  size_t & pairingCodeLen
)

Normalisez les caractères dans une chaîne de code d'association.

Cette fonction convertit tous les caractères alphabétiques en majuscules et met en correspondance les caractères non autorisés "I", "O", "Q" et "Z" à "1", "0", "0" et "2", respectivement, et supprime tous les autres caractères de code qui ne sont pas associés à la chaîne donnée.

Il n'est pas nécessaire que la chaîne d'entrée se termine en mode NULL. Toutefois, si c'est le cas, la sortie s'arrête également en mode NULL.

Détails
Paramètres
[in,out] pairingCode
En entrée, la chaîne de code d'association à normaliser. En sortie, la chaîne normalisée. Il n'est pas nécessaire que la chaîne soit arrêtée en mode NULL.
[in,out] pairingCodeLen
En entrée, la longueur de la chaîne du code d'association, sans inclure le caractère de fin NULL. En sortie, longueur de la chaîne normalisée.

PairingCodeCharToInt

int PairingCodeCharToInt(
  char ch
)

Convertit un caractère de code d'association Weave en valeur entière comprise dans la plage 0 à 31.

Notez que cette fonction n'est pas sensible à la casse.

Détails
Paramètres
[in] ch
Caractère à convertir.
Renvoie
Valeur entière correspondant au caractère de code d'association spécifié, ou "-1" si "ch" n'est pas un caractère valide.

PairingCodeToInt

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

Décodez un code d'association Weave sous la forme d'une valeur entière.

La fonction analyse les caractères initiaux d'une chaîne de code d'association Weave sous la forme d'un chiffre en base 32 en big-endian et renvoie la valeur résultante sous la forme d'un entier non signé. La longueur de la chaîne d'entrée peut être supérieure ou égale à 2, tant que l'entier décodé correspond à une valeur uint64_t.

Aucune tentative de vérification du caractère de contrôle Verhoeff n'est effectuée (voir VerifyPairingCode()).

Détails
Paramètres
[in] pairingCode
Chaîne de code d'association à décoder. Il n'est pas nécessaire que cette chaîne se termine par une valeur NULL.
[in] pairingCodeLen
Longueur de la chaîne de code d'association, à l'exclusion du caractère de fin de la valeur NULL. Doit être supérieur ou égal à 2.
[out] val
Valeur entière décodée.
Valeurs renvoyées
WEAVE_NO_ERROR
Si la méthode aboutit.
WEAVE_ERROR_INVALID_ARGUMENT
Si PairCodeLen est < 2, soit la chaîne de code d'association fournie contient un caractère non valide, soit la valeur entière encodée dans le code d'association dépasse la valeur maximale pouvant être stockée dans une valeur uint64_t.

VerifyPairingCode

WEAVE_ERROR VerifyPairingCode(
  const char *pairingCode,
  size_t pairingCodeLen
)

Vérifiez un code d'association Weave par rapport à son caractère de contrôle.

Détails
Paramètres
[in] pairingCode
Chaîne de code d'association à vérifier. Il n'est pas nécessaire que cette chaîne se termine par une valeur NULL.
[in] pairingCodeLen
Longueur de la chaîne de code d'association, à l'exclusion du caractère de fin de la valeur NULL. Doit être supérieur ou égal à 2.
Valeurs renvoyées
WEAVE_NO_ERROR
Si la méthode aboutit.
WEAVE_ERROR_INVALID_ARGUMENT
Si PairCodeLen est < 2, ou les premiers caractères du code d'association ne sont pas cohérents avec la valeur du caractère de contrôle.