nl::Weave::โปรไฟล์::คําอธิบายอุปกรณ์::WeaveDeviceDescriptor

#include <src/lib/profiles/device-description/DeviceDescription.h>

มีข้อความอธิบายเกี่ยวกับอุปกรณ์ Weave

สรุป

เครื่องมือสร้างและตัวสร้าง

WeaveDeviceDescriptor(void)

ประเภทสาธารณะ

@180{
  kMaxSerialNumberLength = 32,
  kMaxPairingCodeLength = 16,
  kMaxRendezvousWiFiESSID = 32,
  kMaxSoftwareVersionLength = WEAVE_CONFIG_MAX_SOFTWARE_VERSION_LENGTH
}
enum
กําหนดความยาวสูงสุดของแอตทริบิวต์บางรายการ
@181{
  kFeature_HomeAlarmLinkCapable = 0x00000001,
  kFeature_LinePowered = 0x00000002
}
enum
การติดธงฟีเจอร์ระบุความสามารถเฉพาะของอุปกรณ์
@182{
  kFlag_IsRendezvousWiFiESSIDSuffix = 0x01
}
enum
ช่องคําจํากัดความสถานะ

แอตทริบิวต์สาธารณะ

Day
uint8_t
วันที่ผลิตอุปกรณ์ (0 = ไม่มี)
DeviceFeatures
uint32_t
ช่องบิตที่แสดงการรองรับฟีเจอร์ของอุปกรณ์ที่เจาะจง
DeviceId
uint64_t
รหัสอุปกรณ์ Weave (0 = ไม่มี)
FabricId
uint64_t
รหัสของผ้าสานที่มีอุปกรณ์อยู่ (0 = ไม่มี)
Flags
uint8_t
ช่องบิตที่มีข้อมูลเพิ่มเติมเกี่ยวกับอุปกรณ์
ManufacturingDate
struct nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::@183
Month
uint8_t
เดือนที่ผลิตอุปกรณ์ (1 = มกราคม)
PairingCode[kMaxPairingCodeLength+1]
char
รหัสการจับคู่อุปกรณ์ (สิ้นสุด NUL ความยาว 0 = ไม่มี)
PairingCompatibilityVersionMajor
uint16_t
เวอร์ชันที่เข้ากันได้ของการจับคู่อุปกรณ์หลัก
PairingCompatibilityVersionMinor
uint16_t
เวอร์ชันเล็กน้อยของการจับคู่ซอฟต์แวร์กับอุปกรณ์
Primary802154MACAddress[8]
uint8_t
ที่อยู่ MAC สําหรับอินเทอร์เฟซหลัก 802.15.4 (big-end, เลขศูนย์ทั้งหมด = ไม่มี)
PrimaryWiFiMACAddress[6]
uint8_t
ที่อยู่ MAC สําหรับอินเทอร์เฟซ Wi-Fi หลัก (big-end, เลขศูนย์ทั้งหมด = ไม่มี)
ProductId
uint16_t
รหัสผลิตภัณฑ์ของอุปกรณ์ (0 = ไม่มี)
ProductRevision
uint16_t
การแก้ไขผลิตภัณฑ์อุปกรณ์ (0 = ไม่มี)
RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]
char
ESSID สําหรับเครือข่ายเครือข่ายคําขอ Wi-Fi ของอุปกรณ์ (สิ้นสุด NUL, ความยาว 0 = ไม่มี)
SerialNumber[kMaxSerialNumberLength+1]
char
หมายเลขซีเรียลของอุปกรณ์ (สิ้นสุด NUL, ความยาว 0 = ไม่มี)
SoftwareVersion[kMaxSoftwareVersionLength+1]
char
เวอร์ชันซอฟต์แวร์ที่ใช้งานอยู่ (สิ้นสุด NUL ความยาว 0 = ไม่มี)
VendorId
uint16_t
รหัสผู้ให้บริการอุปกรณ์ (0 = ไม่มี)
Year
uint16_t
ปีที่ผลิตอุปกรณ์ (ช่วงที่ถูกต้องตั้งแต่ปี 2001-2099)

ฟังก์ชันสาธารณะ

Clear(void)
void
ล้างคําอธิบายอุปกรณ์

ฟังก์ชันสาธารณะแบบคงที่

