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

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

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

Tóm tắt

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

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 khả năng cụ thể của thiết bị.
@182{
  kFlag_IsRendezvousWiFiESSIDSuffix = 0x01
}
enum
Định nghĩa các trường cờ.

Các thuộc tính công khai

Day
uint8_t
Ngày sản xuất thiết bị (không có 0)
DeviceFeatures
uint32_t
Trường bit cho biết có hỗ trợ một số tính năng cụ thể của thiết bị.
DeviceId
uint64_t
Mã thiết bị Weave (0 = không có)
FabricId
uint64_t
Mã nhận dạng vải Weave chứa thiết bị (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 về khả năng tương thích của phần mềm ghép nối thiết bị.
PairingCompatibilityVersionMinor
uint16_t
Phiên bản tương thích của 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 Wi-Fi chính (big-end, không có tất cả các số 0 =)
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ị (Đã chấm dứt 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ã của 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 đã cung cấp thành đố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 đã cung cấp thành đối tượng Weave Device Descriptor.
DecodeTLV(nl::Weave::TLV::TLVReader & reader, WeaveDeviceDescriptor & outDesc)
Giải mã Nội dung mô tả thiết bị bằng TLVReader khởi tạo trước mà bạn 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 đã cung cấp thành đối tượng Weave Device Descriptor.
EncodeTLV(const WeaveDeviceDescriptor & desc, uint8_t *buf, uint32_t bufLen, uint32_t & outEncodedLen)
Mã hoá chỉ số mô tả thiết bị được cung cấp dưới dạng Weave TLV được ghi vào bộ đệm đã 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 viết bằng đối tượng TLVWriter được khởi tạo trước đã cung cấp.
EncodeText(const WeaveDeviceDescriptor & desc, char *buf, uint32_t bufLen, uint32_t & outEncodedLen)
Mã hoá chỉ số mô tả thiết bị đã cung cấp dưới dạng văn bản được ghi vào vùng đệm đã cung cấp.
IsZeroBytes(const uint8_t *buf, uint32_t len)
bool
Kiểm tra xem vùng đệm được chỉ định có chứa chỉ 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 của Wi-Fi tối đa cho độ dài Rendezvous.

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 khả 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à.

kFeature_LinePowered

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

@182

 @182

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

Thuộc tính
kFlag_IsRendezvousWiFiESSIDSuffix

Cho biết rằng 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ị.

Các thuộc tính công khai

Ngày

uint8_t Day

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

DeviceFeatures

uint32_t DeviceFeatures

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

DeviceId

uint64_t DeviceId

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

FabricId

uint64_t FabricId

Mã nhận dạng vải Weave chứa thiết bị (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 về khả năng tương thích của phần mềm ghép nối thiết bị.

PairingCompatibilityVersionMinor

uint16_t PairingCompatibilityVersionMinor

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

Chính802154MACĐịa chỉ

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 Wi-Fi chính (big-end, không có tất cả các số 0 =)

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ị (Đã chấm dứt 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ã của 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

Xóa

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 đã cung cấp thành đối tượng Weave Device Descriptor.

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

Thông tin chi tiết
Tham số
[in] data
Con trỏ tới vùng đệm chứa dữ liệu Văn bản mô tả thiết bị Weave đã mã hoá.
[in] dataLen
Độ dài của vùng đệm đã cung cấp.
[out] outDesc
Tham chiếu đến đối tượng Mô tả thiết bị sẽ được điề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 riêng của Weave hoặc nền tảng cụ thể cho biết đã xảy ra lỗi ngăn mã hoá TLV.

DecodeTLV

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

Giải mã Nội dung mô tả thiết bị bằng TLVReader khởi tạo trước mà bạn cung cấp.

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

Thông tin chi tiết
Tham số
[in] data
Con trỏ tới vùng đệm chứa dữ liệu Văn bản mô tả thiết bị Weave đã mã hoá.
[in] dataLen
Độ dài của vùng đệm đã cung cấp.
[out] outDesc
Tham chiếu đến đối tượng Mô tả thiết bị sẽ được điề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 cuối 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á chỉ số mô tả thiết bị được cung cấp dưới dạng Weave TLV được ghi vào bộ đệm đã cung cấp.

Thông tin chi tiết
Tham số
[in] desc
Tham chiếu đến Weave Device Descriptor để mã hoá.
[out] buf
Con trỏ 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 đã cung cấp.
[out] outEncodedLen
Tham chiếu đến biến độ dài sẽ bị ghi đè bằng số 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 dành riêng cho nền tảng cho biết đã xảy ra lỗi ngăn 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 viết bằng đối tượng TLVWriter được khởi tạo trước đã cung cấp.

Mã 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
Tham số
[in] desc
Tham chiếu đến Weave Device Descriptor để mã hoá.
[in] writer
Thông tin tham chiếu đến đối tượng TLVWriter khởi tạo trước sẽ đượ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 dành riêng cho nền tảng cho biết đã xảy ra lỗi ngăn mã hoá TLV.

EncodeText

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

Mã hoá chỉ số mô tả thiết bị đã cung cấp dưới dạng văn bản được ghi vào vùng đệm đã cung cấp.

Thông tin chi tiết
Tham số
[in] desc
Tham chiếu đến Weave Device Descriptor để mã hoá.
[out] buf
Con trỏ 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 đã cung cấp.
[out] outEncodedLen
Tham chiếu đến biến độ dài sẽ bị ghi đè bằng số 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ỏ đối với nội dung 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ứa chỉ số 0 hay không.

Thông tin chi tiết
Tham số
[in] buf
Con trỏ trỏ đến 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 có chứa bất kỳ giá trị nào khác 0.