нл:: Код сопряжения

Краткое содержание

Перечисления

@353 перечисление
@354 перечисление
@355 перечисление
@356 {
kStandardPairingCodeLength = 6,
kKryptonitePairingCodeLength = 9,
kPairingCodeLenMin = 2,
kBitsPerCharacter = 5
}
перечисление

Функции

GeneratePairingCode (uint8_t pairingCodeLen, char *outBuf)
Сгенерируйте случайный код сопряжения.
IntToPairingCode (uint64_t val, uint8_t pairingCodeLen, char *outBuf)
Закодируйте целочисленное значение как код сопряжения Weave.
IntToPairingCodeChar (int val)
char
Преобразуйте целое число в диапазоне 0..31 в соответствующий символ кода пары Weave.
IsValidPairingCodeChar (char ch)
bool
Возвращает true, если предоставленный символ является допустимым символом кода сопряжения Weave.
KryptoniteDeviceIdToPairingCode (uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Генерирует строку кода сопряжения Kryptonite с учетом идентификатора устройства Kryptonite.
KryptonitePairingCodeToDeviceId (const char *pairingCode, uint64_t & deviceId)
Возвращает идентификатор устройства, закодированный в коде сопряжения Kryptonite.
NevisDeviceIdToPairingCode (uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Генерирует строку кода сопряжения Невиса с учетом идентификатора устройства Невис.
NevisPairingCodeToDeviceId (const char *pairingCode, uint64_t & deviceId)
Возвращает идентификатор устройства, закодированный в коде сопряжения Невиса.
NormalizePairingCode (char *pairingCode, size_t & pairingCodeLen)
void
Нормализуйте символы в строке кода пары.
PairingCodeCharToInt (char ch)
int
Преобразуйте символ кода сопряжения Weave в целое значение в диапазоне 0..31.
PairingCodeToInt (const char *pairingCode, size_t pairingCodeLen, uint64_t & val)
Декодируйте код сопряжения Weave как целочисленное значение.
VerifyPairingCode (const char *pairingCode, size_t pairingCodeLen)
Проверьте код сопряжения Weave по его контрольному символу.

Перечисления

@353

 @353

@354

 @354

@355

 @355

@356

 @356
Характеристики
kBitsPerCharacter

Количество битов, закодированных в одном символе кода пары.

kKryptonitePairingCodeLength

Длина кода сопряжения для криптонита.

kPairingCodeLenMin

Минимальная длина кода сопряжения.

kStandardPairingCodeLength

Длина кода сопряжения для большинства продуктов Nest.

Функции

Создать код сопряжения

WEAVE_ERROR GeneratePairingCode(
  uint8_t pairingCodeLen,
  char *outBuf
)

Сгенерируйте случайный код сопряжения.

Функция генерирует случайную строку кода сопряжения Weave указанной длины. значение, закодированное как цифра с прямым порядком байтов по основанию 32, плюс завершающий проверочный символ Верхуффа . Сгенерированная строка имеет фиксированную длину, указанную параметромpairingCodeLen. Строка дополняется слева нулями по мере необходимости, чтобы соответствовать этой длине.

Подробности
Параметры
[in] pairingCodeLen
Желаемая длина строки кода сопряжения, включая завершающий контрольный символ. Должно быть >= 2.
[out] outBuf
Указатель на буфер символов, который получит закодированный код сопряжения, а также нулевой символ завершения. Предоставляемый буфер должен быть по крайней мере такого же размера, как и paringCodeLen + 1.
Возвращаемые значения
WEAVE_NO_ERROR
Если метод удался.
WEAVE_ERROR_INVALID_ARGUMENT
Если paringCodeLen < 2 или предоставленное целочисленное значение не может быть закодировано количеством символов, указанным в параметреpairingCodeLen, минус 1 для контрольного символа.

Инттопайрингкод

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

Закодируйте целочисленное значение как код сопряжения Weave.

Функция генерирует строку кода сопряжения Weave, состоящую из предоставленного целочисленного значения без знака, закодированного как число с прямым порядком байтов по основанию 32, плюс завершающий проверочный символ Верхуффа . Сгенерированная строка имеет фиксированную длину, указанную параметромpairingCodeLen. Строка дополняется слева нулями по мере необходимости, чтобы соответствовать этой длине.

Подробности
Параметры
[in] val
Значение, которое необходимо закодировать.
[in] pairingCodeLen
Желаемая длина закодированной строки кода сопряжения, включая завершающий контрольный символ. Должно быть >= 2.
[out] outBuf
Указатель на буфер символов, который получит закодированный код сопряжения, а также нулевой символ завершения. Предоставляемый буфер должен быть по крайней мере такого же размера, как и paringCodeLen + 1.
Возвращаемые значения
WEAVE_NO_ERROR
Если метод удался.
WEAVE_ERROR_INVALID_ARGUMENT
Если paringCodeLen < 2 или предоставленное целочисленное значение не может быть закодировано количеством символов, указанным в параметреpairingCodeLen, минус 1 для контрольного символа.

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

Преобразуйте целое число в диапазоне 0..31 в соответствующий символ кода пары Weave.

Обратите внимание, что эта функция всегда выводит символы в верхнем регистре.

Подробности
Параметры
[in] val
Целочисленное значение, которое необходимо преобразовать.
Возврат
Символ кода сопряжения, соответствующий указанному целочисленному значению, или 0, если целочисленное значение выходит за пределы диапазона.

IsValidPairingCodeChar

bool IsValidPairingCodeChar(
  char ch
)

Возвращает true, если предоставленный символ является допустимым символом кода сопряжения Weave.

Обратите внимание, что эта функция нечувствительна к регистру.

Подробности
Параметры
[in] ch
Персонаж, подлежащий тестированию.
Возврат
Истинно, если предоставленный символ является допустимым символом кода сопряжения Weave.

КриптонитDeviceIdToPairingCode

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

Генерирует строку кода сопряжения Kryptonite с учетом идентификатора устройства Kryptonite.

Подробности
Параметры
[in] deviceId
Идентификатор криптонитового устройства.
[out] pairingCodeBuf
Указатель на буфер, который получит код спаривания Kryptonite, символ завершения NULL. Поставляемый буфер должен иметь размер не менее 7 символов.
[in] pairingCodeBufSize
Размер буфера, на который указывает спариваниеCodeBuf.
Возвращаемые значения
WEAVE_NO_ERROR
Если метод удался.
WEAVE_ERROR_INVALID_ARGUMENT
Если предоставленный идентификатор устройства выходит за пределы диапазона или предоставленный буфер слишком мал.

КриптонитPairingCodeToDeviceId

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

Возвращает идентификатор устройства, закодированный в коде сопряжения Kryptonite.

Подробности
Параметры
[in] pairingCode
Строка с нулевым завершением, содержащая код сопряжения криптонита.
[out] deviceId
Ссылка на целое число, которое получает декодированный идентификатор устройства Kryptonite.
Возвращаемые значения
WEAVE_NO_ERROR
Если метод удался.
WEAVE_ERROR_INVALID_ARGUMENT
Если длина предоставленного кода сопряжения неверна, или если код сопряжения содержит недопустимые символы, или если начальные символы кода сопряжения не соответствуют контрольному символу.

Невисдевицеидтопайрингкод

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

Генерирует строку кода сопряжения Невиса с учетом идентификатора устройства Невис.

Подробности
Параметры
[in] deviceId
Идентификатор устройства Невиса.
[out] pairingCodeBuf
Указатель на буфер, который получит код сопряжения Невиса, нулевой символ завершения. Поставляемый буфер должен иметь размер не менее 7 символов.
[in] pairingCodeBufSize
Размер буфера, на который указывает спариваниеCodeBuf.
Возвращаемые значения
WEAVE_NO_ERROR
Если метод удался.
WEAVE_ERROR_INVALID_ARGUMENT
Если предоставленный идентификатор устройства выходит за пределы диапазона или предоставленный буфер слишком мал.

Невиспайрингкодетодевицеид

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

Возвращает идентификатор устройства, закодированный в коде сопряжения Невиса.

Подробности
Параметры
[in] pairingCode
Строка с нулевым завершением, содержащая код сопряжения Невиса.
[out] deviceId
Ссылка на целое число, которое получает декодированный идентификатор устройства Невис.
Возвращаемые значения
WEAVE_NO_ERROR
Если метод удался.
WEAVE_ERROR_INVALID_ARGUMENT
Если длина предоставленного кода сопряжения неверна, или если код сопряжения содержит недопустимые символы, или если начальные символы кода сопряжения не соответствуют контрольному символу.

Нормализепайрингкод

void NormalizePairingCode(
  char *pairingCode,
  size_t & pairingCodeLen
)

Нормализуйте символы в строке кода пары.

Эта функция преобразует все буквенные символы в верхний регистр, сопоставляет недопустимые символы «I», «O», «Q» и «Z» с «1», «0», «0» и «2» соответственно и удаляет все остальные символы кода, не образующие пары, из данной строки.

Входная строка не обязательно должна заканчиваться NULL, однако, если это так, выходная строка также будет завершаться NULL.

Подробности
Параметры
[in,out] pairingCode
На входе строка кода сопряжения, подлежащая нормализации. На выходе нормализованная строка. Строка не обязательно должна завершаться NULL.
[in,out] pairingCodeLen
При вводе длина строки кода сопряжения, не включая NULL-символ-терминатор. На выходе длина нормализованной строки.

PairingCodeCharToInt

int PairingCodeCharToInt(
  char ch
)

Преобразуйте символ кода сопряжения Weave в целое значение в диапазоне 0..31.

Обратите внимание, что эта функция нечувствительна к регистру.

Подробности
Параметры
[in] ch
Символ, который нужно преобразовать.
Возврат
Целочисленное значение, соответствующее указанному символу кода сопряжения, или -1, если ch не является допустимым символом.

Сопряжениекодетоинтт

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

Декодируйте код сопряжения Weave как целочисленное значение.

Функция анализирует начальные символы строки кода пары Weave как число с обратным порядком байтов по основанию 32 и возвращает результирующее значение в виде целого числа без знака. Входная строка может иметь любую длину >= 2, если декодированное целое число помещается в uint64_t.

Попытки проверить проверочный символ Верхоффа не предпринимаются (см. VerifyPairingCode()).

Подробности
Параметры
[in] pairingCode
Строка кода сопряжения, подлежащая декодированию. Эта строка не обязательно должна заканчиваться NULL.
[in] pairingCodeLen
Длина строки кода сопряжения, не включая NULL-символ завершения. Должно быть >= 2.
[out] val
Декодированное целочисленное значение.
Возвращаемые значения
WEAVE_NO_ERROR
Если метод удался.
WEAVE_ERROR_INVALID_ARGUMENT
Если paringCodeLen < 2, или предоставленная строка кода сопряжения содержит недопустимый символ, или целочисленное значение, закодированное в коде сопряжения, превышает максимальное значение, которое может быть сохранено в uint64_t.

Проверить код сопряжения

WEAVE_ERROR VerifyPairingCode(
  const char *pairingCode,
  size_t pairingCodeLen
)

Проверьте код сопряжения Weave по его контрольному символу.

Подробности
Параметры
[in] pairingCode
Строка кода сопряжения, которую необходимо проверить. Эта строка не обязательно должна заканчиваться NULL.
[in] pairingCodeLen
Длина строки кода сопряжения, не включая NULL-символ завершения. Должно быть >= 2.
Возвращаемые значения
WEAVE_NO_ERROR
Если метод удался.
WEAVE_ERROR_INVALID_ARGUMENT
Если paringCodeLen < 2 или начальные символы кода сопряжения не соответствуют значению контрольного символа.