nl::PairingCode

Ringkasan

Enumerasi

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

Fungsi

GeneratePairingCode(uint8_t pairingCodeLen, char *outBuf)
Buat kode penyambungan acak.
IntToPairingCode(uint64_t val, uint8_t pairingCodeLen, char *outBuf)
Mengenkode nilai bilangan bulat sebagai kode penyambungan Weave.
IntToPairingCodeChar(int val)
char
Konversi nilai integer dalam rentang 0..31 ke karakter kode pasangan Weave yang sesuai.
IsValidPairingCodeChar(char ch)
bool
Menampilkan true (benar) jika karakter yang disediakan adalah karakter kode penyambungan Weave yang valid.
KryptoniteDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Menghasilkan string kode penyambungan Kryptonite dengan ID perangkat Kryptonite.
KryptonitePairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Menampilkan ID perangkat yang dienkode dalam kode penyambungan Kryptonite.
NevisDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Menghasilkan string kode penyambungan Nevis dengan ID perangkat Nevis.
NevisPairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Menampilkan ID perangkat yang dienkode dalam kode penyambungan Nevis.
NormalizePairingCode(char *pairingCode, size_t & pairingCodeLen)
void
Normalkan karakter dalam string kode penyandingan.
PairingCodeCharToInt(char ch)
int
Konversikan karakter kode pasangan Weave menjadi nilai integer dalam rentang 0..31.
PairingCodeToInt(const char *pairingCode, size_t pairingCodeLen, uint64_t & val)
Mendekode kode penyambungan Weave sebagai nilai bilangan bulat.
VerifyPairingCode(const char *pairingCode, size_t pairingCodeLen)
Verifikasi kode penyambungan Weave terhadap karakter centangnya.

Enumerasi

@353

 @353

@354

 @354

@355

 @355

@356

 @356
Properti
kBitsPerCharacter

Jumlah bit yang dienkode dalam satu karakter kode penyambungan.

kKryptonitePairingCodeLength

Panjang kode penyambungan untuk Kryptonite.

kPairingCodeLenMin

Panjang minimum kode penyambungan.

kStandardPairingCodeLength

Panjang kode penyambungan untuk sebagian besar produk Nest.

Fungsi

GeneratePairingCode

WEAVE_ERROR GeneratePairingCode(
  uint8_t pairingCodeLen,
  char *outBuf
)

Buat kode penyambungan acak.

Fungsi ini menghasilkan string kode penyambungan Weave acak dengan nilai length. yang ditentukan, yang dienkode sebagai angka big-endian, basis-32, ditambah karakter centang Verhoeff di akhir. String yang dihasilkan memiliki panjang tetap yang ditentukan oleh parameter pairCodeLen. String diberi padding di sebelah kiri dengan angka nol sesuai kebutuhan untuk memenuhi panjang ini.

Detail
Parameter
[in] pairingCodeLen
Panjang string kode penyandingan yang diinginkan, termasuk karakter centang di akhir. Harus >= 2.
[out] outBuf
Pointer ke buffering karakter yang akan menerima kode penyambungan yang dienkode, plus karakter terminator null. Buffering yang disediakan minimal harus sebesar pairCodeLen + 1.
Nilai Pengembalian
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_INVALID_ARGUMENT
Jika pairCodeLen adalah < 2 atau nilai integer yang diberikan tidak dapat dikodekan dalam jumlah karakter yang ditentukan oleh pairCodeLen, minus 1 untuk karakter centang.

IntToPairingCode

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

Mengenkode nilai bilangan bulat sebagai kode penyambungan Weave.

Fungsi ini menghasilkan string kode penyambungan Weave yang terdiri dari nilai bilangan bulat tanpa tanda yang disediakan, yang dienkode sebagai angka big-endian, basis-32, ditambah karakter pemeriksaan Verhoeff di akhir. String yang dihasilkan memiliki panjang tetap yang ditentukan oleh parameter pairCodeLen. String diberi padding di sebelah kiri dengan angka nol sesuai kebutuhan untuk memenuhi panjang ini.

