nl::PairingCode

요약

열거

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

함수

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
제공된 문자가 유효한 Weave 페어링 코드 문자이면 true를 반환합니다.
KryptoniteDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Kryptonite 기기 ID가 지정된 Kryptonite 페어링 코드 문자열을 생성합니다.
KryptonitePairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Kryptonite 페어링 코드로 인코딩된 기기 ID를 반환합니다.
NevisDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Nevis 기기 ID가 지정된 Nevis 페어링 코드 문자열을 생성합니다.
NevisPairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Nevis 페어링 코드로 인코딩된 기기 ID를 반환합니다.
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

Kryptonite의 페어링 코드 길이

kPairingCodeLenMin

페어링 코드의 최소 길이

kStandardPairingCodeLength

대부분의 Nest 제품의 페어링 코드 길이

함수

GeneratePairingCode

WEAVE_ERROR GeneratePairingCode(
  uint8_t pairingCodeLen,
  char *outBuf
)

임의의 페어링 코드를 생성합니다.

이 함수는 지정된 길이의 임의의 Weave 페어링 코드 문자열을 생성합니다. 값(big-endian, base-32 숫자 및 후행 Verhoeff 검사 문자)으로 인코딩되어 있습니다. 생성된 문자열은 matchingCodeLen 매개변수로 지정된 고정된 길이를 갖습니다. 이 길이를 충족하기 위해 필요에 따라 문자열이 왼쪽에 0으로 패딩됩니다.

세부정보
매개변수
[in] pairingCodeLen
후행 확인 문자를 포함하여 원하는 페어링 코드 문자열 길이입니다. 2 이상이어야 합니다.
[out] outBuf
인코딩된 페어링 코드와 null 종결자 문자를 수신할 문자 버퍼에 대한 포인터입니다. 제공된 버퍼는 최소한pairCodeLen + 1 이상이어야 합니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우입니다.
WEAVE_ERROR_INVALID_ARGUMENT
페어링CodeLen이 <인 경우 2 또는 제공된 정수 값은pairCodeLen에서 지정한 문자 수(체크 문자의 경우 1을 뺀 수)로 인코딩할 수 없습니다.

IntToPairingCode

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

정수 값을 Weave 페어링 코드로 인코딩합니다.

이 함수는 제공된 부호 없는 정수 값(big-endian, base-32 숫자)과 후행 Verhoeff 검사 문자로 구성된 Weave 페어링 코드 문자열을 생성합니다. 생성된 문자열은 matchingCodeLen 매개변수로 지정된 고정된 길이를 갖습니다. 이 길이를 충족하기 위해 필요에 따라 문자열이 왼쪽에 0으로 패딩됩니다.

세부정보
매개변수
[in] val
인코딩할 값입니다.
[in] pairingCodeLen
후행 검사 문자를 포함하여 인코딩된 페어링 코드 문자열의 원하는 길이입니다. 2 이상이어야 합니다.
[out] outBuf
인코딩된 페어링 코드와 null 종결자 문자를 수신할 문자 버퍼에 대한 포인터입니다. 제공된 버퍼는 최소한pairCodeLen + 1 이상이어야 합니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우입니다.
WEAVE_ERROR_INVALID_ARGUMENT
페어링CodeLen이 <인 경우 2 또는 제공된 정수 값을pairCodeLen에서 지정한 문자 수(확인 문자의 경우 1을 뺀 수)로 인코딩할 수 없습니다.

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

0..31 범위의 정수 값을 해당하는 Weave 페어링 코드 문자로 변환합니다.

이 함수는 항상 대문자를 생성합니다.

세부정보
매개변수
[in] val
변환할 정수 값입니다.
반환
지정된 정수 값에 해당하는 페어링 코드 문자 또는 정수 값이 범위를 벗어날 경우 0입니다.

IsValidPairingCodeChar

bool IsValidPairingCodeChar(
  char ch
)

제공된 문자가 유효한 Weave 페어링 코드 문자이면 true를 반환합니다.

이 함수는 대소문자를 구분하지 않습니다.

세부정보
매개변수
[in] ch
테스트할 문자입니다.
반환
제공된 문자가 유효한 Weave 페어링 코드 문자이면 true입니다.

KryptoniteDeviceIdToPairingCode

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

Kryptonite 기기 ID가 지정된 Kryptonite 페어링 코드 문자열을 생성합니다.

