nl::PairingCode

Resumo

Enumerações

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

remotas

GeneratePairingCode(uint8_t pairingCodeLen, char *outBuf)
Gerar um código de pareamento aleatório.
IntToPairingCode(uint64_t val, uint8_t pairingCodeLen, char *outBuf)
Codifique um valor inteiro como um código de pareamento do Weave.
IntToPairingCodeChar(int val)
char
Converta um valor inteiro no intervalo de 0 a 31 para seu caractere de código de pareamento do Weave correspondente.
IsValidPairingCodeChar(char ch)
bool
Retorna verdadeiro se um caractere fornecido for um caractere de código de pareamento válido do Weave.
KryptoniteDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Gera uma string de código de pareamento da Kryptonite com um ID de dispositivo Kryptonite.
KryptonitePairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Retorna o ID do dispositivo codificado no código de pareamento da Kryptonite.
NevisDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Gera uma string de código de pareamento do Nevis com um ID de dispositivo Nevis.
NevisPairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Retorna o ID do dispositivo codificado no código de pareamento do Nevis.
NormalizePairingCode(char *pairingCode, size_t & pairingCodeLen)
void
Normaliza os caracteres em uma string de código de pareamento.
PairingCodeCharToInt(char ch)
int
Converte um caractere de código de pareamento do Weave em um valor inteiro no intervalo de 0 a 31.
PairingCodeToInt(const char *pairingCode, size_t pairingCodeLen, uint64_t & val)
Decodifique um código de pareamento do Weave como um valor inteiro.
VerifyPairingCode(const char *pairingCode, size_t pairingCodeLen)
Confirme um código de pareamento do Weave com o caractere de verificação.

Enumerações

@353

 @353

@354

 @354

@355

 @355

@356

 @356
Propriedades
kBitsPerCharacter

Número de bits codificados em um único caractere de código de pareamento.

kKryptonitePairingCodeLength

Comprimento do código de pareamento para criptonita.

kPairingCodeLenMin

Comprimento mínimo de um código de pareamento.

kStandardPairingCodeLength

Tamanho do código de pareamento para a maioria dos produtos Nest.

remotas

GeneratePairingCode

WEAVE_ERROR GeneratePairingCode(
  uint8_t pairingCodeLen,
  char *outBuf
)

Gerar um código de pareamento aleatório.

A função gera uma string de código de pareamento do Weave aleatória com um valor de comprimento especificado, codificada como um numeral big-endian de base 32, além de um caractere de verificação Verhoeff à direita. A string gerada tem um comprimento fixo especificado pelo parâmetro pareamentoCodeLen. A string é preenchida à esquerda com zeros conforme necessário para atender a esse comprimento.

Detalhes
Parâmetros
[in] pairingCodeLen
O comprimento desejado para a string do código de pareamento, incluindo o caractere de verificação no final. Precisa ser maior ou igual a 2.
[out] outBuf
Um ponteiro para um buffer de caracteres que receberá o código de pareamento codificado, além de um caractere de terminador nulo. O buffer fornecido deve ter pelo menos o tamanho de pareamentoCodeLen + 1.
Valores de retorno
WEAVE_NO_ERROR
Se o método tiver sido bem-sucedido,
WEAVE_ERROR_INVALID_ARGUMENT
Se pareamentoCodeLen for < 2 ou o valor inteiro fornecido não puder ser codificado no número de caracteres especificado por pareamentoCodeLen, menos 1 para o caractere de verificação.

IntToPairingCode

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

Codifique um valor inteiro como um código de pareamento do Weave.

A função gera uma string de código de pareamento do Weave que consiste em um valor inteiro não assinado fornecido, codificado como um numeral big-endian de base32 e um caractere de verificação Verhoeff à direita. A string gerada tem um comprimento fixo especificado pelo parâmetro pareamentoCodeLen. A string é preenchida à esquerda com zeros conforme necessário para atender a esse comprimento.

