nl:: PairingCode
สรุป
การแจงนับ |
|
---|---|
@353
|
enum |
@354
|
enum |
@355
|
enum |
@356{
|
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 ที่ถูกต้อง
|
KryptoniteDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
|
สร้างสตริงรหัสการจับคู่ Kryptonite ที่กำหนดรหัสอุปกรณ์ Kryptonite
|
KryptonitePairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
|
ส่งคืนรหัสอุปกรณ์ที่เข้ารหัสในรหัสการจับคู่ Kryptonite
|
NevisDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
|
สร้างสตริงรหัสการจับคู่ Nevis ที่กำหนดรหัสอุปกรณ์ Nevis
|
NevisPairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
|
ส่งคืนรหัสอุปกรณ์ที่เข้ารหัสเป็นรหัสการจับคู่ Nevis
|
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, ตัวเลขฐาน 32 และอักขระตรวจสอบ Verhoeff ต่อท้าย สตริงที่สร้างขึ้นมีความยาวคงที่ตามพารามิเตอร์การจับคู่CodeLen จะมีระยะห่างจากสตริงด้านซ้ายด้วยเลข 0 ตามความจำเป็นเพื่อให้เป็นไปตามความยาวนี้
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
||||
ผลลัพธ์ |
|
IntToPairingCode
WEAVE_ERROR IntToPairingCode( uint64_t val, uint8_t pairingCodeLen, char *outBuf )
เข้ารหัสค่าจำนวนเต็มเป็นรหัสการจับคู่ Weave
ฟังก์ชันจะสร้างสตริงรหัสการจับคู่ Weave ซึ่งประกอบด้วยค่าจำนวนเต็มที่ไม่มีเครื่องหมายที่ระบุ ซึ่งเข้ารหัสเป็นเลข Big-endian, เลขฐาน 32 และอักขระตรวจสอบ Verhoeff ต่อท้าย สตริงที่สร้างขึ้นมีความยาวคงที่ตามพารามิเตอร์การจับคู่CodeLen จะมีระยะห่างจากสตริงด้านซ้ายด้วยเลข 0 ตามความจำเป็นเพื่อให้เป็นไปตามความยาวนี้
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
ผลลัพธ์ |
|
IntToPairingCodeChar
char IntToPairingCodeChar( int val )
แปลงค่าจำนวนเต็มในช่วง 0..31 เป็นอักขระของรหัสการจับคู่ Weave ที่เกี่ยวข้อง
โปรดทราบว่าฟังก์ชันนี้จะสร้างอักขระตัวพิมพ์ใหญ่เสมอ
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การคืนสินค้า |
อักขระของรหัสการจับคู่ที่ตรงกับค่าจำนวนเต็มที่ระบุ หรือ 0 หากค่าจำนวนเต็มอยู่นอกช่วง
|
IsValidPairingCodeChar
bool IsValidPairingCodeChar( char ch )
แสดงผลเป็น "จริง" หากอักขระที่ระบุเป็นอักขระของรหัสการจับคู่ Weave ที่ถูกต้อง
โปรดทราบว่าฟังก์ชันนี้ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การคืนสินค้า |
เป็นจริงหากอักขระที่ระบุเป็นอักขระของรหัสการจับคู่ Weave ที่ถูกต้อง
|
KryptoniteDeviceIdToPairingCode
WEAVE_ERROR KryptoniteDeviceIdToPairingCode( uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize )
สร้างสตริงรหัสการจับคู่ Kryptonite ที่กำหนดรหัสอุปกรณ์ Kryptonite
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
ผลลัพธ์ |
|
KryptonitePairingCodeToDeviceId
WEAVE_ERROR KryptonitePairingCodeToDeviceId( const char *pairingCode, uint64_t & deviceId )
ส่งคืนรหัสอุปกรณ์ที่เข้ารหัสในรหัสการจับคู่ Kryptonite
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
||||
ผลลัพธ์ |
|
NevisDeviceIdToPairingCode
WEAVE_ERROR NevisDeviceIdToPairingCode( uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize )
สร้างสตริงรหัสการจับคู่ Nevis ที่กำหนดรหัสอุปกรณ์ Nevis
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
ผลลัพธ์ |
|
NevisPairingCodeToDeviceId
WEAVE_ERROR NevisPairingCodeToDeviceId( const char *pairingCode, uint64_t & deviceId )
ส่งคืนรหัสอุปกรณ์ที่เข้ารหัสเป็นรหัสการจับคู่ Nevis
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
||||
ผลลัพธ์ |
|
NormalizePairingCode
void NormalizePairingCode( char *pairingCode, size_t & pairingCodeLen )
ทำให้อักขระในสตริงรหัสการจับคู่เป็นปกติ
ฟังก์ชันนี้จะแปลงอักขระตัวอักษรทั้งหมดเป็นตัวพิมพ์ใหญ่ จับคู่อักขระที่ไม่ถูกต้อง "I", "O", "Q" และ "Z" ถึง "1", "0", "0" และ "2" ตามลำดับ และจะลบอักขระของโค้ดอื่นๆ ที่ไม่ใช่การจับคู่ออกจากสตริงที่ระบุ
สตริงอินพุตไม่จำเป็นต้องเป็นสถานะสิ้นสุด (NULL) แต่หากเป็นเอาต์พุตจะถูกสิ้นสุดด้วย NULL
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
PairingCodeCharToInt
int PairingCodeCharToInt( char ch )
แปลงอักขระของรหัสการจับคู่ Weave เป็นค่าจำนวนเต็มในช่วง 0..31
โปรดทราบว่าฟังก์ชันนี้ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การคืนสินค้า |
ค่าจำนวนเต็มที่ตรงกับอักขระของรหัสการจับคู่ที่ระบุ หรือ -1 หาก ch ไม่ใช่อักขระที่ถูกต้อง
|
PairingCodeToInt
WEAVE_ERROR PairingCodeToInt( const char *pairingCode, size_t pairingCodeLen, uint64_t & val )
ถอดรหัสรหัสการจับคู่ Weave เป็นค่าจำนวนเต็ม
ฟังก์ชันจะแยกวิเคราะห์อักขระเริ่มต้นของสตริงรหัสการจับคู่ Weave เป็นเลข Big-endian, เลขฐาน 32 และแสดงผลค่าผลลัพธ์เป็นจำนวนเต็มที่ไม่มีเครื่องหมาย สตริงอินพุตจะมีความยาว >= 2 เท่าใดก็ได้ ตราบใดที่จำนวนเต็มที่ถอดรหัสนั้นพอดีกับ uint64_t
ไม่มีการพยายามยืนยันอักขระตรวจสอบ Verhoeff (ดู VerifyPairingCode())
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
ผลลัพธ์ |
|
VerifyPairingCode
WEAVE_ERROR VerifyPairingCode( const char *pairingCode, size_t pairingCodeLen )
ตรวจสอบรหัสการจับคู่ Weave กับอักขระตรวจสอบ
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
||||
ผลลัพธ์ |
|