nl::PairingCode

Resumen

Enumeraciones

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

Funciones

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 de número entero como un código de vinculación de Weave.
IntToPairingCodeChar(int val)
char
Convierte un valor entero en el 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 válido de código de vinculación de Weave.
KryptoniteDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Genera una cadena de código de vinculación de Kryptonite a partir de un ID de dispositivo de Kryptonite.
KryptonitePairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Devuelve 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 cadena de código de vinculación de Nevis a partir de 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 en el 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 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 para Kryptonite.

kPairingCodeLenMin

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.

Funciones

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 una longitud especificada. valor codificado como un número big-endian de base 32, más un carácter de verificación Verhoeff al final. La cadena generada tiene una longitud fija especificada por el parámetro matchingCodeLen. La cadena se rellena a la izquierda con ceros según sea necesario para cumplir con esta longitud.

Detalles
Parámetros
[in] pairingCodeLen
La longitud deseada de la cadena de código de vinculación, incluido el carácter de verificación final. Debe ser mayor o igual que 2.
[out] outBuf
Un puntero para un búfer de caracteres que recibirá el código de vinculación codificado, más un carácter terminador nulo. El búfer proporcionado debe ser al menos tan grande como matchingCodeLen + 1.
Valores de retorno
WEAVE_NO_ERROR
Si el método tuvo éxito.
WEAVE_ERROR_INVALID_ARGUMENT
Si LinkingCodeLen es < 2 o el valor de número entero proporcionado no se puede codificar en la cantidad de caracteres especificada por matchingCodeLen, menos 1 para el carácter de verificación.

IntToPairingCode

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

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

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

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

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

Convierte un valor entero en el 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
Número entero que se convertirá.
Resultado que se muestra
El carácter del código de vinculación que corresponde al valor de número entero especificado o 0 si el valor del número entero está fuera de rango.

IsValidPairingCodeChar

bool IsValidPairingCodeChar(
  char ch
)

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

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
Resultado que se muestra
Es verdadero si un carácter proporcionado es un carácter válido de código de vinculación de Weave.

KryptoniteDeviceIdToPairingCode

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

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

Detalles
Parámetros
[in] deviceId
Es el ID de un 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 7 caracteres o más de tamaño.
[in] pairingCodeBufSize
Es el tamaño del búfer al que hace referencia matchingCodeBuf.
Valores de retorno
WEAVE_NO_ERROR
Si el método tuvo éxito.
WEAVE_ERROR_INVALID_ARGUMENT
Si el ID de dispositivo proporcionado está fuera del rango o si el búfer proporcionado es demasiado pequeño.

KryptonitePairingCodeToDeviceId

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

Devuelve 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 de retorno
WEAVE_NO_ERROR
Si el método tuvo éxito.
WEAVE_ERROR_INVALID_ARGUMENT
Si la longitud del código de vinculación proporcionado es incorrecta, si este 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 cadena de código de vinculación de Nevis a partir de 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 7 caracteres o más de tamaño.
[in] pairingCodeBufSize
Es el tamaño del búfer al que hace referencia matchingCodeBuf.
Valores de retorno
WEAVE_NO_ERROR
Si el método tuvo éxito.
WEAVE_ERROR_INVALID_ARGUMENT
Si el ID de dispositivo proporcionado está fuera del rango o si el búfer proporcionado 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 cadena 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 de retorno
WEAVE_NO_ERROR
Si el método tuvo éxito.
WEAVE_ERROR_INVALID_ARGUMENT
Si la longitud del código de vinculación proporcionado es incorrecta, si este 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 y asigna los caracteres no permitidos 'I', 'O', 'Q'. y en "Z" a "1", "0", "0" y "2", respectivamente, y quita todos los demás caracteres de código que no están vinculados de la cadena dada.

No es necesario que la cadena de entrada tenga una finalización NULL; sin embargo, si es así, el resultado también será NULL.

Detalles
Parámetros
[in,out] pairingCode
En la entrada, la cadena de código de vinculación que se normalizará. En la salida, la cadena normalizada. No es necesario que la cadena finalice con 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 la salida, 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 en el 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
Resultado que se muestra
Un valor entero que corresponde al carácter del 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 entero.

La función analiza los caracteres iniciales de una cadena de código de vinculación de Weave como un número de base 32 big-endian y muestra el valor resultante como un número entero sin firma. La cadena de entrada puede tener cualquier longitud >= 2, siempre que el número entero decodificado quepa en 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á. Esta cadena no necesita ser terminada como NULL.
[in] pairingCodeLen
La longitud de la string del código de vinculación, sin incluir ningún carácter terminador NULL. Debe ser mayor o igual que 2.
[out] val
Es el valor de número entero decodificado.
Valores de retorno
WEAVE_NO_ERROR
Si el método tuvo éxito.
WEAVE_ERROR_INVALID_ARGUMENT
Si LinkingCodeLen es < 2, o la cadena de código de vinculación proporcionada contiene un carácter no válido, o el valor de número 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
Cadena de código de vinculación que se verificará. Esta cadena no necesita ser terminada como NULL.
[in] pairingCodeLen
La longitud de la string del código de vinculación, sin incluir ningún carácter terminador NULL. Debe ser mayor o igual que 2.
Valores de retorno
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.