nl::Código de pareamento

Resumo

Enumerações

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

Functions

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 0..31 ao caractere correspondente do código de pareamento do Weave.
IsValidPairingCodeChar(char ch)
bool
Retorna verdadeiro se um caractere fornecido é 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 usando o código do dispositivo da Kryptonita.
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 com base em um ID do 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
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 para um valor inteiro no intervalo 0..31.
PairingCodeToInt(const char *pairingCode, size_t pairingCodeLen, uint64_t & val)
Decodifique um código de pareamento do Weave como valor inteiro.
VerifyPairingCode(const char *pairingCode, size_t pairingCodeLen)
Verifique um código de pareamento do Weave no 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 Kryptonita.

kPairingCodeLenMin

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

kStandardPairingCodeLength

Comprimento do código de pareamento da maioria dos produtos Nest.

Functions

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 valor de comprimento especificado, codificado como um numeral base-end2 de big-endian, além de um caractere de verificação Verhoeff à direita. A string gerada tem um tamanho fixo especificado pelo parâmetroPairCodeLen. A string é preenchida à esquerda com zeros conforme necessário para atingir esse comprimento.

Detalhes
Parâmetros
[in] pairingCodeLen
O comprimento desejado da string do código de pareamento, incluindo o caractere de verificação à direita. 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 terminador nulo. O buffer fornecido precisa ser pelo menos tão grande quanto o pareamentoCodeLen + 1.
Valores de retorno
WEAVE_NO_ERROR
Se o método for bem-sucedido.
WEAVE_ERROR_INVALID_ARGUMENT
Se parearCodeLen for < 2 ou o valor inteiro fornecido não puder ser codificado no número de caracteres especificados por parearCodeLen, 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 sinalizado fornecido, codificado como um numeral base-2 de big-endian mais um caractere de verificação Verhoeff à direita. A string gerada tem um tamanho fixo especificado pelo parâmetroPairCodeLen. A string é preenchida à esquerda com zeros conforme necessário para atingir 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 à direita. 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 terminador nulo. O buffer fornecido precisa ser pelo menos tão grande quanto o pareamentoCodeLen + 1.
Valores de retorno
WEAVE_NO_ERROR
Se o método for bem-sucedido.
WEAVE_ERROR_INVALID_ARGUMENT
Se parearCodeLen for < 2 ou o valor inteiro fornecido não puder ser codificado no número de caracteres especificados por parearCodeLen, menos 1 para o caractere de verificação.

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

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

Essa função sempre produz caracteres em maiúsculas.

Detalhes
Parâmetros
[in] val
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 é um caractere de código de pareamento válido do Weave.

Ela 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 válido do código de pareamento do Weave.

KryptoniteDeviceIdToPairingCode

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

Gera uma string de código de pareamento usando o código do dispositivo da Kryptonita.

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

KryptonitaPairingCodeToDeviceId

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 que contém um código de pareamento da Kryptonita.
[out] deviceId
Uma referência a um número inteiro que recebe o código de dispositivo Kryptonita decodificado.
Valores de retorno
WEAVE_NO_ERROR
Se o método for bem-sucedido.
WEAVE_ERROR_INVALID_ARGUMENT
Se o tamanho 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 com base em um ID do 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 parearCodeBuf.
Valores de retorno
WEAVE_NO_ERROR
Se o método for 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 Nevis.
[out] deviceId
Uma referência a um número inteiro que recebe o código de dispositivo Nevis decodificado.
Valores de retorno
WEAVE_NO_ERROR
Se o método for bem-sucedido.
WEAVE_ERROR_INVALID_ARGUMENT
Se o tamanho 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 para letras maiúsculas e minúsculas, mapeia os caracteres inválidos 'I', 'O', 'Q' e 'Z' para '1', '0', '0&#39

A string de entrada não precisa ser encerrada NULL, mas se for a saída, ela também será encerrada.

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 NULL.
[in,out] pairingCodeLen
Na entrada, o comprimento da string do código de pareamento, não incluindo nenhum caractere de terminado NULL. Na saída, o comprimento da string normalizada.

PairingCodeCharToInt.

int PairingCodeCharToInt(
  char ch
)

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

Ela 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 valor inteiro.

A função analisa os caracteres iniciais de uma string de código de pareamento do Weave como um numeral end-end grande de 32 e retorna o valor resultante como um número inteiro sem sinal. A string de entrada pode ter qualquer tamanho >= 2, desde que o 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
String de código de pareamento a ser decodificada. Esta string não precisa ser encerrada NULL.
[in] pairingCodeLen
O comprimento da string do código de pareamento, sem incluir nenhum caractere de terminado 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 parearCodeLen for < 2 ou a string de código de pareamento fornecida 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 uint64_t.

Verificar código de pareamento

WEAVE_ERROR VerifyPairingCode(
  const char *pairingCode,
  size_t pairingCodeLen
)

Verifique um código de pareamento do Weave no caractere de verificação.

Detalhes
Parâmetros
[in] pairingCode
String de código de pareamento a ser verificada. Esta string não precisa ser encerrada NULL.
[in] pairingCodeLen
O comprimento da string do código de pareamento, sem incluir nenhum caractere de terminado NULL. Precisa ser >= 2.
Valores de retorno
WEAVE_NO_ERROR
Se o método for bem-sucedido.
WEAVE_ERROR_INVALID_ARGUMENT
Se parearCodeLen for < 2, ou os caracteres iniciais do código de pareamento não forem consistentes com o valor do caractere de verificação.