nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor

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

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

Tóm tắt

Hàm khởi tạo và hàm phá

WeaveDeviceDescriptor(void)

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 các chức 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 khai

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 khả năng hỗ trợ các tính năng cụ thể của thiết bị.
DeviceId
uint64_t
Mã thiết bị dệt (0 = không có)
FabricId
uint64_t
Mã 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ị (đã kết thúc NUL, độ dài 0 = không có)
PairingCompatibilityVersionMajor
uint16_t
Phiên bản chính tương thích với phần mềm ghép nối thiết bị.
PairingCompatibilityVersionMinor
uint16_t
Phiên bản nhỏ về khả năng tương thích với phần mềm ghép nối thiết bị.
Primary802154MACAddress[8]
uint8_t
Địa chỉ MAC cho giao diện 802.15.4 chính (big-endian, tất cả đều là số 0 = không có)
PrimaryWiFiMACAddress[6]
uint8_t
Địa chỉ MAC cho giao diện Wi-Fi chính (big-endian, tất cả đều là 0 = không có)
ProductId
uint16_t
Mã sản phẩm của 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 Wi-Fi của thiết bị (đã kết thúc NUL, độ dài 0 = không có)
SerialNumber[kMaxSerialNumberLength+1]
char
Số sê-ri của thiết bị (đã kết thúc NUL, độ dài 0 = không có)
SoftwareVersion[kMaxSoftwareVersionLength+1]
char
Phiên bản phần mềm đang hoạt động (Đã chấm dứt NUL, độ dài 0 = 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ệ từ 2001 đến 2099)

Hàm công khai

Clear(void)
void
Xoá nội dung mô tả thiết bị.

Hàm tĩnh công khai

Decode(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Giải mã nội dung của vùng đệm dữ liệu được cung cấp vào đối tượng Weave Device Descriptor.
DecodeTLV(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Giải mã nội dung của vùng đệm dữ liệu TLV được cung cấp vào đối tượng Weave Device Descriptor.
DecodeTLV(nl::Weave::TLV::TLVReader & reader, WeaveDeviceDescriptor & outDesc)
Giải mã Mô tả thiết bị bằng TLVReader đã 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 vào đối tượng Weave Device Descriptor.
EncodeTLV(const WeaveDeviceDescriptor & desc, uint8_t *buf, uint32_t bufLen, uint32_t & outEncodedLen)
Mã hoá bộ mô tả thiết bị được cung cấp dưới dạng Weave TLV được ghi vào vùng đệm được cung cấp.
EncodeTLV(const WeaveDeviceDescriptor & desc, nl::Weave::TLV::TLVWriter & writer)
Mã hoá chỉ số mô tả thiết bị được cung cấp dưới dạng TLV của Weave đượ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ã hoá 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 vùng đệm được chỉ định có chỉ chứa số 0 hay không.

Loại công khai

@180

 @180

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

Thuộc tính
kMaxPairingCodeLength

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

kMaxRendezvousWiFiESSID

ESSID Wi-Fi tối đa cho độ dài điểm hẹn.

kMaxSerialNumberLength

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

kMaxSoftwareVersionLength

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

@181

 @181

Cờ tính năng cho biết các chức năng cụ thể của thiết bị.

Thuộc tính
kFeature_HomeAlarmLinkCapable

Cho biết Nest Protect có hỗ trợ kết nối với bảng điều khiển chuông báo trong nhà hay không.

kFeature_LinePowered

Cho biết một thiết bị cần đến nguồn điện.

@182

 @182

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

Thuộc tính
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 Wi-Fi của thiết bị.

Thuộc tính công khai

Ngày

uint8_t Day

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

DeviceFeatures

uint32_t DeviceFeatures

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

DeviceId

uint64_t DeviceId

Mã thiết bị dệt (0 = không có)

FabricId

uint64_t FabricId

Mã 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ị.

ManufacturingDate

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)

PairingCode

char PairingCode[kMaxPairingCodeLength+1]

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

PairingCompatibilityVersionMajor

uint16_t PairingCompatibilityVersionMajor

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

PairingCompatibilityVersionMinor

uint16_t PairingCompatibilityVersionMinor

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

Primary802154MACAddress

uint8_t Primary802154MACAddress[8]

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

PrimaryWiFiMACAddress

uint8_t PrimaryWiFiMACAddress[6]

Địa chỉ MAC cho giao diện Wi-Fi chính (big-endian, tất cả đều là 0 = không có)

ProductId

uint16_t ProductId

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

ProductRevision

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 Wi-Fi của thiết bị (đã kết thúc NUL, độ dài 0 = không có)

SerialNumber

char SerialNumber[kMaxSerialNumberLength+1]

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

SoftwareVersion

char SoftwareVersion[kMaxSoftwareVersionLength+1]

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

VendorId

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ệ từ 2001 đến 2099)

Hàm công khai

Xoá

void Clear(
  void
)

Xoá nội dung mô tả thiết bị.

WeaveDeviceDescriptor

 WeaveDeviceDescriptor(
  void
)

Hàm tĩnh công khai

Decode

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

