nl::Weave::Profiles::DeviceDescription::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
รหัสผ้า Weave ของอุปกรณ์ (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-endian, เลขศูนย์ทั้งหมด = ไม่มี)
PrimaryWiFiMACAddress[6]
uint8_t
ที่อยู่ MAC สำหรับอินเทอร์เฟซ Wi-Fi หลัก (big-endian, เลขศูนย์ทั้งหมด = ไม่มี)
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 Descriptor
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
ตรวจสอบว่าบัฟเฟอร์ที่ระบุมีเฉพาะเลข 0 หรือไม่

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

@180

 @180

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

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

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

kMaxRendezvousWiFiESSID

ESSID ของ Wi-Fi สูงสุดสำหรับความยาวในการกลับมาโต้ตอบ

kMaxSerialNumberLength

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

kMaxSoftwareVersionLength

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

@181

 @181

แฟล็กฟีเจอร์บ่งบอกถึงความสามารถบางอย่างของอุปกรณ์

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

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

kFeature_LinePowered

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

@182

 @182

คำจำกัดความของช่องสำหรับแฟล็ก

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

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

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

วัน

uint8_t Day

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

DeviceFeatures

uint32_t DeviceFeatures

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

DeviceId

uint64_t DeviceId

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

FabricId

uint64_t FabricId

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

ธง

uint8_t Flags

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

ManufacturingDate

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

เดือน

uint8_t Month

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

PairingCode

char PairingCode[kMaxPairingCodeLength+1]

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

PairingCompatibilityVersionMajor

uint16_t PairingCompatibilityVersionMajor

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

PairingCompatibilityVersionMinor

uint16_t PairingCompatibilityVersionMinor

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

ที่อยู่ Primary802154MAC

uint8_t Primary802154MACAddress[8]

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

PrimaryWiFiMACAddress

uint8_t PrimaryWiFiMACAddress[6]

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

ProductId

uint16_t ProductId

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

ProductRevision

uint16_t ProductRevision

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

RendezvousWiFiESSID

char RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]

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

SerialNumber

char SerialNumber[kMaxSerialNumberLength+1]

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

SoftwareVersion

char SoftwareVersion[kMaxSoftwareVersionLength+1]

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

VendorId

uint16_t VendorId

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

ปี

uint16_t Year

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

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

ล้าง

void Clear(
  void
)

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

WeaveDeviceDescriptor

 WeaveDeviceDescriptor(
  void
)

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

Decode

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
การอ้างอิงออบเจ็กต์ Descriptor ของอุปกรณ์ที่จะป้อนข้อมูล
แสดงผลค่า
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
หากบัฟเฟอร์ที่ระบุไม่ถูกต้อง
WEAVE_NO_ERROR
ความสำเร็จ
other
รหัสข้อผิดพลาดอื่นๆ ของ Weave หรือรหัสข้อผิดพลาดเฉพาะแพลตฟอร์มซึ่งระบุว่าเกิดข้อผิดพลาดที่ทำให้ถอดรหัส TLV ไม่ได้

DecodeTLV

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

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

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

DecodeTLV

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

ถอดรหัสรายละเอียดอุปกรณ์โดยใช้ TLVReader เริ่มต้นที่ให้มา

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

DecodeText

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

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

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

EncodeTLV

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 ได้

EncodeTLV

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 ได้

EncodeText

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
)

ตรวจสอบว่าบัฟเฟอร์ที่ระบุมีเฉพาะเลข 0 หรือไม่

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