Detail
Parameter
[in] val
Nilai yang akan dienkode.
[in] pairingCodeLen
Panjang yang diinginkan dari string kode penyambungan yang dienkode, termasuk karakter pemeriksaan di akhir. Harus >= 2.
[out] outBuf
Pointer ke buffering karakter yang akan menerima kode penyambungan yang dienkode, plus karakter terminator null. Buffering yang disediakan minimal harus sebesar pairCodeLen + 1.
Nilai Pengembalian
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_INVALID_ARGUMENT
Jika pairCodeLen adalah < 2 atau nilai integer yang diberikan tidak dapat dikodekan dalam jumlah karakter yang ditentukan oleh pairCodeLen, minus 1 untuk karakter centang.

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

Konversi nilai integer dalam rentang 0..31 ke karakter kode pasangan Weave yang sesuai.

Perhatikan bahwa fungsi ini selalu menghasilkan karakter huruf besar.

Detail
Parameter
[in] val
Nilai bilangan bulat yang akan dikonversi.
Hasil
Karakter kode pasangan yang sesuai dengan nilai bilangan bulat yang ditentukan, atau 0 jika nilai bilangan bulat di luar rentang.

IsValidPairingCodeChar

bool IsValidPairingCodeChar(
  char ch
)

Menampilkan true (benar) jika karakter yang disediakan adalah karakter kode penyambungan Weave yang valid.

Perhatikan bahwa fungsi ini tidak peka huruf besar/kecil.

Detail
Parameter
[in] ch
Karakter yang akan diuji.
Hasil
True jika karakter yang disediakan adalah karakter kode penyambungan Weave yang valid.

KryptoniteDeviceIdToPairingCode

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

Menghasilkan string kode penyambungan Kryptonite dengan ID perangkat Kryptonite.

Detail
Parameter
[in] deviceId
ID perangkat Kryptonite.
[out] pairingCodeBuf
Pointer ke buffer yang akan menerima kode penyambungan Kryptonite, karakter penghentian NULL. Buffer yang disediakan harus terdiri dari 7 karakter atau lebih.
[in] pairingCodeBufSize
Ukuran buffer yang ditunjuk oleh pasanganCodeBuf.
Nilai Pengembalian
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_INVALID_ARGUMENT
Jika ID perangkat yang diberikan di luar rentang, atau jika buffering yang diberikan terlalu kecil.

KryptonitePairingCodeToDeviceId

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

Menampilkan ID perangkat yang dienkode dalam kode penyambungan Kryptonite.

Detail
Parameter
[in] pairingCode
String yang dihentikan NULL yang berisi kode penyambungan Kryptonite.
[out] deviceId
Referensi ke bilangan bulat yang menerima ID perangkat Kryptonite yang didekode.
Nilai Pengembalian
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_INVALID_ARGUMENT
Jika panjang kode penyandingan yang diberikan salah, atau jika kode penyandingan berisi karakter yang tidak valid, atau jika karakter awal kode penyandingan tidak konsisten dengan karakter centang.

NevisDeviceIdToPairingCode

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

Menghasilkan string kode penyambungan Nevis dengan ID perangkat Nevis.

Detail
Parameter
[in] deviceId
ID perangkat Nevis.
[out] pairingCodeBuf
Pointer ke buffer yang akan menerima kode penyambungan Nevis, karakter penghentian NULL. Buffer yang disediakan harus terdiri dari 7 karakter atau lebih.
[in] pairingCodeBufSize
Ukuran buffer yang ditunjuk oleh pasanganCodeBuf.
Nilai Pengembalian
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_INVALID_ARGUMENT
Jika ID perangkat yang diberikan di luar rentang, atau jika buffering yang diberikan terlalu kecil.

NevisPairingCodeToDeviceId

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