Decode(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
ถอดรหัสเนื้อหาของบัฟเฟอร์ข้อมูลที่ระบุเป็นออบเจ็กต์ Weave Device Descriptor
DecodeTLV(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
ถอดรหัสเนื้อหาของบัฟเฟอร์ข้อมูล TLV ที่ระบุเป็นออบเจ็กต์ Weave Device Descriptor
DecodeTLV(nl::Weave::TLV::TLVReader & reader, WeaveDeviceDescriptor & outDesc)
ถอดรหัสคําอธิบายอุปกรณ์โดยใช้ TLVReader แบบเริ่มต้นที่มีให้
DecodeText(const char *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
ถอดรหัสเนื้อหาของบัฟเฟอร์ข้อมูลข้อความที่ให้ไว้ในออบเจ็กต์ตัวอธิบาย Weave Device
EncodeTLV(const WeaveDeviceDescriptor & desc, uint8_t *buf, uint32_t bufLen, uint32_t & outEncodedLen)
เข้ารหัสข้อบ่งชี้ของอุปกรณ์ที่ให้ไว้กับ Weave TLV ที่เขียนลงในบัฟเฟอร์ที่ระบุ
EncodeTLV(const WeaveDeviceDescriptor & desc, nl::Weave::TLV::TLVWriter & writer)
เข้ารหัสข้อบ่งชี้ของอุปกรณ์ที่ระบุเป็น Weave TLV ที่เขียนโดยใช้ออบเจ็กต์ TLVWriter เริ่มต้นที่ให้ไว้
EncodeText(const WeaveDeviceDescriptor & desc, char *buf, uint32_t bufLen, uint32_t & outEncodedLen)
เข้ารหัสข้อบ่งชี้ของอุปกรณ์ที่มีให้เป็นข้อความที่เขียนถึงบัฟเฟอร์ที่ระบุ
IsZeroBytes(const uint8_t *buf, uint32_t len)
bool
ตรวจสอบว่าบัฟเฟอร์ที่ระบุมีเลขศูนย์เท่านั้น

ประเภทสาธารณะ

@180

 @180

กําหนดความยาวสูงสุดของแอตทริบิวต์บางรายการ

พร็อพเพอร์ตี้
kMaxPairingCodeLength

ความยาวสูงสุดของรหัสการจับคู่

kMaxRendezvousWiFiESSID

Wi-Fi สูงสุด WiFi สําหรับความยาวของ Rendezvous

kMaxSerialNumberLength

ความยาวสูงสุดของหมายเลขซีเรียล

kMaxSoftwareVersionLength

ความยาวสูงสุดของเวอร์ชันซอฟต์แวร์

181

 @181

การติดธงฟีเจอร์ระบุความสามารถเฉพาะของอุปกรณ์

พร็อพเพอร์ตี้
kFeature_HomeAlarmLinkCapable

ระบุ Nest Protect ที่รองรับการเชื่อมต่อไปยังแผงสัญญาณเตือนของบ้าน

kFeature_LinePowered

ระบุอุปกรณ์ที่ใช้สายไฟฟ้า

@182

 @182

ช่องคําจํากัดความสถานะ

พร็อพเพอร์ตี้
kFlag_IsRendezvousWiFiESSIDSuffix

ระบุว่าค่า RendezvousWiFiESSID เป็นสตริงคําต่อท้ายที่ปรากฏที่จุดสิ้นสุดของ ESSID ของเครือข่ายคําขอสัญญาณ Wi-Fi ของอุปกรณ์

แอตทริบิวต์สาธารณะ

วัน

uint8_t Day

วันที่ผลิตอุปกรณ์ (0 = ไม่มี)

ฟีเจอร์ของอุปกรณ์

uint32_t DeviceFeatures

ช่องบิตที่แสดงการรองรับฟีเจอร์ของอุปกรณ์ที่เจาะจง

รหัสอุปกรณ์

uint64_t DeviceId

รหัสอุปกรณ์ Weave (0 = ไม่มี)

รหัสผ้า

uint64_t FabricId

รหัสของผ้าสานที่มีอุปกรณ์อยู่ (0 = ไม่มี)

ธง

uint8_t Flags

ช่องบิตที่มีข้อมูลเพิ่มเติมเกี่ยวกับอุปกรณ์

วันที่ผลิต

struct nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::@183 ManufacturingDate

เดือน

uint8_t Month

เดือนที่ผลิตอุปกรณ์ (1 = มกราคม)

รหัสการจับคู่

char PairingCode[kMaxPairingCodeLength+1]

รหัสการจับคู่อุปกรณ์ (สิ้นสุด NUL ความยาว 0 = ไม่มี)

การจับคู่ความเข้ากันได้กับเวอร์ชันหลัก

uint16_t PairingCompatibilityVersionMajor

เวอร์ชันที่เข้ากันได้ของการจับคู่อุปกรณ์หลัก

การจับคู่ความเข้ากันได้กับเวอร์ชันต่ําสุด

uint16_t PairingCompatibilityVersionMinor

เวอร์ชันเล็กน้อยของการจับคู่ซอฟต์แวร์กับอุปกรณ์

ที่อยู่หลัก 802154MAC

uint8_t Primary802154MACAddress[8]

ที่อยู่ MAC สําหรับอินเทอร์เฟซหลัก 802.15.4 (big-end, เลขศูนย์ทั้งหมด = ไม่มี)

Wi-Fiที่อยู่หลัก

uint8_t PrimaryWiFiMACAddress[6]

ที่อยู่ MAC สําหรับอินเทอร์เฟซ Wi-Fi หลัก (big-end, เลขศูนย์ทั้งหมด = ไม่มี)

รหัสผลิตภัณฑ์

uint16_t ProductId

รหัสผลิตภัณฑ์ของอุปกรณ์ (0 = ไม่มี)

การแก้ไขผลิตภัณฑ์

uint16_t ProductRevision

การแก้ไขผลิตภัณฑ์อุปกรณ์ (0 = ไม่มี)

RendezvousWiFiESSID

char RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]

ESSID สําหรับเครือข่ายเครือข่ายคําขอ Wi-Fi ของอุปกรณ์ (สิ้นสุด NUL, ความยาว 0 = ไม่มี)

หมายเลขซีเรียล

char SerialNumber[kMaxSerialNumberLength+1]

หมายเลขซีเรียลของอุปกรณ์ (สิ้นสุด NUL, ความยาว 0 = ไม่มี)

เวอร์ชันของซอฟต์แวร์

char SoftwareVersion[kMaxSoftwareVersionLength+1]

เวอร์ชันซอฟต์แวร์ที่ใช้งานอยู่ (สิ้นสุด NUL ความยาว 0 = ไม่มี)

รหัสผู้ให้บริการ

uint16_t VendorId

รหัสผู้ให้บริการอุปกรณ์ (0 = ไม่มี)

ปี

uint16_t Year

ปีที่ผลิตอุปกรณ์ (ช่วงที่ถูกต้องตั้งแต่ปี 2001-2099)

ฟังก์ชันสาธารณะ

ล้าง

void Clear(
  void
)

ล้างคําอธิบายอุปกรณ์

WeaveDeviceDescriptor

 WeaveDeviceDescriptor(
  void
)

ฟังก์ชันสาธารณะแบบคงที่

ถอดรหัส

WEAVE_ERROR Decode(
  const uint8_t *data,
  uint32_t dataLen,
  WeaveDeviceDescriptor & outDesc
)

ถอดรหัสเนื้อหาของบัฟเฟอร์ข้อมูลที่ระบุเป็นออบเจ็กต์ Weave Device Descriptor

รายละเอียด
พารามิเตอร์
[in] data
ตัวชี้ไปยังบัฟเฟอร์ที่มีข้อความที่เข้ารหัสหรือ Weave Device Descriptor ที่เข้ารหัส TLV
[in] dataLen
ความยาวของบัฟเฟอร์ที่ระบุ
[out] outDesc
การอ้างอิงถึงออบเจ็กต์ ข้อบ่งชี้อุปกรณ์ที่จะเติมข้อมูล
แสดงผลค่า
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
หากบัฟเฟอร์ที่ระบุไม่ถูกต้อง
WEAVE_NO_ERROR
สําเร็จแล้ว
other
รหัสข้อผิดพลาดอื่นๆ ของ Weave หรือแพลตฟอร์มซึ่งระบุว่าเกิดข้อผิดพลาดที่ทําให้ไม่สามารถถอดรหัส TLV

ถอดรหัสTLV

WEAVE_ERROR DecodeTLV(
  const uint8_t *data,
  uint32_t dataLen,
  WeaveDeviceDescriptor & outDesc
)

ถอดรหัสเนื้อหาของบัฟเฟอร์ข้อมูล TLV ที่ระบุเป็นออบเจ็กต์ Weave Device Descriptor

รายละเอียด
พารามิเตอร์
[in] data
ตัวชี้ไปยังบัฟเฟอร์ที่มีข้อมูล Deave Device Descriptor ที่เข้ารหัสข้อความ
[in] dataLen
ความยาวของบัฟเฟอร์ที่ระบุ
[out] outDesc
การอ้างอิงถึงออบเจ็กต์ ข้อบ่งชี้อุปกรณ์ที่จะเติมข้อมูล
แสดงผลค่า
WEAVE_ERROR_WRONG_TLV_TYPE
หากนี่ไม่ใช่รายละเอียดอุปกรณ์ TLV
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
หากพบข้อมูล TLV เพิ่มเติมหลังจากคําอธิบายอุปกรณ์
WEAVE_NO_ERROR
สําเร็จแล้ว
other
รหัสข้อผิดพลาดอื่นๆ ของ Weave หรือแพลตฟอร์มที่บ่งบอกว่าเกิดข้อผิดพลาดที่ทําให้ไม่สามารถเข้ารหัส TLV

ถอดรหัสTLV

WEAVE_ERROR DecodeTLV(
  nl::Weave::TLV::TLVReader & reader,
  WeaveDeviceDescriptor & outDesc
)

ถอดรหัสคําอธิบายอุปกรณ์โดยใช้ TLVReader แบบเริ่มต้นที่มีให้

รายละเอียด
พารามิเตอร์
[in] reader
การอ้างอิงไปยัง TLVReader ที่เริ่มต้นไว้ล่วงหน้า
[out] outDesc
การอ้างอิงถึงออบเจ็กต์ ข้อบ่งชี้อุปกรณ์ที่จะเติมข้อมูล
แสดงผลค่า
WEAVE_ERROR_INVALID_TLV_ELEMENT
หากพบข้อมูลคําอธิบายอุปกรณ์ที่ไม่ถูกต้องในข้อมูล TLV
WEAVE_NO_ERROR
สําเร็จแล้ว
other
รหัสข้อผิดพลาดอื่นๆ ของ Weave หรือแพลตฟอร์มที่บ่งบอกว่าเกิดข้อผิดพลาดที่ทําให้ถอดรหัส TLV ไม่ได้

ถอดรหัสข้อความ

WEAVE_ERROR DecodeText(
  const char *data,
  uint32_t dataLen,
  WeaveDeviceDescriptor & outDesc
)

ถอดรหัสเนื้อหาของบัฟเฟอร์ข้อมูลข้อความที่ให้ไว้ในออบเจ็กต์ตัวอธิบาย Weave Device

รายละเอียด
พารามิเตอร์
[in] data
ตัวชี้ไปยังบัฟเฟอร์ที่มีข้อมูล Deave Device Descriptor ที่เข้ารหัสข้อความ
[in] dataLen
ความยาวของบัฟเฟอร์ที่ระบุ
[out] outDesc
การอ้างอิงถึงออบเจ็กต์ ข้อบ่งชี้อุปกรณ์ที่จะเติมข้อมูล
แสดงผลค่า
WEAVE_ERROR_UNSUPPORTED_DEVICE_DESCRIPTOR_VERSION
หากระบบไม่รองรับเวอร์ชันข้อมูลที่เข้ารหัส
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
หากข้อมูลที่เข้ารหัสมีรูปแบบที่ไม่ถูกต้อง
WEAVE_ERROR_INCORRECT_STATE
ในกรณีที่ตัวถอดรหัสพบสถานะที่ไม่สอดคล้องกัน
WEAVE_ERROR_BUFFER_TOO_SMALL
หากถึงส่วนท้ายของบัฟเฟอร์แล้วระหว่างการถอดรหัส
WEAVE_NO_ERROR
สําเร็จแล้ว

การเข้ารหัสTLV

WEAVE_ERROR EncodeTLV(
  const WeaveDeviceDescriptor & desc,
  uint8_t *buf,
  uint32_t bufLen,
  uint32_t & outEncodedLen
)

เข้ารหัสข้อบ่งชี้ของอุปกรณ์ที่ให้ไว้กับ Weave TLV ที่เขียนลงในบัฟเฟอร์ที่ระบุ

รายละเอียด
พารามิเตอร์
[in] desc
การอ้างอิงถึง Weave Device Descriptor เพื่อเข้ารหัส
[out] buf
ตัวชี้ไปยังบัฟเฟอร์ที่จะเขียนข้อความที่เข้ารหัส
[in] bufLen
ความยาวของบัฟเฟอร์ที่ระบุ
[out] outEncodedLen
การอ้างอิงตัวแปรความยาวที่จะเขียนทับด้วยจํานวนอักขระที่เขียนไปยังบัฟเฟอร์
แสดงผลค่า
WEAVE_NO_ERROR
สําเร็จแล้ว
other
รหัสข้อผิดพลาดอื่นๆ ของ Weave หรือแพลตฟอร์มที่บ่งบอกว่าเกิดข้อผิดพลาดที่ทําให้ไม่สามารถเข้ารหัส TLV

การเข้ารหัสTLV

WEAVE_ERROR EncodeTLV(
  const WeaveDeviceDescriptor & desc,
  nl::Weave::TLV::TLVWriter & writer
)

เข้ารหัสข้อบ่งชี้ของอุปกรณ์ที่ระบุเป็น Weave TLV ที่เขียนโดยใช้ออบเจ็กต์ TLVWriter เริ่มต้นที่ให้ไว้

ซึ่งใช้เพิ่มคําอธิบายอุปกรณ์ให้กับเอาต์พุต TLV ขนาดใหญ่

รายละเอียด
พารามิเตอร์
[in] desc
การอ้างอิงถึง Weave Device Descriptor เพื่อเข้ารหัส
[in] writer
การอ้างอิงไปยังออบเจ็กต์ TLVWriter ที่เริ่มต้นก่อนจะนําไปใช้
แสดงผลค่า
WEAVE_NO_ERROR
สําเร็จแล้ว
other
รหัสข้อผิดพลาดอื่นๆ ของ Weave หรือแพลตฟอร์มที่บ่งบอกว่าเกิดข้อผิดพลาดที่ทําให้ไม่สามารถเข้ารหัส TLV

เข้ารหัสข้อความ

WEAVE_ERROR EncodeText(
  const WeaveDeviceDescriptor & desc,
  char *buf,
  uint32_t bufLen,
  uint32_t & outEncodedLen
)

เข้ารหัสข้อบ่งชี้ของอุปกรณ์ที่มีให้เป็นข้อความที่เขียนถึงบัฟเฟอร์ที่ระบุ

รายละเอียด
พารามิเตอร์
[in] desc
การอ้างอิงถึง Weave Device Descriptor เพื่อเข้ารหัส
[out] buf
ตัวชี้ไปยังบัฟเฟอร์ที่จะเขียนข้อความที่เข้ารหัส
[in] bufLen
ความยาวของบัฟเฟอร์ที่ระบุ
[out] outEncodedLen
การอ้างอิงตัวแปรความยาวที่จะเขียนทับด้วยจํานวนอักขระที่เขียนไปยังบัฟเฟอร์
แสดงผลค่า
WEAVE_ERROR_BUFFER_TOO_SMALL
หากบัฟเฟอร์ที่ระบุมีขนาดเล็กเกินไปสําหรับคําอธิบายข้อความที่สร้างขึ้น
WEAVE_ERROR_INVALID_ARGUMENT
หากช่องตัวอธิบายไม่ถูกต้อง
WEAVE_NO_ERROR
สําเร็จแล้ว

IsZeroBytes

bool IsZeroBytes(
  const uint8_t *buf,
  uint32_t len
)

ตรวจสอบว่าบัฟเฟอร์ที่ระบุมีเลขศูนย์เท่านั้น

รายละเอียด
พารามิเตอร์
[in] buf
ตัวชี้ไปยังบัฟเฟอร์
[in] len
ความยาวของบัฟเฟอร์
แสดงผลค่า
TRUE
หากบัฟเฟอร์มีเฉพาะ 0
FALSE
หากบัฟเฟอร์มีค่าที่ไม่ใช่ 0