Detalhes
Parâmetros
[in] val
O valor a ser codificado.
[in] pairingCodeLen
O comprimento desejado da string do código de pareamento codificado, incluindo o caractere de verificação no final. Precisa ser maior ou igual a 2.
[out] outBuf
Um ponteiro para um buffer de caracteres que receberá o código de pareamento codificado, além de um caractere de terminador nulo. O buffer fornecido deve ter pelo menos o tamanho de pareamentoCodeLen + 1.
Valores de retorno
WEAVE_NO_ERROR
Se o método tiver sido bem-sucedido,
WEAVE_ERROR_INVALID_ARGUMENT
Se pareamentoCodeLen for < 2 ou o valor inteiro fornecido não puder ser codificado no número de caracteres especificado por pareamentoCodeLen, menos 1 para o caractere de verificação.

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

Converta um valor inteiro no intervalo de 0 a 31 para seu caractere de código de pareamento do Weave correspondente.

Observe que essa função sempre produz caracteres em maiúsculas.

Detalhes
Parâmetros
[in] val
O valor inteiro a ser convertido.
Retorna
O caractere do código de pareamento que corresponde ao valor inteiro especificado, ou 0 se o valor inteiro estiver fora do intervalo.

IsValidPairingCodeChar

bool IsValidPairingCodeChar(
  char ch
)

Retorna verdadeiro se um caractere fornecido for um caractere de código de pareamento válido do Weave.

Essa função não diferencia maiúsculas de minúsculas.

Detalhes
Parâmetros
[in] ch
O caractere a ser testado.
Retorna
Verdadeiro se um caractere fornecido for um caractere de código de pareamento válido do Weave.

KryptoniteDeviceIdToPairingCode

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

Gera uma string de código de pareamento da Kryptonite com um ID de dispositivo Kryptonite.

Detalhes
Parâmetros
[in] deviceId
Um ID de dispositivo em Kryptonite.
[out] pairingCodeBuf
Um ponteiro para um buffer que receberá o código de pareamento da Kryptonite, um caractere de encerramento NULL. O buffer fornecido deve ter sete caracteres ou mais.
[in] pairingCodeBufSize
O tamanho do buffer apontado por pareamentoCodeBuf.
Valores de retorno
WEAVE_NO_ERROR
Se o método tiver sido bem-sucedido,
WEAVE_ERROR_INVALID_ARGUMENT
Se o ID do dispositivo fornecido estiver fora do intervalo ou se o buffer fornecido for muito pequeno.

KryptonitePairingCodeToDeviceId

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

Retorna o ID do dispositivo codificado no código de pareamento da Kryptonite.

Detalhes
Parâmetros
[in] pairingCode
Uma string terminada em NULL contendo um código de pareamento da criptonita.
[out] deviceId
Uma referência a um número inteiro que recebe o ID do dispositivo Kryptonite decodificado.
Valores de retorno
WEAVE_NO_ERROR
Se o método tiver sido bem-sucedido,
WEAVE_ERROR_INVALID_ARGUMENT
Se o comprimento do código de pareamento fornecido estiver incorreto, o código de pareamento contiver caracteres inválidos ou se os caracteres iniciais do código de pareamento não forem consistentes com o caractere de verificação.

NevisDeviceIdToPairingCode

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

Gera uma string de código de pareamento do Nevis com um ID de dispositivo Nevis.

Detalhes
Parâmetros
[in] deviceId
Um ID do dispositivo Nevis.
[out] pairingCodeBuf
Um ponteiro para um buffer que receberá o código de pareamento Nevis, um caractere de encerramento NULL. O buffer fornecido deve ter sete caracteres ou mais.
[in] pairingCodeBufSize
O tamanho do buffer apontado por pareamentoCodeBuf.
Valores de retorno
WEAVE_NO_ERROR
Se o método tiver sido bem-sucedido,
WEAVE_ERROR_INVALID_ARGUMENT
Se o ID do dispositivo fornecido estiver fora do intervalo ou se o buffer fornecido for muito pequeno.

NevisPairingCodeToDeviceId

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

Retorna o ID do dispositivo codificado no código de pareamento do Nevis.

