nl::PairingCode

Résumé

Énumérations

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

distantes

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 en tant que 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 la valeur "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 de l'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 en fonction d'un ID d'appareil Nevis.
NevisPairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Renvoie l'ID de l'appareil encodé dans le code d'association Nevis.
NormalizePairingCode(char *pairingCode, size_t & pairingCodeLen)
void
Normalisez les caractères d'une chaîne de code d'association.
PairingCodeCharToInt(char ch)
int
Convertissez un caractère de code d'association Weave en une 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 en tant que valeur entière.
VerifyPairingCode(const char *pairingCode, size_t pairingCodeLen)
Vérifiez un code d'association Weave à l'aide de 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 la kryptonite.

kPairingCodeLenMin

Longueur minimale d'un code de couplage.

kStandardPairingCodeLength

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

distantes

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 forme de chiffre en base 32 en big-endian, plus un caractère de contrôle Verhoeff à la fin. La chaîne générée a une longueur fixe spécifiée par le paramètre "pairingCodeLen". La chaîne est complétée à gauche 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 de fin. La valeur doit être supérieure ou égale à 2.
[out] outBuf
Pointeur vers un tampon de caractères qui recevra le code d'association encodé, plus un caractère de terminaison nul. La taille de la mémoire tampon fournie doit être au moins égale à celle de coupleCodeLen + 1.
Valeurs de retour
WEAVE_NO_ERROR
Si la méthode a réussi.
WEAVE_ERROR_INVALID_ARGUMENT
Si la valeur "pairingCodeLen" est inférieure à 2 ou si la valeur entière fournie ne peut pas être encodée selon le nombre de caractères spécifié par couplageCodeLen, 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 en tant que 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 forme de chiffre en base 32 en big-endian, plus un caractère de contrôle Verhoeff à la fin. La chaîne générée a une longueur fixe spécifiée par le paramètre "pairingCodeLen". La chaîne est complétée à gauche 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 du code d'association encodée, y compris le caractère de contrôle de fin. La valeur doit être supérieure ou égale à 2.
[out] outBuf
Pointeur vers un tampon de caractères qui recevra le code d'association encodé, plus un caractère de terminaison nul. La taille de la mémoire tampon fournie doit être au moins égale à celle de coupleCodeLen + 1.
Valeurs de retour
WEAVE_NO_ERROR
Si la méthode a réussi.
WEAVE_ERROR_INVALID_ARGUMENT
Si la valeur "pairingCodeLen" est inférieure à 2 ou si la valeur entière fournie ne peut pas être encodée selon le nombre de caractères spécifié par couplageCodeLen, 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 produit toujours des caractères en majuscules.

Détails
Paramètres
[in] val
Valeur du nombre entier à convertir.
Renvoie
Caractère du 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 la valeur "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
Identifiant d'appareil Kryptonite.
[out] pairingCodeBuf
Pointeur vers un tampon qui recevra le code d'association Kryptonite, qui est un caractère de terminaison NULL. Le tampon fourni doit comporter au moins 7 caractères.
[in] pairingCodeBufSize
Taille du tampon indiqué par couplageCodeBuf.
Valeurs de retour
WEAVE_NO_ERROR
Si la méthode a réussi.
WEAVE_ERROR_INVALID_ARGUMENT
Si l'ID d'appareil fourni est hors plage ou si la mémoire tampon fournie est trop petite

KryptonitePairingCodeToDeviceId

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

Renvoie l'ID de l'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 d'appareil Kryptonite décodé.
Valeurs de retour
WEAVE_NO_ERROR
Si la méthode a réussi.
WEAVE_ERROR_INVALID_ARGUMENT
Si la longueur du code d'association fourni est incorrecte, ou si le code d'association contient des caractères non valides, ou si les premiers caractères 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 en fonction 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, qui est un caractère de terminaison NULL. Le tampon fourni doit comporter au moins 7 caractères.
[in] pairingCodeBufSize
Taille du tampon indiqué par couplageCodeBuf.
Valeurs de retour
WEAVE_NO_ERROR
Si la méthode a réussi.
WEAVE_ERROR_INVALID_ARGUMENT
Si l'ID d'appareil fourni est hors plage ou si la mémoire tampon fournie est trop petite

NevisPairingCodeToDeviceId

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

Renvoie l'ID de l'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 de retour
WEAVE_NO_ERROR
Si la méthode a réussi.
WEAVE_ERROR_INVALID_ARGUMENT
Si la longueur du code d'association fourni est incorrecte, ou si le code d'association contient des caractères non valides, ou si les premiers caractères 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 d'une chaîne de code d'association.

Cette fonction convertit tous les caractères alphabétiques en majuscules, mappe les caractères non autorisés "I", "O", "Q" et "Z" sur "1", "0", "0" et "2", respectivement, et supprime tous les autres caractères non associés du code de 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 sera également terminée en mode NULL.

Détails
Paramètres
[in,out] pairingCode
À la saisie, la chaîne du code d'association doit être normalisée. En sortie, chaîne normalisée. Il n'est pas nécessaire que la chaîne soit terminée en mode NULL.
[in,out] pairingCodeLen
À l'entrée, longueur de la chaîne du code d'association, sans les caractères de terminaison NULL. En sortie, longueur de la chaîne normalisée.

PairingCodeCharToInt

int PairingCodeCharToInt(
  char ch
)

Convertissez un caractère de code d'association Weave en une 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 du 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 en tant que valeur entière.

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

Aucune tentative de validation 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 en mode NULL.
[in] pairingCodeLen
Longueur de la chaîne du code d'association, sans caractère de terminaison NULL. La valeur doit être supérieure ou égale à 2.
[out] val
Valeur entière décodée.
Valeurs de retour
WEAVE_NO_ERROR
Si la méthode a réussi.
WEAVE_ERROR_INVALID_ARGUMENT
Si la valeur "pairingCodeLen" est inférieure à 2, la chaîne de code d'association fournie contient un caractère non valide ou la valeur entière encodée dans le code d'association dépasse la valeur maximale pouvant être stockée dans un identifiant uint64_t.

VerifyPairingCode

WEAVE_ERROR VerifyPairingCode(
  const char *pairingCode,
  size_t pairingCodeLen
)

Vérifiez un code d'association Weave à l'aide de 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 en mode NULL.
[in] pairingCodeLen
Longueur de la chaîne du code d'association, sans caractère de terminaison NULL. La valeur doit être supérieure ou égale à 2.
Valeurs de retour
WEAVE_NO_ERROR
Si la méthode a réussi.
WEAVE_ERROR_INVALID_ARGUMENT
Si la valeur "pairingCodeLen" est inférieure à 2, ou si les premiers caractères du code d'association ne correspondent pas à la valeur du caractère de contrôle.