nl::PairingCode

Resumen

Enumeraciones

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

remotas

GeneratePairingCode(uint8_t pairingCodeLen, char *outBuf)
Genera un código de vinculación aleatorio.
IntToPairingCode(uint64_t val, uint8_t pairingCodeLen, char *outBuf)
Codifica un valor entero como código de vinculación de Weave.
IntToPairingCodeChar(int val)
char
Convierte un valor de número entero dentro del rango 0..31 en su carácter de código de vinculación de Weave correspondiente.
IsValidPairingCodeChar(char ch)
bool
Muestra true si un carácter proporcionado es un carácter de código de vinculación de Weave válido.
KryptoniteDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Genera una cadena de código de vinculación de Kryptonite con un ID de dispositivo de Kryptonite.
KryptonitePairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Muestra el ID de dispositivo codificado en el código de vinculación de Kryptonite.
NevisDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Genera una string de código de vinculación de Nevis con un ID de dispositivo de Nevis.
NevisPairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Muestra el ID de dispositivo codificado en el código de vinculación de Nevis.
NormalizePairingCode(char *pairingCode, size_t & pairingCodeLen)
void
Normaliza los caracteres en una cadena de código de vinculación.
PairingCodeCharToInt(char ch)
int
Convierte un carácter de código de vinculación de Weave en un valor de número entero dentro del rango 0..31.
PairingCodeToInt(const char *pairingCode, size_t pairingCodeLen, uint64_t & val)
Decodifica un código de vinculación de Weave como un valor de número entero.
VerifyPairingCode(const char *pairingCode, size_t pairingCodeLen)
Verifica un código de vinculación de Weave con su carácter de verificación.

Enumeraciones

@353

 @353

@354

 @354

@355

 @355

@356

 @356
Propiedades
kBitsPerCharacter

Cantidad de bits codificados en un solo carácter de código de vinculación.

kKryptonitePairingCodeLength

Longitud del código de vinculación de Kryptonite.

kPairingCodeLenMin

Es la longitud mínima de un código de vinculación.

kStandardPairingCodeLength

Longitud del código de vinculación para la mayoría de los productos Nest.

remotas

GeneratePairingCode

WEAVE_ERROR GeneratePairingCode(
  uint8_t pairingCodeLen,
  char *outBuf
)

Genera un código de vinculación aleatorio.

La función genera una cadena de código de vinculación de Weave aleatoria con un valor de longitud especificado, codificado como un numeral de base 32 big-endian, más un carácter de verificación Verhoeff al final. La string generada tiene una longitud fija especificada por el parámetro pairingCodeLen. La cadena se rellena a la izquierda con ceros según sea necesario para alcanzar esta longitud.

Detalles
Parámetros
[in] pairingCodeLen
La longitud deseada de la string de código de vinculación, incluido el carácter de verificación final. Debe ser >= 2.
[out] outBuf
Un puntero a un búfer de caracteres que recibirá el código de vinculación codificado, más un carácter de terminador nulo. El búfer suministrado debe tener, al menos, el tamaño de algunos elementos pairingCodeLen + 1.
Valores que se muestran
WEAVE_NO_ERROR
Si el método tuvo éxito.
WEAVE_ERROR_INVALID_ARGUMENT
Si matchingCodeLen es < 2 o el valor entero proporcionado no se puede codificar en la cantidad de caracteres especificada por pairingCodeLen, menos 1 para el carácter de verificación.

IntToPairingCode

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

Codifica un valor entero como código de vinculación de Weave.

La función genera una string de código de vinculación de Weave que consiste en un valor de número entero sin firma proporcionado, codificado como un numeral de base 32 de formato big-endian, más un carácter de verificación final Verhoeff. La string generada tiene una longitud fija especificada por el parámetro pairingCodeLen. La cadena se rellena a la izquierda con ceros según sea necesario para alcanzar esta longitud.