Detalhes
Parâmetros
[in] pairingCode
Uma string terminada em NULL contendo um código de pareamento de Nevis.
[out] deviceId
Uma referência a um número inteiro que recebe o ID do dispositivo Nevis decodificado.
Valores de retorno
WEAVE_NO_ERROR
Se o método tiver sido bem-sucedido,
WEAVE_ERROR_INVALID_ARGUMENT
Se o comprimento do código de pareamento fornecido estiver incorreto, o código de pareamento contiver caracteres inválidos ou se os caracteres iniciais do código de pareamento não forem consistentes com o caractere de verificação.

NormalizePairingCode

void NormalizePairingCode(
  char *pairingCode,
  size_t & pairingCodeLen
)

Normaliza os caracteres em uma string de código de pareamento.

Essa função converte todos os caracteres alfabéticos em maiúsculas, mapeia os caracteres ilegais "I", "O", "Q" e "Z" para "1", "0", "0" e "2", respectivamente, e remove todos os outros caracteres de código que não são de pareamento da string especificada.

A string de entrada não precisa ser encerrada como NULL; no entanto, se for, a saída também será encerrada como NULL.

Detalhes
Parâmetros
[in,out] pairingCode
Na entrada, a string do código de pareamento a ser normalizada. Na saída, a string normalizada. Não é necessário que a string seja encerrada como NULL.
[in,out] pairingCodeLen
Na entrada, o comprimento da string do código de pareamento, sem incluir nenhum caractere de terminador NULL. Na saída, o comprimento da string normalizada.

PairingCodeCharToInt

int PairingCodeCharToInt(
  char ch
)

Converte um caractere de código de pareamento do Weave em um valor inteiro no intervalo de 0 a 31.

Essa função não diferencia maiúsculas de minúsculas.

Detalhes
Parâmetros
[in] ch
O caractere a ser convertido.
Retorna
Um valor inteiro correspondente ao caractere do código de pareamento especificado, ou -1 se ch não for um caractere válido.

PairingCodeToInt

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

Decodifique um código de pareamento do Weave como um valor inteiro.

A função analisa os caracteres iniciais de uma string de código de pareamento do Weave como um numeral big-endian base-32 e retorna o valor resultante como um número inteiro sem sinal. A string de entrada pode ter qualquer comprimento >= 2, desde que o número inteiro decodificado caiba em um uint64_t.

Nenhuma tentativa é feita para verificar o caractere de verificação Verhoeff. Consulte VerifyPairingCode().

Detalhes
Parâmetros
[in] pairingCode
A string do código de pareamento a ser decodificada. Essa string não precisa terminar como NULL.
[in] pairingCodeLen
O comprimento da string do código de pareamento, sem incluir nenhum caractere de terminador NULL. Precisa ser maior ou igual a 2.
[out] val
O valor inteiro decodificado.
Valores de retorno
WEAVE_NO_ERROR
Se o método tiver sido bem-sucedido,
WEAVE_ERROR_INVALID_ARGUMENT
Se pareamentoCodeLen for < 2 ou a string do código de pareamento fornecida contiver um caractere inválido, ou se o valor inteiro codificado no código de pareamento exceder o valor máximo que pode ser armazenado em um uint64_t.

VerifyPairingCode

WEAVE_ERROR VerifyPairingCode(
  const char *pairingCode,
  size_t pairingCodeLen
)

Confirme um código de pareamento do Weave com o caractere de verificação.

Detalhes
Parâmetros
[in] pairingCode
A string do código de pareamento a ser verificada. Essa string não precisa terminar como NULL.
[in] pairingCodeLen
O comprimento da string do código de pareamento, sem incluir nenhum caractere de terminador NULL. Precisa ser maior ou igual a 2.
Valores de retorno
WEAVE_NO_ERROR
Se o método tiver sido bem-sucedido,
WEAVE_ERROR_INVALID_ARGUMENT
Se pareamentoCodeLen for < 2 ou os caracteres iniciais do código de pareamento não forem consistentes com o valor do caractere de verificação.