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 pemasangan acak.
IntToPairingCode(uint64_t val, uint8_t pairingCodeLen, char *outBuf)
Mengenkode nilai bilangan bulat sebagai kode penyambungan Weave.
IntToPairingCodeChar(int val)
char
Konversikan nilai bilangan bulat dalam rentang 0..31 ke karakter kode penyambungan Weave yang sesuai.
IsValidPairingCodeChar(char ch)
bool
Menampilkan true (benar) jika karakter yang diberikan adalah karakter kode penyambungan Weave yang valid.
KryptoniteDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Menghasilkan string kode penyambungan Kryptonite yang diberi 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 yang diberi 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
Menormalkan karakter dalam string kode penyambungan.
PairingCodeCharToInt(char ch)
int
Konversi karakter kode penyambungan Weave menjadi nilai bilangan bulat 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)
Memverifikasi 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

Menyambungkan panjang kode untuk Kryptonite.

kPairingCodeLenMin

Panjang minimum kode penghubung.

kStandardPairingCodeLength

Menyambungkan panjang kode untuk sebagian besar produk Nest.

Fungsi

GeneratePairingCode

WEAVE_ERROR GeneratePairingCode(
  uint8_t pairingCodeLen,
  char *outBuf
)

Buat kode pemasangan acak.

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

Detail
Parameter
[in] pairingCodeLen
Panjang string kode penyambungan yang diinginkan, termasuk karakter tanda centang di akhir. Harus >= 2.
[out] outBuf
Pointer ke buffer karakter yang akan menerima kode penyambungan yang dienkode, serta karakter terminator null. Buffer yang disediakan harus setidaknya sebesar pairingCodeLen + 1.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_INVALID_ARGUMENT
Jika pairingCodeLen < 2 atau nilai integer yang diberikan tidak dapat dienkode dalam jumlah karakter yang ditentukan oleh pairingCodeLen, dikurangi 1 untuk karakter periksa.

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 label yang diberikan, yang dienkode sebagai angka big-endian, base-32, serta karakter centang Verhoeff di akhir. String yang dihasilkan memiliki panjang tetap yang ditentukan oleh parameter pairingCodeLen. String di sebelah kiri diberi padding dengan angka nol sesuai kebutuhan untuk memenuhi panjang ini.

Detail
Parameter
[in] val
Nilai yang akan dienkode.
[in] pairingCodeLen
Panjang yang diinginkan string kode penyambungan yang dienkode, termasuk karakter centang di akhir. Harus >= 2.
[out] outBuf
Pointer ke buffer karakter yang akan menerima kode penyambungan yang dienkode, serta karakter terminator null. Buffer yang disediakan harus setidaknya sebesar pairingCodeLen + 1.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_INVALID_ARGUMENT
Jika pairingCodeLen < 2 atau nilai integer yang diberikan tidak dapat dienkode dalam jumlah karakter yang ditentukan oleh pairingCodeLen, dikurangi 1 untuk karakter periksa.

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

Konversikan nilai bilangan bulat dalam rentang 0..31 ke karakter kode penyambungan 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 pemasangan 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 diberikan 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
Benar jika karakter yang diberikan adalah karakter kode penyambungan Weave yang valid.

KryptoniteDeviceIdToPairingCode

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

Menghasilkan string kode penyambungan Kryptonite yang diberi ID perangkat Kryptonite.

Detail
Parameter
[in] deviceId
ID perangkat Kryptonite.
[out] pairingCodeBuf
Pointer ke {i>buffer<i} yang akan menerima kode pemasangan Kryptonite, karakter penghentian NULL. Buffer yang disediakan harus berukuran maksimal 7 karakter.
[in] pairingCodeBufSize
Ukuran buffer yang ditunjuk oleh pairingCodeBuf.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_INVALID_ARGUMENT
Jika ID perangkat yang diberikan berada di luar rentang, atau jika buffer yang disediakan 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 yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_INVALID_ARGUMENT
Jika panjang kode pemasangan yang diberikan salah, atau jika kode penyambungan berisi karakter yang tidak valid, atau jika karakter awal kode penyambungan tidak konsisten dengan karakter cek.

NevisDeviceIdToPairingCode

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

Menghasilkan string kode penyambungan Nevis yang diberi ID perangkat Nevis.

Detail
Parameter
[in] deviceId
ID perangkat Nevis.
[out] pairingCodeBuf
Pointer ke buffer yang akan menerima kode pemasangan Nevis, karakter penghentian NULL. Buffer yang disediakan harus berukuran maksimal 7 karakter.
[in] pairingCodeBufSize
Ukuran buffer yang ditunjuk oleh pairingCodeBuf.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_INVALID_ARGUMENT
Jika ID perangkat yang diberikan berada di luar rentang, atau jika buffer yang disediakan 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 yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_INVALID_ARGUMENT
Jika panjang kode pemasangan yang diberikan salah, atau jika kode penyambungan berisi karakter yang tidak valid, atau jika karakter awal kode penyambungan tidak konsisten dengan karakter cek.

NormalizePairingCode

void NormalizePairingCode(
  char *pairingCode,
  size_t & pairingCodeLen
)

Menormalkan karakter dalam string kode penyambungan.

Fungsi ini mengubah 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 perlu dihentikan NULL, namun jika itu adalah outputnya 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
)

Konversi karakter kode penyambungan Weave menjadi nilai bilangan bulat dalam rentang 0..31.

Perhatikan bahwa fungsi ini tidak peka huruf besar/kecil.

Detail
Parameter
[in] ch
Karakter yang akan dikonversi.
Hasil
Nilai bilangan bulat yang sesuai dengan karakter kode penyambungan 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 dari string kode penyambungan Weave sebagai angka big-endian, basis-32, dan menampilkan nilai yang dihasilkan sebagai bilangan bulat tanpa label. Panjang string input bisa berapa pun >= 2 asalkan bilangan bulat yang didekode pas 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 yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_INVALID_ARGUMENT
Jika pairingCodeLen < 2, atau string kode pemasangan yang diberikan berisi karakter yang tidak valid, atau nilai integer yang dienkode dalam kode pemasangan melebihi nilai maksimal yang dapat disimpan dalam uint64_t.

VerifyPairingCode

WEAVE_ERROR VerifyPairingCode(
  const char *pairingCode,
  size_t pairingCodeLen
)

Memverifikasi 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 yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_INVALID_ARGUMENT
Jika pairingCodeLen < 2, atau karakter awal kode berpasangan tidak konsisten dengan nilai karakter {i>check<i}.