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.

nl::Weave::Hồ sơ::DeviceDescription::WeaveDeviceDescriptor

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

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

Tóm tắt

Hàm dựng và hàm phá hủy

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

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

Hàm công khai

Clear(void)
void
Xóa 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 bộ đệm dữ liệu được cung cấp vào đối tượng 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 đã cung cấp vào đối tượng Mô tả thiết bị Weave.
DecodeTLV(nl::Weave::TLV::TLVReader & reader, WeaveDeviceDescriptor & outDesc)
Giải mã nội dung mô tả thiết bị bằng TLV Reader đã khởi tạo sẵn.
DecodeText(const char *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Giải mã nội dung của bộ đệm dữ liệu văn bản được cung cấp vào đối tượng Mô tả thiết bị dệt.
EncodeTLV(const WeaveDeviceDescriptor & desc, uint8_t *buf, uint32_t bufLen, uint32_t & outEncodedLen)
Mã hóa phần mô tả thiết bị được cung cấp dưới dạng TLV Weave 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 TLV Weave đã viết bằng đối tượng TLVWriter đã khởi tạo trước.
EncodeText(const WeaveDeviceDescriptor & desc, char *buf, uint32_t bufLen, uint32_t & outEncodedLen)
Mã hóa phần mô tả thiết bị được cung cấp dưới dạng văn bản 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 có 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 mã ghép nối tối đa.

kMaxRendezvousWiFiESSID

Số ESSID Wi-Fi tối đa cho độ dài hiển thị.

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ờ tính năng cho biết các tính năng cụ thể của thiết bị.

Thuộc tính
kFeature_HomeAlarmLinkCapable

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

kFeature_LinePowered

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

@182

 @182

Gắn cờ định nghĩa trường.

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 đế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ó)

Tính năng của thiết bị

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

Id thiết bị

uint64_t DeviceId

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

Mã vải

uint64_t FabricId

Mã vải dệt dành cho 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ị.

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ị (Đã chấm dứt NUL, thời lượng là 0 = không có)

ghép nối nhưng phiên bản chính

uint16_t PairingCompatibilityVersionMajor

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

ghép tương thíchVersionVersion

uint16_t PairingCompatibilityVersionMinor

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

Địa chỉ MAC882154MAC

uint8_t Primary802154MACAddress[8]

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

địa chỉ Wi-FiMACMAC

uint8_t PrimaryWiFiMACAddress[6]

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

Id sản phẩm

uint16_t ProductId

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

Bản sửa đổi 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 thiết bị Wi-Fi mà mạng đích đã chấm dứt (NUL bị chấm dứt, 0 độ dài = không có)

Số sê-ri

char SerialNumber[kMaxSerialNumberLength+1]

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

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

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ó)

Mã nhà cung cấp

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)

Hàm công khai

Quang đãng

void Clear(
  void
)

Xóa nội dung mô tả thiết bị.

Mô tả thiết bị WeaveDeviceDescript

 WeaveDeviceDescriptor(
  void
)

Hàm 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 vào đối tượng Mô tả thiết bị dệt.

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

Giải mã

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 đã cung cấp vào đối tượng Mô tả thiết bị Weave.

Thông tin chi tiết
Các thông số
[in] data
Con trỏ vào bộ đệm chứa dữ liệu văn bản mô tả thiết bị dệt được mã hóa bằng văn bản.
[in] dataLen
Độ dài của bộ đệm đã cung cấp.
[out] outDesc
Tham chiếu đến đối tượng Mô tả thiết bị cần được điền.
Giá trị trả về
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 có thêm dữ liệu về TLV sau phần mô tả thiết bị.
WEAVE_NO_ERROR
Thành công!
other
Các mã lỗi Weave hoặc mã nền tảng cụ thể khác cho biết rằng đã xảy ra lỗi ngăn chặn việc mã hóa TLV.

Giải mã

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

Giải mã nội dung mô tả thiết bị bằng TLV Reader đã khởi tạo sẵn.

Thông tin chi tiết
Các thông số
[in] reader
Tệp tham chiếu đến TLV Reader đã khởi tạo trước đó.
[out] outDesc
Tham chiếu đến đối tượng Mô tả thiết bị cần đượ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 phần Mô tả thiết bị trong dữ liệu TLV.
WEAVE_NO_ERROR
Thành công!
other
Các mã lỗi Weave hoặc mã nền tảng cụ thể khác cho biết rằng đã xảy ra lỗi ngăn chặn việc giải mã TLV.

Văn bản giải mã

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

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

Thông tin chi tiết
Các thông số
[in] data
Con trỏ vào bộ đệm chứa dữ liệu văn bản mô tả thiết bị dệt được mã hóa bằng văn bản.
[in] dataLen
Độ dài của bộ đệm đã cung cấp.
[out] outDesc
Tham chiếu đến đối tượng Mô tả thiết bị cần đượ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 trạng thái không nhất quán.
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu đã đến cuối bộ đệm trong quá trình giải mã.
WEAVE_NO_ERROR
Thành công!

Bộ mã hóa

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

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

Thông tin chi tiết
Các thông số
[in] desc
Tệp tham chiếu đến Trình mô tả thiết bị Weave để mã hóa.
[out] buf
Con trỏ đến bộ đệm nơi văn bản đã mã hoá sẽ được viết.
[in] bufLen
Độ dài của bộ đệm đã 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ả về
WEAVE_NO_ERROR
Thành công!
other
Các mã lỗi Weave hoặc mã nền tảng cụ thể khác cho biết rằng đã xảy ra lỗi ngăn chặn việc mã hóa TLV.

Bộ mã hóa

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 TLV Weave đã viết bằng đối tượng TLVWriter đã khởi tạo trước.

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
Các thông số
[in] desc
Tệp tham chiếu đến Trình mô tả thiết bị Weave để mã hóa.
[in] writer
Tệp tham chiếu đến đối tượng TLVWriter đã khởi tạo trước sẽ được dùng.
Giá trị trả về
WEAVE_NO_ERROR
Thành công!
other
Các mã lỗi Weave hoặc mã nền tảng cụ thể khác cho biết rằng đã xảy ra lỗi ngăn chặn việc mã hóa TLV.

Mã văn bản

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

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

Thông tin chi tiết
Các thông số
[in] desc
Tệp tham chiếu đến Trình mô tả thiết bị Weave để mã hóa.
[out] buf
Con trỏ đến bộ đệm nơi văn bản đã mã hoá sẽ được viết.
[in] bufLen
Độ dài của bộ đệm đã 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ả 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 đã tạo.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu một trường nhãn mô tả không hợp lệ.
WEAVE_NO_ERROR
Thành công!

IsZeroBytes

bool IsZeroBytes(
  const uint8_t *buf,
  uint32_t len
)

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

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