nl::PairingCode

Resumo

Enumerações

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

Funções

GeneratePairingCode(uint8_t pairingCodeLen, char *outBuf)
Gere 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 o caractere de código de pareamento do Weave correspondente.
IsValidPairingCodeChar(char ch)
bool
Retorna true se um caractere fornecido for um caractere de código de pareamento do Weave válido.
KryptoniteDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Gera uma string de código de pareamento da Kryptonita conforme um ID de dispositivo.
KryptonitePairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Retorna o ID do dispositivo codificado no código de pareamento da Kryptonita.
NevisDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Gera uma string de código de pareamento do Nevis conforme um ID de dispositivo Nevis.
NevisPairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Retorna o ID do dispositivo codificado no código de pareamento Nevis.
NormalizePairingCode(char *pairingCode, size_t & pairingCodeLen)
void
Normalize os caracteres em uma string de código de pareamento.
PairingCodeCharToInt(char ch)
int
Converta um caractere de código de pareamento do Weave em um valor inteiro no intervalo 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)
Verifique um código de pareamento do Weave em relação ao seu 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

É o tamanho do código de pareamento da criptonita.

kPairingCodeLenMin

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

kStandardPairingCodeLength

É o tamanho do código de pareamento para a maioria dos produtos Nest.

Funções

GeneratePairingCode

WEAVE_ERROR GeneratePairingCode(
  uint8_t pairingCodeLen,
  char *outBuf
)

Gere um código de pareamento aleatório.

A função gera uma string aleatória de código de pareamento do Weave com um comprimento especificado. codificado como um numeral big-endian de base 32 mais um caractere de verificação Verhoeff à direita. A string gerada tem um tamanho 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 da string do código de pareamento, incluindo o caractere de verificação. Precisa ser >= 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 precisa ter pelo menos o tamanho pareamentoCodeLen + 1.
Valores de retorno
WEAVE_NO_ERROR
Se o método for bem-sucedido.
WEAVE_ERROR_INVALID_ARGUMENT
Se pareamentoCodeLen for < 2 ou o valor inteiro fornecido não pode ser codificado no número de caracteres especificado pelo 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 base 32 e um caractere de verificação Verhoeff à direita. A string gerada tem um tamanho 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. Precisa ser >= 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 precisa ter pelo menos o tamanho pareamentoCodeLen + 1.
Valores de retorno
WEAVE_NO_ERROR
Se o método for bem-sucedido.
WEAVE_ERROR_INVALID_ARGUMENT
Se pareamentoCodeLen for < 2 ou o valor inteiro fornecido não pode ser codificado no número de caracteres especificado pelo 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 o caractere de código de pareamento do Weave correspondente.

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

Detalhes
Parâmetros
[in] val
O valor inteiro a ser convertido.
Retornos
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 true se um caractere fornecido for um caractere de código de pareamento do Weave válido.

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

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

KryptoniteDeviceIdToPairingCode

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

Gera uma string de código de pareamento da Kryptonita conforme um ID de dispositivo.

Detalhes
Parâmetros
[in] deviceId
Um ID de dispositivo da Kryptonita.
[out] pairingCodeBuf
Um ponteiro para um buffer que vai receber o código de pareamento da Kryptonite, um caractere de encerramento NULL. O buffer fornecido precisa ter 7 caracteres ou mais.
[in] pairingCodeBufSize
O tamanho do buffer apontado pelo pareamentoCodeBuf.
Valores de retorno
WEAVE_NO_ERROR
Se o método for bem-sucedido.
WEAVE_ERROR_INVALID_ARGUMENT
Se o ID do dispositivo informado 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 Kryptonita.

Detalhes
Parâmetros
[in] pairingCode
Uma string terminada em NULL contendo um código de pareamento da Kryptonita.
[out] deviceId
Uma referência a um número inteiro que recebe o ID de dispositivo decodificado do Kryptonite.
Valores de retorno
WEAVE_NO_ERROR
Se o método for bem-sucedido.
WEAVE_ERROR_INVALID_ARGUMENT
Se o comprimento do código de pareamento fornecido estiver incorreto, se 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 conforme um ID de dispositivo Nevis.

Detalhes
Parâmetros
[in] deviceId
Um ID de dispositivo Nevis.
[out] pairingCodeBuf
Um ponteiro para um buffer que receberá o código de pareamento do Nevis, um caractere de encerramento NULL. O buffer fornecido deve ter 7 caracteres ou mais.
[in] pairingCodeBufSize
O tamanho do buffer apontado pelo pareamentoCodeBuf.
Valores de retorno
WEAVE_NO_ERROR
Se o método for bem-sucedido.
WEAVE_ERROR_INVALID_ARGUMENT
Se o ID do dispositivo informado 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 Nevis.

Detalhes
Parâmetros
[in] pairingCode
Uma string terminada em NULL contendo um código de pareamento do 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 for bem-sucedido.
WEAVE_ERROR_INVALID_ARGUMENT
Se o comprimento do código de pareamento fornecido estiver incorreto, se 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
)

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

Esta função converte todos os caracteres alfabéticos em maiúsculas e mapeia os caracteres inválidos "I", "O" e "Q" e "Z" como "1", "0" e "0" e '2', respectivamente, e remove todos os outros caracteres de código não pareados da string em questão.

A string de entrada não precisa ser encerrada com NULL. Se for, a saída também será encerrada com 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 termine com 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
)

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

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

Detalhes
Parâmetros
[in] ch
O caractere a ser convertido.
Retornos
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 de base-32 e retorna o valor resultante como um número inteiro não assinado. A string de entrada pode ter qualquer comprimento >= 2, desde que o número inteiro decodificado se encaixe 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 com NULL.
[in] pairingCodeLen
O comprimento da string do código de pareamento, sem incluir nenhum caractere de terminador NULL. Precisa ser >= 2.
[out] val
O valor inteiro decodificado.
Valores de retorno
WEAVE_NO_ERROR
Se o método for bem-sucedido.
WEAVE_ERROR_INVALID_ARGUMENT
Se pareamentoCodeLen for < 2 ou a string do código de pareamento fornecido contiver um caractere inválido, ou 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
)

Verifique um código de pareamento do Weave em relação ao seu 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 com NULL.
[in] pairingCodeLen
O comprimento da string do código de pareamento, sem incluir nenhum caractere de terminador NULL. Precisa ser >= 2.
Valores de retorno
WEAVE_NO_ERROR
Se o método for bem-sucedido.
WEAVE_ERROR_INVALID_ARGUMENT
Se pareamentoCodeLen for < 2 ou os caracteres iniciais do código de pareamento não são consistentes com o valor do caractere de verificação.