Giải mã nội dung của vùng đệm dữ liệu được cung cấp vào đối tượng Weave Device Descriptor.

Thông tin chi tiết
Thông số
[in] data
Con trỏ đến vùng đệm chứa văn bản hoặc dữ liệu Mô tả thiết bị dệt được mã hoá TLV.
[in] dataLen
Độ dài của vùng đệm được cung cấp.
[out] outDesc
Mã tham chiếu đến đối tượng Mô tả thiết bị sẽ được điền sẵn.
Giá trị trả về
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Nếu vùng đệm đã cung cấp không hợp lệ.
WEAVE_NO_ERROR
Khi thành công.
other
Các mã lỗi riêng của Weave hoặc nền tảng khác cho biết đã xảy ra lỗi ngăn chặ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 vùng đệm dữ liệu TLV được cung cấp vào đối tượng Weave Device Descriptor.

Thông tin chi tiết
Thông số
[in] data
Con trỏ đến vùng đệm chứa dữ liệu Mô tả thiết bị dệt được mã hoá bằng văn bản.
[in] dataLen
Độ dài của vùng đệm được cung cấp.
[out] outDesc
Mã tham chiếu đến đối tượng Mô tả thiết bị sẽ được điền sẵn.
Giá trị trả về
WEAVE_ERROR_WRONG_TLV_TYPE
Nếu đây không phải là phần Mô tả thiết bị TLV.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
Nếu có thêm dữ liệu TLV sau phần Mô tả thiết bị.
WEAVE_NO_ERROR
Khi thành công.
other
Các mã lỗi khác của Weave hoặc nền tảng cụ thể cho biết đã xảy ra lỗi nên không thể mã hoá TLV.

DecodeTLV

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

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

Thông tin chi tiết
Thông số
[in] reader
Mã tham chiếu đến TLVReader đã khởi tạo trước.
[out] outDesc
Mã tham chiếu đến đối tượng Mô tả thiết bị sẽ được điền sẵn.
Giá trị trả về
WEAVE_ERROR_INVALID_TLV_ELEMENT
Nếu tìm thấy thông tin Mô tả thiết bị không hợp lệ trong dữ liệu TLV.
WEAVE_NO_ERROR
Khi thành công.
other
Các mã lỗi riêng của Weave hoặc nền tảng khác cho biết đã 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 vào đối tượng Weave Device Descriptor.

Thông tin chi tiết
Thông số
[in] data
Con trỏ đến vùng đệm chứa dữ liệu Mô tả thiết bị dệt được mã hoá bằng văn bản.
[in] dataLen
Độ dài của vùng đệm được cung cấp.
[out] outDesc
Mã tham chiếu đến đối tượng Mô tả thiết bị sẽ được điền sẵn.
Giá trị trả về
WEAVE_ERROR_UNSUPPORTED_DEVICE_DESCRIPTOR_VERSION
Nếu phiên bản dữ liệu đã mã hoá không được hỗ trợ.
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Nếu dữ liệu đã mã hoá 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 điểm cuối của vùng đệm trong quá trình giải mã.
WEAVE_NO_ERROR
Khi thành công.

EncodeTLV

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

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

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

EncodeTLV

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

Mã hoá chỉ số mô tả thiết bị được cung cấp dưới dạng TLV của Weave được viết bằng đối tượng TLVWriter được khởi tạo trước được cung cấp.

Tính năng này dùng để thêm nội dung mô tả thiết bị vào đầu ra TLV lớn hơn.

Thông tin chi tiết
Thông số
[in] desc
Tham chiếu đến Mã mô tả thiết bị dệt để mã hoá.
[in] writer
Tham chiếu đến đối tượng TLVWriter được khởi tạo trước để sử dụng.
Giá trị trả về
WEAVE_NO_ERROR
Khi thành công.
other
Các mã lỗi khác của Weave hoặc nền tảng cụ thể cho biết đã xảy ra lỗi nên không thể mã hoá TLV.

EncodeText

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

Mã hoá 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.

Thông tin chi tiết
Thông số
[in] desc
Tham chiếu đến Mã mô tả thiết bị dệt để mã hoá.
[out] buf
Con trỏ đến vùng đệm nơi văn bản mã hoá sẽ được ghi.
[in] bufLen
Độ dài của vùng đệm được cung cấp.
[out] outEncodedLen
Tham chiếu đến biến độ dài sẽ được ghi đè bằng số lượng ký tự được ghi vào vùng đệm.
Giá trị trả về
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu vùng đệm được cung cấp quá nhỏ cho phần 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
Khi thành công.

IsZeroBytes

bool IsZeroBytes(
  const uint8_t *buf,
  uint32_t len
)

Kiểm tra xem vùng đệm được chỉ định có chỉ chứa số 0 hay không.

Thông tin chi tiết
Thông số
[in] buf
Con trỏ đến một vùng đệm.
[in] len
Độ dài của vùng đệm.
Giá trị trả về
TRUE
Nếu vùng đệm chỉ chứa số 0.
FALSE
Nếu vùng đệm chứa bất kỳ giá trị nào khác 0.