세부정보
매개변수
[in] deviceId
Kryptonite 기기 ID입니다.
[out] pairingCodeBuf
Kryptonite 페어링 코드, NULL 종료 문자를 수신할 버퍼에 대한 포인터입니다. 제공된 버퍼의 크기는 7자 이상이어야 합니다.
[in] pairingCodeBufSize
matchingCodeBuf가 가리키는 버퍼의 크기입니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우입니다.
WEAVE_ERROR_INVALID_ARGUMENT
제공된 기기 ID가 범위를 벗어났거나 제공된 버퍼가 너무 작은 경우

KryptonitePairingCodeToDeviceId

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

Kryptonite 페어링 코드로 인코딩된 기기 ID를 반환합니다.

세부정보
매개변수
[in] pairingCode
Kryptonite 페어링 코드를 포함하는 NULL로 끝나는 문자열입니다.
[out] deviceId
디코딩된 Kryptonite 기기 ID를 수신하는 정수에 대한 참조입니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우입니다.
WEAVE_ERROR_INVALID_ARGUMENT
제공된 페어링 코드의 길이가 올바르지 않거나 페어링 코드에 잘못된 문자가 포함되어 있거나 페어링 코드의 처음 문자가 확인 문자와 일치하지 않는 경우입니다.

NevisDeviceIdToPairingCode

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

Nevis 기기 ID가 지정된 Nevis 페어링 코드 문자열을 생성합니다.

세부정보
매개변수
[in] deviceId
Nevis 기기 ID입니다.
[out] pairingCodeBuf
Nevis 페어링 코드인 NULL 종료 문자를 수신할 버퍼에 대한 포인터입니다. 제공된 버퍼의 크기는 7자 이상이어야 합니다.
[in] pairingCodeBufSize
matchingCodeBuf가 가리키는 버퍼의 크기입니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우입니다.
WEAVE_ERROR_INVALID_ARGUMENT
제공된 기기 ID가 범위를 벗어났거나 제공된 버퍼가 너무 작은 경우

NevisPairingCodeToDeviceId

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

Nevis 페어링 코드로 인코딩된 기기 ID를 반환합니다.

세부정보
매개변수
[in] pairingCode
Nevis 페어링 코드를 포함하는 NULL로 끝나는 문자열입니다.
[out] deviceId
디코딩된 Nevis 기기 ID를 수신하는 정수에 대한 참조입니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우입니다.
WEAVE_ERROR_INVALID_ARGUMENT
제공된 페어링 코드의 길이가 올바르지 않거나 페어링 코드에 잘못된 문자가 포함되어 있거나 페어링 코드의 처음 문자가 확인 문자와 일치하지 않는 경우입니다.

NormalizePairingCode

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
변환할 문자입니다.
반환
지정된 페어링 코드 문자에 해당하는 정수 값이거나 ch가 유효한 문자가 아닌 경우 -1입니다.

PairingCodeToInt

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

Weave 페어링 코드를 정수 값으로 디코딩합니다.

이 함수는 Weave 페어링 코드 문자열의 초기 문자를 big-endian, base-32 숫자로 파싱하고, 결과 값을 부호 없는 정수로 반환합니다. 디코딩된 정수가 uint64_t 내에 들어가는 한 입력 문자열은 길이가 2 이상일 수 있습니다.

Verhoeff 검사 문자를 인증하려고 시도하지 않습니다 (VerifyPairingCode() 참조).

세부정보
매개변수
[in] pairingCode
디코딩할 페어링 코드 문자열입니다. 이 문자열은 NULL로 종료되지 않아도 됩니다.
[in] pairingCodeLen
페어링 코드 문자열의 길이로, NULL 종결자 문자를 포함하지 않습니다. 2 이상이어야 합니다.
[out] val
디코딩된 정수 값입니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우입니다.
WEAVE_ERROR_INVALID_ARGUMENT
페어링CodeLen이 <인 경우 또는 제공된 페어링 코드 문자열에 잘못된 문자가 포함되어 있거나 페어링 코드에 인코딩된 정수 값이 uint64_t에 저장할 수 있는 최댓값을 초과합니다.

VerifyPairingCode

WEAVE_ERROR VerifyPairingCode(
  const char *pairingCode,
  size_t pairingCodeLen
)

확인 문자에 대해 Weave 페어링 코드를 확인합니다.

세부정보
매개변수
[in] pairingCode
확인할 페어링 코드 문자열입니다. 이 문자열로 NULL로 종료될 필요는 없습니다.
[in] pairingCodeLen
페어링 코드 문자열의 길이로, NULL 종결자 문자를 포함하지 않습니다. 2 이상이어야 합니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우입니다.
WEAVE_ERROR_INVALID_ARGUMENT
페어링CodeLen이 <인 경우 또는 페어링 코드의 첫 번째 문자가 확인 문자의 값과 일치하지 않습니다.