нл:: Переплетение:: Профили:: Описание устройства:: Дескриптор 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
}
перечисление
Определяет максимальную длину некоторых атрибутов.
@181 {
kFeature_HomeAlarmLinkCapable = 0x00000001,
kFeature_LinePowered = 0x00000002
}
перечисление
Флаги функций, указывающие конкретные возможности устройства.
@182 {
kFlag_IsRendezvousWiFiESSIDSuffix = 0x01
}
перечисление
Определения полей флагов.

Публичные атрибуты

Day
uint8_t
День изготовления устройства (0 = нет)
DeviceFeatures
uint32_t
Битовое поле, указывающее поддержку определенных функций устройства.
DeviceId
uint64_t
Идентификатор устройства Weave (0 = отсутствует)
FabricId
uint64_t
Идентификатор ткани Weave, к которой принадлежит устройство (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 (обратный порядок байтов, все нули = нет)
PrimaryWiFiMACAddress [6]
uint8_t
MAC-адрес основного интерфейса Wi-Fi (обратный порядок байтов, все нули = нет)
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.
DecodeTLV (const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Декодирует содержимое предоставленного буфера данных TLV в объект дескриптора устройства Weave.
DecodeTLV ( nl::Weave::TLV::TLVReader & reader, WeaveDeviceDescriptor & outDesc)
Декодирует описание устройства с помощью предоставленного предварительно инициализированного TLVReader.
DecodeText (const char *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Декодирует содержимое предоставленного буфера текстовых данных в объект дескриптора устройства Weave.
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
Проверьте, содержит ли указанный буфер только нули.

Публичные типы

@180

 @180

Определяет максимальную длину некоторых атрибутов.

Характеристики
kMaxPairingCodeLength

Максимальная длина кода сопряжения.

kMaxRendezvousWiFiESSID

Максимальный ESSID Wi-Fi для продолжительности встречи.

kMaxSerialNumberLength

Максимальная длина серийного номера.

kMaxSoftwareVersionLength

Максимальная длина версии программного обеспечения.

@181

 @181

Флаги функций, указывающие конкретные возможности устройства.

Характеристики
kFeature_HomeAlarmLinkCapable

Обозначает Nest Protect, поддерживающий подключение к домашней панели сигнализации.

kFeature_LinePowered

Указывает на устройство, которому требуется сетевое питание.

@182

 @182

Определения полей флагов.

Характеристики
kFlag_IsRendezvousWiFiESSIDSuffix

Указывает, что значение RendezvousWiFiESSID представляет собой суффиксную строку, которая появляется в конце ESSID сети встречи Wi-Fi устройства.

Публичные атрибуты

День

uint8_t Day

День изготовления устройства (0 = нет)

Характеристики устройства

uint32_t DeviceFeatures

Битовое поле, указывающее поддержку определенных функций устройства.

идентификатор устройства

uint64_t DeviceId

Идентификатор устройства Weave (0 = отсутствует)

Ид ткани

uint64_t FabricId

Идентификатор ткани Weave, к которой принадлежит устройство (0 = отсутствует)

Флаги

uint8_t Flags

Битовое поле, содержащее дополнительную информацию об устройстве.

Дата изготовления

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

Месяц

uint8_t Month

Месяц изготовления устройства (1 = январь)

Код сопряжения

char PairingCode[kMaxPairingCodeLength+1]

Код сопряжения устройств (NUL завершен, длина 0 = отсутствует)

СопряжениеСовместимостьВерсияMajor

uint16_t PairingCompatibilityVersionMajor

Основная версия программного обеспечения для сопряжения устройств.

СопряжениеСовместимостьВерсияМинор

uint16_t PairingCompatibilityVersionMinor

Дополнительная версия совместимости программного обеспечения для сопряжения устройств.

Первичный802154MAC-адрес

uint8_t Primary802154MACAddress[8]

MAC-адрес основного интерфейса 802.15.4 (обратный порядок байтов, все нули = нет)

ПервичныйWiFiMACAадрес

uint8_t PrimaryWiFiMACAddress[6]

MAC-адрес основного интерфейса Wi-Fi (обратный порядок байтов, все нули = нет)

Идентификатор продукта

uint16_t ProductId

Код продукта устройства (0 = отсутствует)

Версия продукта

uint16_t ProductRevision

Версия продукта устройства (0 = отсутствует)

РандевуWiFiESSID

char RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]

ESSID для сети встречи Wi-Fi устройства (завершено NUL, длина 0 = отсутствует)

Серийный номер

char SerialNumber[kMaxSerialNumberLength+1]

Серийный номер устройства (завершен NUL, длина 0 = отсутствует)

Версия программного обеспечения

char SoftwareVersion[kMaxSoftwareVersionLength+1]

Активная версия программного обеспечения (завершено NUL, длина 0 = отсутствует)

Идентификатор поставщика

uint16_t VendorId

Код производителя устройства (0 = отсутствует)

Год

uint16_t Year

Год изготовления устройства (действительный диапазон 2001–2099 гг.)

Общественные функции

Прозрачный

void Clear(
  void
)

Очищает описание устройства.

Дескриптор WeaveDeviceDescriptor

 WeaveDeviceDescriptor(
  void
)

Публичные статические функции

Декодировать

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

Декодирует содержимое предоставленного буфера данных в объект дескриптора устройства Weave.

Подробности
Параметры
[in] data
Указатель на буфер, содержащий текстовые или TLV- кодированные данные дескриптора устройства Weave.
[in] dataLen
Длина предоставленного буфера.
[out] outDesc
Ссылка на объект дескриптора устройства, который необходимо заполнить.
Возвращаемые значения
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Если предоставленный буфер недействителен.
WEAVE_NO_ERROR
Об успехе.
other
Другие коды ошибок Weave или конкретной платформы, указывающие на то, что произошла ошибка, препятствующая декодированию TLV .

ДекодированиеTLV

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

Декодирует содержимое предоставленного буфера данных TLV в объект дескриптора устройства Weave.

Подробности
Параметры
[in] data
Указатель на буфер, содержащий текстовые данные дескриптора устройства Weave.
[in] dataLen
Длина предоставленного буфера.
[out] outDesc
Ссылка на объект дескриптора устройства, который необходимо заполнить.
Возвращаемые значения
WEAVE_ERROR_WRONG_TLV_TYPE
Если это не TLV описания устройства.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
Если после описания устройства встречаются дополнительные данные TLV .
WEAVE_NO_ERROR
Об успехе.
other
Другие коды ошибок Weave или конкретной платформы, указывающие на то, что произошла ошибка, препятствующая кодированию TLV .

ДекодированиеTLV

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

Декодирует описание устройства с помощью предоставленного предварительно инициализированного TLVReader.

Подробности
Параметры
[in] reader
Ссылка на предварительно инициализированный TLVReader.
[out] outDesc
Ссылка на объект дескриптора устройства, который необходимо заполнить.
Возвращаемые значения
WEAVE_ERROR_INVALID_TLV_ELEMENT
Если в данных TLV обнаружена неверная информация об описании устройства.
WEAVE_NO_ERROR
Об успехе.
other
Другие коды ошибок Weave или конкретной платформы, указывающие на то, что произошла ошибка, помешавшая декодированию TLV .

Декодированиетекста

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

Декодирует содержимое предоставленного буфера текстовых данных в объект дескриптора устройства Weave.

Подробности
Параметры
[in] data
Указатель на буфер, содержащий текстовые данные дескриптора устройства Weave.
[in] dataLen
Длина предоставленного буфера.
[out] outDesc
Ссылка на объект дескриптора устройства, который необходимо заполнить.
Возвращаемые значения
WEAVE_ERROR_UNSUPPORTED_DEVICE_DESCRIPTOR_VERSION
Если версия закодированных данных не поддерживается.
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Если закодированные данные отформатированы неправильно.
WEAVE_ERROR_INCORRECT_STATE
Если декодер обнаруживает несогласованное состояние.
WEAVE_ERROR_BUFFER_TOO_SMALL
Если во время декодирования достигнут конец буфера.
WEAVE_NO_ERROR
Об успехе.

КодироватьTLV

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

Кодирует предоставленный дескриптор устройства как Weave TLV, записываемый в предоставленный буфер.

Подробности
Параметры
[in] desc
Ссылка на дескриптор устройства Weave для кодирования.
[out] buf
Указатель на буфер, куда будет записан закодированный текст.
[in] bufLen
Длина предоставленного буфера.
[out] outEncodedLen
Ссылка на переменную длины, которая будет перезаписана количеством символов, записанных в буфер.
Возвращаемые значения
WEAVE_NO_ERROR
Об успехе.
other
Другие коды ошибок Weave или конкретной платформы, указывающие на то, что произошла ошибка, препятствующая кодированию TLV .

КодироватьTLV

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

Кодирует предоставленный дескриптор устройства как Weave TLV , записанный с использованием предоставленного предварительно инициализированного объекта TLVWriter.

Это используется для добавления описания устройства к более крупному выводу TLV .

Подробности
Параметры
[in] desc
Ссылка на дескриптор устройства Weave для кодирования.
[in] writer
Ссылка на предварительно инициализированный объект TLVWriter, который будет использоваться.
Возвращаемые значения
WEAVE_NO_ERROR
Об успехе.
other
Другие коды ошибок Weave или конкретной платформы, указывающие на то, что произошла ошибка, препятствующая кодированию TLV .

Кодироватьтекст

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

Кодирует предоставленный дескриптор устройства как текст, записываемый в предоставленный буфер.

Подробности
Параметры
[in] desc
Ссылка на дескриптор устройства Weave для кодирования.
[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
)

Проверьте, содержит ли указанный буфер только нули.

Подробности
Параметры
[in] buf
Указатель на буфер.
[in] len
Длина буфера.
Возвращаемые значения
TRUE
Если буфер содержит только нули.
FALSE
Если буфер содержит какие-либо ненулевые значения.