透過集合功能整理內容 你可以依據偏好儲存及分類內容。

nl::配對碼

總結

列舉

@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
如果提供的字元是有效的 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 配對碼字串,指定 Nevis 裝置 ID。
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 產品的配對碼長度。

函式

產生配對碼

WEAVE_ERROR GeneratePairingCode(
  uint8_t pairingCodeLen,
  char *outBuf
)

產生隨機配對碼。

此函數生成一個具有指定長度的隨機一個 Weave 成據代碼字符串。值,以大端序、Base-32 數字編碼,以及尾尾 Verhoeff 檢查字符。產生的字串具有配對 CodeLen 參數指定的固定長度。字串會在左側填充零,必要時可加上零。

詳細資料
參數
[in] pairingCodeLen
您要配對的配對碼字串長度,包括結尾的檢查字元。必須是 >= 2。
[out] outBuf
可接收編碼配對配對碼的字元緩衝區指標,以及一個沒有結束字元的字元。提供的緩衝區至少應與配對 CodeLen + 1 相同。
傳回值
WEAVE_NO_ERROR
如果方法成功執行。
WEAVE_ERROR_INVALID_ARGUMENT
如果配對 CodeLen 且 < 2 或提供的整數值不能由配對 CodeLen 指定的字元數目編碼,減去 1 代表檢查字元。

IntToPairingCode

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

將整數值編碼為 Weave 配對碼。

此函數生成一個 Weave 配體代碼字符串,由一個提供的一個未進的整數值,為一個大端序、Base-32 數字,以及一個尾尾 Verhoeff 檢查字符。產生的字串具有配對 CodeLen 參數指定的固定長度。字串會在左側填充零,必要時可加上零。

詳細資料
參數
[in] val
要編碼的值。
[in] pairingCodeLen
經過編碼的配對碼字串長度,包括結尾的檢查字元。必須是 >= 2。
[out] outBuf
可接收編碼配對配對碼的字元緩衝區指標,以及一個沒有結束字元的字元。提供的緩衝區至少應與配對 CodeLen + 1 相同。
傳回值
WEAVE_NO_ERROR
如果方法成功執行。
WEAVE_ERROR_INVALID_ARGUMENT
如果配對 CodeLen 且 < 2 或提供的整數值不能由配對 CodeLen 指定的字元數目編碼,減去 1 代表檢查字元。

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

將 0..31 範圍內的整數值轉換為對應的 Weave 配對碼字元。

請注意,此函式一律會產生大寫字母。

詳細資料
參數
[in] val
要轉換的整數值。
傳回
對應至指定整數值的配對碼字元;如果整數值超出範圍,則為 0。

是有效的配對碼表

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
由配對 Codef 指向的緩衝區大小。
傳回值
WEAVE_NO_ERROR
如果方法成功執行。
WEAVE_ERROR_INVALID_ARGUMENT
如果提供的裝置 ID 超出範圍,或者提供的緩衝區太小。

KryptonitePairingCodeToDeviceId

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

傳回以 Kryptonite 配對碼編碼的裝置 ID。

詳細資料
參數
[in] pairingCode
以 NULL 結尾的字串,其中含有 Kryptonite 配對碼。
[out] deviceId
參照接收已解碼之 Kryptonite 裝置 ID 的整數。
傳回值
WEAVE_NO_ERROR
如果方法成功執行。
WEAVE_ERROR_INVALID_ARGUMENT
如果提供的配對碼長度不正確、配對碼含有無效字元,或配對碼的初始字元與檢查字元不一致。

NevisDeviceIdToPairingCode

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

產生 Nevis 配對碼字串,指定 Nevis 裝置 ID。

詳細資料
參數
[in] deviceId
Nevis 裝置 ID。
[out] pairingCodeBuf
指向可接收 Nevis 配對碼的「緩衝」端點 (為 NULL 終止字元)。提供的緩衝區大小不得超過 7 個字元。
[in] pairingCodeBufSize
由配對 Codef 指向的緩衝區大小。
傳回值
WEAVE_NO_ERROR
如果方法成功執行。
WEAVE_ERROR_INVALID_ARGUMENT
如果提供的裝置 ID 超出範圍,或者提供的緩衝區太小。

NevisPairingCodeToDeviceId

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

傳回以 Nevis 配對碼編碼的裝置 ID。

詳細資料
參數
[in] pairingCode
以 NULL 結尾的字串,其中包含 Nevis 配對碼。
[out] deviceId
此整數參照可接收已解碼的 Nevis 裝置 ID。
傳回值
WEAVE_NO_ERROR
如果方法成功執行。
WEAVE_ERROR_INVALID_ARGUMENT
如果提供的配對碼長度不正確、配對碼含有無效字元,或配對碼的初始字元與檢查字元不一致。

正規化配對碼

void NormalizePairingCode(
  char *pairingCode,
  size_t & pairingCodeLen
)

將配對碼字串中的字元正規化。

This function converts all alphabetic characters to upper-case, maps the illegal characters 'I', 'O', 'Q' and 'Z' to '1', '0', '0' and '2', respectively, and removes all other non-pairing code characters from the given string.

輸入字串不一定要是 NULL 終止,但如果輸出是 NULL,系統也會終止 NULL。

詳細資料
參數
[in,out] pairingCode
輸入時,要正規化的配對碼字串。輸出時,正規化字串。字串不一定要是 NULL。
[in,out] pairingCodeLen
輸入時,配對碼字串的長度,不包含任何 NULL 結束字元。輸出時,正規化字串的長度。

配對碼 CharToIntt

int PairingCodeCharToInt(
  char ch
)

將 Weave 配對碼字元轉換成 0..31 範圍內的整數值。

請注意,此函式不區分大小寫。

詳細資料
參數
[in] ch
要轉換的字元。
傳回
對應至指定的配對碼字元的整數值;如果 ch 不是有效的字元,則傳回 -1。

配對配對服務條款

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

將 Weave 配對碼解碼為整數值。

此函式會將 Weave 配對碼字串的初始字元剖析為大基數、正數 32 位數,並傳回結果為無正負號的整數。解譯字串可以是任意長度 >= 2,前提是解碼的整數符合 uint64_t。

系統未嘗試驗證 Verhoeff 檢查字元 (請參閱 VerifyPairingCode())。

詳細資料
參數
[in] pairingCode
要解碼的配對碼字串。此字串不需要終止 NULL。
[in] pairingCodeLen
配對碼字串的長度,不包含任何 NULL 終止字元。必須是 >= 2。
[out] val
已解碼的整數值。
傳回值
WEAVE_NO_ERROR
如果方法成功執行。
WEAVE_ERROR_INVALID_ARGUMENT
如果配對 CodeLen 且 < 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
如果配對 CodeLen 為 < 2,或配對碼的初始字元與檢查字元的值不一致。