Detalles
Parámetros
[in] val
Valor que se va a codificar.
[in] pairingCodeLen
La longitud deseada de la cadena de código de vinculación codificada, incluido el carácter de verificación final. Debe ser >= 2.
[out] outBuf
Un puntero a un búfer de caracteres que recibirá el código de vinculación codificado, más un carácter de terminador nulo. El búfer suministrado debe tener, al menos, el tamaño de algunos elementos pairingCodeLen + 1.
Valores que se muestran
WEAVE_NO_ERROR
Si el método tuvo éxito.
WEAVE_ERROR_INVALID_ARGUMENT
Si matchingCodeLen es < 2 o el valor entero proporcionado no se puede codificar en la cantidad de caracteres especificada por pairingCodeLen, menos 1 para el carácter de verificación.

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

Convierte un valor de número entero dentro del rango 0..31 en su carácter de código de vinculación de Weave correspondiente.

Ten en cuenta que esta función siempre produce caracteres en mayúsculas.

Detalles
Parámetros
[in] val
El valor de número entero que se va a convertir.
Qué muestra
El carácter de código de vinculación que corresponde al valor de número entero especificado o 0 si el valor está fuera de rango.

IsValidPairingCodeChar

bool IsValidPairingCodeChar(
  char ch
)

Muestra true si un carácter proporcionado es un carácter de código de vinculación de Weave válido.

Ten en cuenta que esta función no distingue mayúsculas de minúsculas.

Detalles
Parámetros
[in] ch
Carácter que se va a probar
Qué muestra
Es verdadero si un carácter proporcionado es un carácter de código de vinculación de Weave válido.

KryptoniteDeviceIdToPairingCode

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

Genera una cadena de código de vinculación de Kryptonite con un ID de dispositivo de Kryptonite.

Detalles
Parámetros
[in] deviceId
Es un ID de dispositivo de Kryptonite.
[out] pairingCodeBuf
Un puntero para un búfer que recibirá el código de vinculación de Kryptonite, un carácter de finalización NULL. El búfer proporcionado debe tener un tamaño de 7 caracteres o más.
[in] pairingCodeBufSize
Es el tamaño del búfer al que apunta vincularCodeBuf.
Valores que se muestran
WEAVE_NO_ERROR
Si el método tuvo éxito.
WEAVE_ERROR_INVALID_ARGUMENT
Si el ID del dispositivo proporcionado está fuera del rango o si el búfer suministrado es demasiado pequeño.

KryptonitePairingCodeToDeviceId

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

Muestra el ID de dispositivo codificado en el código de vinculación de Kryptonite.

Detalles
Parámetros
[in] pairingCode
Una cadena terminada en NULL que contiene un código de vinculación de Kryptonite.
[out] deviceId
Es una referencia a un número entero que recibe el ID de dispositivo de Kryptonite decodificado.
Valores que se muestran
WEAVE_NO_ERROR
Si el método tuvo éxito.
WEAVE_ERROR_INVALID_ARGUMENT
Si la longitud del código de vinculación proporcionado no es correcta, si el código de vinculación contiene caracteres no válidos o si los caracteres iniciales del código de vinculación no son coherentes con el carácter de verificación.

NevisDeviceIdToPairingCode

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

Genera una string de código de vinculación de Nevis con un ID de dispositivo de Nevis.

Detalles
Parámetros
[in] deviceId
Es un ID de dispositivo de Nevis.
[out] pairingCodeBuf
Un puntero para un búfer que recibirá el código de vinculación de Nevis, un carácter de finalización NULL. El búfer proporcionado debe tener un tamaño de 7 caracteres o más.
[in] pairingCodeBufSize
Es el tamaño del búfer al que apunta vincularCodeBuf.
Valores que se muestran
WEAVE_NO_ERROR
Si el método tuvo éxito.
WEAVE_ERROR_INVALID_ARGUMENT
Si el ID del dispositivo proporcionado está fuera del rango o si el búfer suministrado es demasiado pequeño.

NevisPairingCodeToDeviceId

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

Muestra el ID de dispositivo codificado en el código de vinculación de Nevis.

