Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

nl :: Mã ghép nối

Tóm lược

Bảng kê

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

Chức năng

GeneratePairingCode (uint8_t pairingCodeLen, char *outBuf)
Tạo mã ghép nối ngẫu nhiên.
IntToPairingCode (uint64_t val, uint8_t pairingCodeLen, char *outBuf)
Mã hóa một giá trị số nguyên dưới dạng mã ghép nối Weave.
IntToPairingCodeChar (int val)
char
Chuyển đổi một giá trị số nguyên trong phạm vi 0..31 thành ký tự mã ghép nối Weave tương ứng của nó.
IsValidPairingCodeChar (char ch)
bool
Trả về true nếu ký tự được cung cấp là ký tự mã ghép nối Weave hợp lệ.
KryptoniteDeviceIdToPairingCode (uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Tạo chuỗi mã ghép nối Kryptonite được cung cấp id thiết bị Kryptonite.
KryptonitePairingCodeToDeviceId (const char *pairingCode, uint64_t & deviceId)
Trả về ID thiết bị được mã hóa bằng mã ghép nối Kryptonite.
NevisDeviceIdToPairingCode (uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Tạo chuỗi mã ghép nối Nevis được cung cấp id thiết bị Nevis.
NevisPairingCodeToDeviceId (const char *pairingCode, uint64_t & deviceId)
Trả về ID thiết bị được mã hóa trong mã ghép nối Nevis.
NormalizePairingCode (char *pairingCode, size_t & pairingCodeLen)
void
Chuẩn hóa các ký tự trong một chuỗi mã ghép nối.
PairingCodeCharToInt (char ch)
int
Chuyển đổi ký tự mã ghép nối Weave thành giá trị số nguyên trong phạm vi 0..31.
PairingCodeToInt (const char *pairingCode, size_t pairingCodeLen, uint64_t & val)
Giải mã mã ghép nối Weave dưới dạng giá trị số nguyên.
VerifyPairingCode (const char *pairingCode, size_t pairingCodeLen)
Xác minh mã ghép nối Weave với ký tự kiểm tra của nó.

Bảng kê

@ 353

 @353

@ 354

 @354

@ 355

 @355

@ 356

 @356
Tính chất
kBitsPerCharacter

Số bit được mã hóa trong một ký tự mã ghép nối duy nhất.

kKryptonitePairingCodeLength

Độ dài mã ghép nối cho Kryptonite.

kPairingCodeLenMin

Độ dài tối thiểu của mã ghép nối.

kStandardPairingCodeLength

Độ dài mã ghép nối cho hầu hết các sản phẩm Nest.

Chức năng

GeneratePairingCode

WEAVE_ERROR GeneratePairingCode(
  uint8_t pairingCodeLen,
  char *outBuf
)

Tạo mã ghép nối ngẫu nhiên.

Hàm tạo một chuỗi mã ghép nối Weave ngẫu nhiên với độ dài được chỉ định. giá trị, được mã hóa dưới dạng big-endian, cơ số 32, cộng với ký tự kiểm tra Verhoeff ở cuối. Chuỗi được tạo có độ dài cố định được chỉ định bởi tham số pairingCodeLen. Chuỗi được đệm ở bên trái bằng các số không khi cần thiết để đáp ứng độ dài này.

Chi tiết
Thông số
[in] pairingCodeLen
Độ dài mong muốn của chuỗi mã ghép nối, bao gồm cả ký tự kiểm tra ở cuối. Phải> = 2.
[out] outBuf
Một con trỏ đến bộ đệm ký tự sẽ nhận mã ghép nối được mã hóa, cộng với ký tự kết thúc rỗng. Bộ đệm được cung cấp ít nhất phải lớn bằng pairingCodeLen + 1.
Giá trị trả lại
WEAVE_NO_ERROR
Nếu phương pháp thành công.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu pairingCodeLen <2 hoặc giá trị số nguyên được cung cấp không thể được mã hóa bằng số ký tự được chỉ định bởi pairingCodeLen, trừ 1 cho ký tự kiểm tra.

IntToPairingCode

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

Mã hóa một giá trị số nguyên dưới dạng mã ghép nối Weave.

Hàm tạo chuỗi mã ghép nối Weave bao gồm một giá trị số nguyên không dấu được cung cấp, được mã hóa dưới dạng số cuối lớn, cơ số 32, cộng với ký tự kiểm tra Verhoeff ở cuối. Chuỗi được tạo có độ dài cố định được chỉ định bởi tham số pairingCodeLen. Chuỗi được đệm ở bên trái bằng các số không khi cần thiết để đáp ứng độ dài này.

Chi tiết
Thông số
[in] val
Giá trị được mã hóa.
[in] pairingCodeLen
Độ dài mong muốn của chuỗi mã ghép nối được mã hóa, bao gồm cả ký tự kiểm tra theo sau. Phải> = 2.
[out] outBuf
Một con trỏ đến bộ đệm ký tự sẽ nhận mã ghép nối được mã hóa, cộng với ký tự kết thúc rỗng. Bộ đệm được cung cấp ít nhất phải lớn bằng pairingCodeLen + 1.
Giá trị trả lại
WEAVE_NO_ERROR
Nếu phương pháp thành công.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu pairingCodeLen <2 hoặc giá trị số nguyên được cung cấp không thể được mã hóa bằng số ký tự được chỉ định bởi pairingCodeLen, trừ 1 cho ký tự kiểm tra.

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

Chuyển đổi một giá trị số nguyên trong phạm vi 0..31 thành ký tự mã ghép nối Weave tương ứng của nó.

Lưu ý rằng hàm này luôn tạo ra các ký tự viết hoa.

Chi tiết
Thông số
[in] val
Giá trị số nguyên được chuyển đổi.
Lợi nhuận
Ký tự mã ghép nối tương ứng với giá trị số nguyên được chỉ định hoặc 0 nếu giá trị số nguyên nằm ngoài phạm vi.

IsValidPairingCodeChar

bool IsValidPairingCodeChar(
  char ch
)

Trả về true nếu ký tự được cung cấp là ký tự mã ghép nối Weave hợp lệ.

Lưu ý rằng hàm này không phân biệt chữ hoa chữ thường.

Chi tiết
Thông số
[in] ch
Nhân vật được kiểm tra.
Lợi nhuận
Đúng nếu ký tự được cung cấp là ký tự mã ghép nối Weave hợp lệ.

KryptoniteDeviceIdToPairingCode

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

Tạo chuỗi mã ghép nối Kryptonite được cung cấp id thiết bị Kryptonite.

Chi tiết
Thông số
[in] deviceId
Id thiết bị Kryptonite.
[out] pairingCodeBuf
Một con trỏ tới bộ đệm sẽ nhận mã ghép nối Kryptonite, một ký tự kết thúc NULL. Bộ đệm được cung cấp phải có kích thước từ 7 ký tự trở lên.
[in] pairingCodeBufSize
Kích thước của bộ đệm được trỏ vào bởi pairingCodeBuf.
Giá trị trả lại
WEAVE_NO_ERROR
Nếu phương pháp thành công.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu id thiết bị được cung cấp nằm ngoài phạm vi hoặc nếu bộ đệm được cung cấp quá nhỏ.

KryptonitePairingCodeToDeviceId

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

Trả về ID thiết bị được mã hóa bằng mã ghép nối Kryptonite.

Chi tiết
Thông số
[in] pairingCode
Chuỗi được kết thúc bằng NULL chứa mã ghép nối Kryptonite.
[out] deviceId
Tham chiếu đến một số nguyên nhận id thiết bị Kryptonite được giải mã.
Giá trị trả lại
WEAVE_NO_ERROR
Nếu phương pháp thành công.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu độ dài của mã ghép nối được cung cấp không chính xác hoặc nếu mã ghép nối chứa các ký tự không hợp lệ hoặc nếu các ký tự đầu tiên của mã ghép nối không phù hợp với ký tự kiểm tra.

NevisDeviceIdToPairingCode

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

Tạo chuỗi mã ghép nối Nevis được cung cấp id thiết bị Nevis.

Chi tiết
Thông số
[in] deviceId
Id thiết bị Nevis.
[out] pairingCodeBuf
Một con trỏ tới bộ đệm sẽ nhận mã ghép nối Nevis, một ký tự kết thúc NULL. Bộ đệm được cung cấp phải có kích thước từ 7 ký tự trở lên.
[in] pairingCodeBufSize
Kích thước của bộ đệm được trỏ vào bởi pairingCodeBuf.
Giá trị trả lại
WEAVE_NO_ERROR
Nếu phương pháp thành công.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu id thiết bị được cung cấp nằm ngoài phạm vi hoặc nếu bộ đệm được cung cấp quá nhỏ.

NevisPairingCodeToDeviceId

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

Trả về ID thiết bị được mã hóa trong mã ghép nối Nevis.

Chi tiết
Thông số
[in] pairingCode
Một chuỗi được kết thúc bằng NULL chứa mã ghép nối Nevis.
[out] deviceId
Tham chiếu đến một số nguyên nhận id thiết bị Nevis được giải mã.
Giá trị trả lại
WEAVE_NO_ERROR
Nếu phương pháp thành công.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu độ dài của mã ghép nối được cung cấp không chính xác hoặc nếu mã ghép nối chứa các ký tự không hợp lệ, hoặc nếu các ký tự đầu tiên của mã ghép nối không phù hợp với ký tự kiểm tra.

NormalizePairingCode

void NormalizePairingCode(
  char *pairingCode,
  size_t & pairingCodeLen
)

Chuẩn hóa các ký tự trong một chuỗi mã ghép nối.

Hàm này chuyển đổi tất cả các ký tự chữ cái thành chữ hoa, ánh xạ các ký tự không hợp lệ 'I', 'O', 'Q' và 'Z' thành '1', '0', '0' và '2', và xóa tất cả các ký tự mã không ghép nối khác khỏi chuỗi đã cho.

Chuỗi đầu vào không bắt buộc phải kết thúc NULL, tuy nhiên nếu nó là chuỗi đầu ra cũng sẽ bị kết thúc NULL.

Chi tiết
Thông số
[in,out] pairingCode
Khi đầu vào, chuỗi mã ghép nối sẽ được chuẩn hóa. Trên đầu ra, Chuỗi chuẩn hóa. Không nhất thiết chuỗi phải được kết thúc NULL.
[in,out] pairingCodeLen
Ở đầu vào, độ dài của chuỗi mã ghép nối, không bao gồm bất kỳ ký tự kết thúc NULL nào. Trên đầu ra, độ dài của chuỗi chuẩn hóa.

PairingCodeCharToInt

int PairingCodeCharToInt(
  char ch
)

Chuyển đổi ký tự mã ghép nối Weave thành giá trị số nguyên trong phạm vi 0..31.

Lưu ý rằng hàm này không phân biệt chữ hoa chữ thường.

Chi tiết
Thông số
[in] ch
Nhân vật được chuyển đổi.
Lợi nhuận
Một giá trị số nguyên tương ứng với ký tự mã ghép nối đã chỉ định hoặc -1 nếu ch không phải là một ký tự hợp lệ.

PairingCodeToInt

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

Giải mã mã ghép nối Weave dưới dạng giá trị số nguyên.

Hàm phân tích cú pháp các ký tự ban đầu của một chuỗi mã ghép nối Weave dưới dạng số big-endian, cơ số 32 và trả về giá trị kết quả dưới dạng số nguyên không dấu. Chuỗi đầu vào có thể có độ dài> = 2 bất kỳ, miễn là số nguyên được giải mã nằm trong một uint64_t.

Không có nỗ lực nào được thực hiện để xác minh ký tự kiểm tra Verhoeff (xem VerifyPairingCode ()).

Chi tiết
Thông số
[in] pairingCode
Chuỗi mã ghép nối được giải mã. Chuỗi này không cần phải được kết thúc NULL.
[in] pairingCodeLen
Độ dài của chuỗi mã ghép nối, không bao gồm bất kỳ ký tự kết thúc NULL nào. Phải> = 2.
[out] val
Giá trị số nguyên đã giải mã.
Giá trị trả lại
WEAVE_NO_ERROR
Nếu phương pháp thành công.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu pairingCodeLen <2 hoặc chuỗi mã ghép nối được cung cấp chứa ký tự không hợp lệ hoặc giá trị số nguyên được mã hóa trong mã ghép nối vượt quá giá trị tối đa có thể được lưu trữ trong uint64_t.

VerifyPairingCode

WEAVE_ERROR VerifyPairingCode(
  const char *pairingCode,
  size_t pairingCodeLen
)

Xác minh mã ghép nối Weave với ký tự kiểm tra của nó.

Chi tiết
Thông số
[in] pairingCode
Chuỗi mã ghép nối được kiểm tra. Chuỗi này không cần phải được kết thúc NULL.
[in] pairingCodeLen
Độ dài của chuỗi mã ghép nối, không bao gồm bất kỳ ký tự kết thúc NULL nào. Phải> = 2.
Giá trị trả lại
WEAVE_NO_ERROR
Nếu phương pháp thành công.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu pairingCodeLen <2, hoặc các ký tự đầu tiên của mã ghép nối không phù hợp với giá trị của ký tự kiểm tra.