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
รหัสของผ้าถักที่เป็นของอุปกรณ์ (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 สูงสุดสำหรับความยาวเพื่อ Rendezvous

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

รหัสของผ้าถักที่เป็นของอุปกรณ์ (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

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

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

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
การอ้างอิงไปยังออบเจ็กต์ Device 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
การอ้างอิงไปยังออบเจ็กต์ Device Descriptor ที่จะเพิ่มค่า
ผลลัพธ์
WEAVE_ERROR_WRONG_TLV_TYPE
หากไม่ใช่ Device Description 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
การอ้างอิงไปยังออบเจ็กต์ Device 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
การอ้างอิงไปยังออบเจ็กต์ Device 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