Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

nl :: Dệt :: Hồ sơ :: Mô tả thiết bị:: WeaveDeviceDescriptor

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

Chứa thông tin mô tả về thiết bị Weave.

Tóm lược

Người xây dựng và Người phá hủy

WeaveDeviceDescriptor (void)

Các loại công khai

@180 {
kMaxSerialNumberLength = 32,
kMaxPairingCodeLength = 16,
kMaxRendezvousWiFiESSID = 32,
kMaxSoftwareVersionLength = WEAVE_CONFIG_MAX_SOFTWARE_VERSION_LENGTH
}
enum
Xác định độ dài tối đa của một số thuộc tính.
@181 {
kFeature_HomeAlarmLinkCapable = 0x00000001,
kFeature_LinePowered = 0x00000002
}
enum
Cờ tính năng cho biết khả năng cụ thể của thiết bị.
@182 {
kFlag_IsRendezvousWiFiESSIDSuffix = 0x01
}
enum
Định nghĩa trường cờ.

Thuộc tính công cộng

Day
uint8_t
Ngày sản xuất thiết bị (0 = không có)
DeviceFeatures
uint32_t
Trường bit cho biết hỗ trợ các tính năng cụ thể của thiết bị.
DeviceId
uint64_t
Dệt ID thiết bị (0 = không có)
FabricId
uint64_t
ID của vải dệt mà thiết bị thuộc về (0 = không có)
Flags
uint8_t
Trường bit chứa thông tin bổ sung về thiết bị.
ManufacturingDate
struct nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::@183
Month
uint8_t
Tháng sản xuất thiết bị (1 = tháng 1)
PairingCode [kMaxPairingCodeLength+1]
char
Mã ghép nối thiết bị (NUL đã kết thúc, 0 length = không có)
PairingCompatibilityVersionMajor
uint16_t
Phiên bản tương thích phần mềm ghép nối thiết bị chính.
PairingCompatibilityVersionMinor
uint16_t
Phiên bản tương thích phần mềm ghép nối thiết bị nhỏ.
Primary802154MACAddress [8]
uint8_t
Địa chỉ MAC cho giao diện 802.15.4 chính (big-endian, tất cả các số không = không có)
PrimaryWiFiMACAddress [6]
uint8_t
Địa chỉ MAC cho giao diện WiFi chính (big-endian, tất cả các số không = không có)
ProductId
uint16_t
Mã sản phẩm thiết bị (0 = không có)
ProductRevision
uint16_t
Bản sửa đổi sản phẩm thiết bị (0 = không có)
RendezvousWiFiESSID [kMaxRendezvousWiFiESSID+1]
char
ESSID cho mạng điểm hẹn WiFi của thiết bị (NUL đã kết thúc, độ dài 0 = không có)
SerialNumber [kMaxSerialNumberLength+1]
char
Số sê-ri của thiết bị (NUL kết thúc, 0 độ dài = không có)
SoftwareVersion [kMaxSoftwareVersionLength+1]
char
Phiên bản phần mềm hoạt động (NUL chấm dứt, 0 length = không có)
VendorId
uint16_t
Mã nhà cung cấp thiết bị (0 = không có)
Year
uint16_t
Năm sản xuất thiết bị (phạm vi hợp lệ 2001 - 2099)

Chức năng công cộng

Clear (void)
void
Xóa mô tả thiết bị.

Chức năng tĩnh công khai