Menampilkan ID perangkat yang dienkode dalam kode penyambungan Nevis.

Detail
Parameter
[in] pairingCode
String yang dihentikan NULL yang berisi kode penyambungan Nevis.
[out] deviceId
Referensi ke bilangan bulat yang menerima ID perangkat Nevis yang didekode.
Nilai Pengembalian
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_INVALID_ARGUMENT
Jika panjang kode penyandingan yang diberikan salah, atau jika kode penyandingan berisi karakter yang tidak valid, atau jika karakter awal kode penyandingan tidak konsisten dengan karakter centang.

NormalizePairingCode

void NormalizePairingCode(
  char *pairingCode,
  size_t & pairingCodeLen
)

Normalkan karakter dalam string kode penyandingan.

Fungsi ini mengonversi semua karakter alfabet menjadi huruf besar, memetakan karakter ilegal 'I', 'O', 'Q', dan 'Z' ke '1', '0', '0' dan '2', masing-masing, dan menghapus semua karakter kode yang tidak berpasangan lainnya dari string yang diberikan.

String input tidak harus dihentikan NULL, tetapi jika output-nya juga akan dihentikan NULL.

Detail
Parameter
[in,out] pairingCode
Saat input, string kode penyambungan akan dinormalisasi. Pada output, string yang dinormalisasi. String tidak perlu dihentikan NULL.
[in,out] pairingCodeLen
Pada input, panjang string kode penyambungan, tidak termasuk karakter terminator NULL. Pada output, panjang string yang dinormalisasi.

PairingCodeCharToInt

int PairingCodeCharToInt(
  char ch
)

Konversikan karakter kode pasangan Weave menjadi nilai integer dalam rentang 0..31.

Perhatikan bahwa fungsi ini tidak peka huruf besar/kecil.

Detail
Parameter
[in] ch
Karakter yang akan dikonversi.
Hasil
Nilai integer yang sesuai dengan karakter kode pasangan yang ditentukan, atau -1 jika ch bukan karakter yang valid.

PairingCodeToInt

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

Mendekode kode penyambungan Weave sebagai nilai bilangan bulat.

Fungsi ini mengurai karakter awal string kode pemasangan Weave sebagai angka big-endian, basis-32 dan menampilkan nilai yang dihasilkan sebagai bilangan bulat tanpa tanda tangan. String input bisa berapa pun panjangnya >= 2 selama bilangan bulat yang didekode cocok dalam uint64_t.

Tidak ada upaya yang dilakukan untuk memverifikasi karakter pemeriksaan Verhoeff (lihat VerifyPairingCode()).

Detail
Parameter
[in] pairingCode
String kode penyambungan yang akan didekode. String ini tidak perlu dihentikan NULL.
[in] pairingCodeLen
Panjang string kode penyambungan, tidak termasuk karakter terminator NULL. Harus >= 2.
[out] val
Nilai bilangan bulat yang didekode.
Nilai Pengembalian
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_INVALID_ARGUMENT
Jika pairCodeLen adalah < 2, atau string kode pasangan yang diberikan berisi karakter yang tidak valid, atau nilai bilangan bulat yang dienkode dalam kode penyambungan melebihi nilai maksimal yang dapat disimpan dalam uint64_t.

VerifyPairingCode

WEAVE_ERROR VerifyPairingCode(
  const char *pairingCode,
  size_t pairingCodeLen
)

Verifikasi kode penyambungan Weave terhadap karakter centangnya.

Detail
Parameter
[in] pairingCode
String kode penyambungan yang akan diperiksa. String ini tidak perlu dihentikan NULL.
[in] pairingCodeLen
Panjang string kode penyambungan, tidak termasuk karakter terminator NULL. Harus >= 2.
Nilai Pengembalian
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_INVALID_ARGUMENT
Jika pairCodeLen adalah < 2, atau karakter awal kode penyambungan tidak konsisten dengan nilai karakter check.