Detalles
Parámetros
[in] pairingCode
Una string terminada en NULL que contiene un código de vinculación de Nevis.
[out] deviceId
Es una referencia a un número entero que recibe el ID de dispositivo de Nevis decodificado.
Valores que se muestran
WEAVE_NO_ERROR
Si el método tuvo éxito.
WEAVE_ERROR_INVALID_ARGUMENT
Si la longitud del código de vinculación proporcionado no es correcta, si el código de vinculación contiene caracteres no válidos o si los caracteres iniciales del código de vinculación no son coherentes con el carácter de verificación.

NormalizePairingCode

void NormalizePairingCode(
  char *pairingCode,
  size_t & pairingCodeLen
)

Normaliza los caracteres en una cadena de código de vinculación.

Esta función convierte todos los caracteres alfabéticos en mayúsculas, asigna los caracteres no permitidos "I", "O", "Q" y "Z" a "1", "0", "0" y "2", respectivamente, y quita todos los demás caracteres de código que no se vinculan de la string especificada.

No es necesario que la cadena de entrada tenga una terminación NULL, pero si lo es, la salida también tendrá un estado NULL.

Detalles
Parámetros
[in,out] pairingCode
En la entrada, la cadena de código de vinculación que se normalizará. En el resultado, la string normalizada. No es necesario que la cadena tenga el valor NULL.
[in,out] pairingCodeLen
En la entrada, la longitud de la string de código de vinculación, sin incluir ningún carácter de terminador NULL. En el resultado, la longitud de la string normalizada.

PairingCodeCharToInt

int PairingCodeCharToInt(
  char ch
)

Convierte un carácter de código de vinculación de Weave en un valor de número entero dentro del rango 0..31.

Ten en cuenta que esta función no distingue mayúsculas de minúsculas.

Detalles
Parámetros
[in] ch
Carácter que se va a convertir
Qué muestra
Un valor entero que corresponde al carácter de código de vinculación especificado o -1 si ch no es un carácter válido.

PairingCodeToInt

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

Decodifica un código de vinculación de Weave como un valor de número entero.

La función analiza los caracteres iniciales de una cadena de código de vinculación de Weave como un numeral de base 32 de tipo big-endian y muestra el valor resultante como un número entero sin firma. La string de entrada puede ser de cualquier longitud >= 2, siempre y cuando el número entero decodificado se ajuste a un uint64_t.

No se intenta verificar el carácter de verificación Verhoeff (consulta VerifyPairingCode()).

Detalles
Parámetros
[in] pairingCode
La cadena de código de vinculación que se decodificará. No es necesario que esta string finalice con el valor NULL.
[in] pairingCodeLen
La longitud de la string de código de vinculación, sin incluir ningún carácter de terminador NULL. Debe ser >= 2.
[out] val
Es el valor de número entero decodificado.
Valores que se muestran
WEAVE_NO_ERROR
Si el método tuvo éxito.
WEAVE_ERROR_INVALID_ARGUMENT
Si LinkingCodeLen es < 2, si la string de código de vinculación proporcionada contiene un carácter no válido, o si el valor entero codificado en el código de vinculación supera el valor máximo que se puede almacenar en un uint64_t.

VerifyPairingCode

WEAVE_ERROR VerifyPairingCode(
  const char *pairingCode,
  size_t pairingCodeLen
)

Verifica un código de vinculación de Weave con su carácter de verificación.

Detalles
Parámetros
[in] pairingCode
La cadena de código de vinculación que se verificará. No es necesario que esta string finalice con el valor NULL.
[in] pairingCodeLen
La longitud de la string de código de vinculación, sin incluir ningún carácter de terminador NULL. Debe ser >= 2.
Valores que se muestran
WEAVE_NO_ERROR
Si el método tuvo éxito.
WEAVE_ERROR_INVALID_ARGUMENT
Si LinkingCodeLen es < 2 o los caracteres iniciales del código de vinculación no son coherentes con el valor del carácter de verificación.