Decode (const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Giải mã nội dung của bộ đệm dữ liệu được cung cấp thành đối tượng Bộ mô tả thiết bị dệt.
DecodeTLV (const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Giải mã nội dung của bộ đệm dữ liệu TLV được cung cấp thành đối tượng Bộ mô tả thiết bị dệt.
DecodeTLV (nl::Weave::TLV::TLVReader & reader, WeaveDeviceDescriptor & outDesc)
Giải mã Mô tả thiết bị bằng TLVReader được khởi tạo trước được cung cấp.
DecodeText (const char *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Giải mã nội dung của vùng đệm dữ liệu văn bản được cung cấp thành đối tượng Bộ mô tả thiết bị dệt.
EncodeTLV (const WeaveDeviceDescriptor & desc, uint8_t *buf, uint32_t bufLen, uint32_t & outEncodedLen)
Mã hóa bộ mô tả thiết bị được cung cấp dưới dạng Weave TLV được ghi vào bộ đệm được cung cấp.
EncodeTLV (const WeaveDeviceDescriptor & desc,nl::Weave::TLV::TLVWriter & writer)
Mã hóa bộ mô tả thiết bị được cung cấp dưới dạng Weave TLV được viết bằng đối tượng TLVWriter được khởi tạo trước được cung cấp.
EncodeText (const WeaveDeviceDescriptor & desc, char *buf, uint32_t bufLen, uint32_t & outEncodedLen)
Mã hóa bộ mô tả thiết bị được cung cấp dưới dạng văn bản được ghi vào bộ đệm được cung cấp.
IsZeroBytes (const uint8_t *buf, uint32_t len)
bool
Kiểm tra xem bộ đệm được chỉ định chỉ chứa các số không.

Các loại công khai

@ 180

 @180

Xác định độ dài tối đa của một số thuộc tính.

Tính chất
kMaxPairingCodeLength

Độ dài mã ghép nối tối đa.

kMaxRendezvousWiFiESSID

WiFi ESSID tối đa cho độ dài Điểm hẹn.

kMaxSerialNumberLength

Độ dài số sê-ri tối đa.

kMaxSoftwareVersionLength

Độ dài phiên bản phần mềm tối đa.

@ 181

 @181

Cờ đặc trưng cho biết khả năng cụ thể của thiết bị.

Tính chất
kFeature_HomeAlarmLinkCapable

Cho biết Nest Protect hỗ trợ kết nối với bảng cảnh báo gia đình.

kFeature_LinePowered

Cho biết thiết bị yêu cầu nguồn điện đường dây.

@ 182

 @182

Định nghĩa trường cờ.

Tính chất
kFlag_IsRendezvousWiFiESSIDSuffix

Cho biết giá trị RendezvousWiFiESSID là một chuỗi hậu tố xuất hiện ở cuối ESSID của mạng điểm hẹn WiFi của thiết bị.

Thuộc tính công cộng

ngày

uint8_t Day

Ngày sản xuất thiết bị (0 = không có)

Tính năng thiết bị

uint32_t DeviceFeatures

Trường bit cho biết hỗ trợ các tính năng cụ thể của thiết bị.

DeviceId

uint64_t DeviceId

Dệt ID thiết bị (0 = không có)

FabricId

uint64_t FabricId

ID của vải dệt mà thiết bị thuộc về (0 = không có)

Cờ

uint8_t Flags

Trường bit chứa thông tin bổ sung về thiết bị.

Ngày sản xuất

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

tháng

uint8_t Month

Tháng sản xuất thiết bị (1 = tháng 1)

Mã ghép nối

char PairingCode[kMaxPairingCodeLength+1]

Mã ghép nối thiết bị (NUL đã kết thúc, 0 length = không có)

PairingCompatibilityVersionMajor

uint16_t PairingCompatibilityVersionMajor

Phiên bản tương thích phần mềm ghép nối thiết bị chính.

PairingCompatibilityVersionMinor

uint16_t PairingCompatibilityVersionMinor

Phiên bản tương thích phần mềm ghép nối thiết bị nhỏ.

Địa chỉ chính802154MAC

uint8_t Primary802154MACAddress[8]

Địa chỉ MAC cho giao diện 802.15.4 chính (big-endian, tất cả các số không = không có)

PrimaryWiFiMACAddress

uint8_t PrimaryWiFiMACAddress[6]

Địa chỉ MAC cho giao diện WiFi chính (big-endian, tất cả các số không = không có)

ID sản phẩm

uint16_t ProductId

Mã sản phẩm thiết bị (0 = không có)

Sản phẩm

uint16_t ProductRevision

Bản sửa đổi sản phẩm thiết bị (0 = không có)

RendezvousWiFiESSID

char RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]

ESSID cho mạng điểm hẹn WiFi của thiết bị (NUL đã kết thúc, độ dài 0 = không có)

SerialNumber

char SerialNumber[kMaxSerialNumberLength+1]

Số sê-ri của thiết bị (NUL kết thúc, 0 độ dài = không có)

Phiên bản phần mềm

char SoftwareVersion[kMaxSoftwareVersionLength+1]

Phiên bản phần mềm hoạt động (NUL chấm dứt, 0 length = không có)

Nhà cung cấp dữ liệu thông tin

uint16_t VendorId

Mã nhà cung cấp thiết bị (0 = không có)

Năm

uint16_t Year

Năm sản xuất thiết bị (phạm vi hợp lệ 2001 - 2099)

Chức năng công cộng

Thông thoáng

void Clear(
  void
)

Xóa mô tả thiết bị.

WeaveDeviceDescriptor

 WeaveDeviceDescriptor(
  void
)

Chức năng tĩnh công khai

Giải mã

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

Giải mã nội dung của bộ đệm dữ liệu được cung cấp thành một đối tượng Bộ mô tả thiết bị dệt.

Chi tiết
Thông số
[in] data
Một con trỏ tới bộ đệm chứa văn bản hoặc dữ liệu Bộ mô tả thiết bị dệt được mã hóa TLV .
[in] dataLen
Chiều dài của bộ đệm được cung cấp.
[out] outDesc
Tham chiếu đến đối tượng Bộ mô tả thiết bị sẽ được điền.
Giá trị trả lại
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Nếu bộ đệm được cung cấp không hợp lệ.
WEAVE_NO_ERROR
Về thành công.
other
Các mã lỗi Weave hoặc nền tảng cụ thể khác cho biết rằng đã xảy ra lỗi ngăn cản việc giải mã TLV .

DecodeTLV

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

Giải mã nội dung của bộ đệm dữ liệu TLV được cung cấp thành đối tượng Bộ mô tả thiết bị dệt.

Chi tiết
Thông số
[in] data
Một con trỏ tới bộ đệm chứa dữ liệu Bộ mô tả thiết bị dệt được mã hóa bằng văn bản.
[in] dataLen
Chiều dài của bộ đệm được cung cấp.
[out] outDesc
Tham chiếu đến đối tượng Bộ mô tả thiết bị sẽ được điền.
Giá trị trả lại
WEAVE_ERROR_WRONG_TLV_TYPE
Nếu đây không phải là TLV Mô tả Thiết bị.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
Nếu gặp nhiều dữ liệu TLV hơn sau Mô tả thiết bị.
WEAVE_NO_ERROR
Về thành công.
other
Các mã lỗi Weave hoặc nền tảng cụ thể khác cho biết rằng đã xảy ra lỗi ngăn cản việc mã hóa TLV .

DecodeTLV

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

Giải mã Mô tả thiết bị bằng TLVReader được khởi tạo trước được cung cấp.

Chi tiết
Thông số
[in] reader
Tham chiếu đến TLVReader được khởi tạo trước.
[out] outDesc
Tham chiếu đến đối tượng Bộ mô tả thiết bị sẽ được điền.
Giá trị trả lại
WEAVE_ERROR_INVALID_TLV_ELEMENT
Nếu thông tin Mô tả thiết bị không hợp lệ được tìm thấy trong dữ liệu TLV .
WEAVE_NO_ERROR
Về thành công.
other
Các mã lỗi Weave hoặc nền tảng cụ thể khác cho biết rằng đã xảy ra lỗi ngăn cản việc giải mã TLV .

DecodeText

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

Giải mã nội dung của vùng đệm dữ liệu văn bản được cung cấp thành đối tượng Bộ mô tả thiết bị dệt.

Chi tiết
Thông số
[in] data
Một con trỏ tới bộ đệm chứa dữ liệu Bộ mô tả thiết bị dệt được mã hóa bằng văn bản.
[in] dataLen
Chiều dài của bộ đệm được cung cấp.
[out] outDesc
Tham chiếu đến đối tượng Bộ mô tả thiết bị sẽ được điền.
Giá trị trả lại
WEAVE_ERROR_UNSUPPORTED_DEVICE_DESCRIPTOR_VERSION
Nếu phiên bản dữ liệu được mã hóa không được hỗ trợ.
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Nếu dữ liệu được mã hóa không được định dạng đúng.
WEAVE_ERROR_INCORRECT_STATE
Nếu bộ giải mã gặp phải trạng thái không nhất quán.
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu đạt đến cuối bộ đệm trong quá trình giải mã.
WEAVE_NO_ERROR
Về thành công.

EncodeTLV

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

Mã hóa bộ mô tả thiết bị được cung cấp dưới dạng Weave TLV được ghi vào bộ đệm được cung cấp.

Chi tiết
Thông số
[in] desc
Tham chiếu đến Bộ mô tả thiết bị dệt để mã hóa.
[out] buf
Một con trỏ tới bộ đệm nơi văn bản được mã hóa sẽ được ghi.
[in] bufLen
Chiều dài của bộ đệm được cung cấp.
[out] outEncodedLen
Tham chiếu đến biến độ dài sẽ được ghi đè bằng số ký tự được ghi vào bộ đệm.
Giá trị trả lại
WEAVE_NO_ERROR
Về thành công.
other
Các mã lỗi Weave hoặc nền tảng cụ thể khác cho biết rằng đã xảy ra lỗi ngăn cản việc mã hóa TLV .

EncodeTLV

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

Mã hóa bộ mô tả thiết bị được cung cấp dưới dạng Weave TLV được viết bằng đối tượng TLVWriter được khởi tạo trước được cung cấp.

Điều này được sử dụng để thêm mô tả thiết bị vào đầu ra TLV lớn hơn.

Chi tiết
Thông số
[in] desc
Tham chiếu đến Bộ mô tả thiết bị dệt để mã hóa.
[in] writer
Tham chiếu đến đối tượng TLVWriter được khởi tạo trước sẽ được sử dụng.
Giá trị trả lại
WEAVE_NO_ERROR
Về thành công.
other
Các mã lỗi Weave hoặc nền tảng cụ thể khác cho biết rằng đã xảy ra lỗi ngăn cản việc mã hóa TLV .

EncodeText

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

Mã hóa bộ mô tả thiết bị được cung cấp dưới dạng văn bản được ghi vào bộ đệm được cung cấp.

Chi tiết
Thông số
[in] desc
Tham chiếu đến Bộ mô tả thiết bị dệt để mã hóa.
[out] buf
Một con trỏ tới bộ đệm nơi văn bản được mã hóa sẽ được ghi.
[in] bufLen
Chiều dài của bộ đệm được cung cấp.
[out] outEncodedLen
Tham chiếu đến biến độ dài sẽ được ghi đè bằng số ký tự được ghi vào bộ đệm.
Giá trị trả lại
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu bộ đệm được cung cấp quá nhỏ so với mô tả văn bản được tạo.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu trường mô tả không hợp lệ.
WEAVE_NO_ERROR
Về thành công.

IsZeroBytes

bool IsZeroBytes(
  const uint8_t *buf,
  uint32_t len
)

Kiểm tra xem bộ đệm được chỉ định chỉ chứa các số không.

Chi tiết
Thông số
[in] buf
Một con trỏ tới bộ đệm.
[in] len
Chiều dài của bộ đệm.
Giá trị trả lại
TRUE
Nếu bộ đệm chỉ chứa các số không.
FALSE
Nếu bộ đệm chứa bất kỳ giá trị nào khác 0.