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

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

Contiene información descriptiva sobre un dispositivo de Weave.

Resumen

Constructores y destructores

WeaveDeviceDescriptor(void)

Tipos públicos

@180{
  kMaxSerialNumberLength = 32,
  kMaxPairingCodeLength = 16,
  kMaxRendezvousWiFiESSID = 32,
  kMaxSoftwareVersionLength = WEAVE_CONFIG_MAX_SOFTWARE_VERSION_LENGTH
}
enum
Define la longitud máxima de algunos atributos.
@181{
  kFeature_HomeAlarmLinkCapable = 0x00000001,
  kFeature_LinePowered = 0x00000002
}
enum
Marcas de función que indican las capacidades específicas de un dispositivo.
@182{
  kFlag_IsRendezvousWiFiESSIDSuffix = 0x01
}
enum
Marca las definiciones de campos.

Atributos públicos

Day
uint8_t
Día de fabricación del dispositivo (0 = no está presente)
DeviceFeatures
uint32_t
Campo de bits que indica compatibilidad con funciones específicas del dispositivo.
DeviceId
uint64_t
ID de dispositivo de Weave (0 = ausente)
FabricId
uint64_t
ID de la tela de Weave a la que pertenece el dispositivo (0 = no está presente)
Flags
uint8_t
Campo de bits que contiene información adicional sobre el dispositivo.
ManufacturingDate
struct nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::@183
Month
uint8_t
Mes de fabricación del dispositivo (1 = enero)
PairingCode[kMaxPairingCodeLength+1]
char
Código de vinculación del dispositivo (NUL finalizado, 0 longitud = no presente)
PairingCompatibilityVersionMajor
uint16_t
Versión principal de compatibilidad con software de vinculación de dispositivos.
PairingCompatibilityVersionMinor
uint16_t
Versión menor de compatibilidad del software de vinculación de dispositivos.
Primary802154MACAddress[8]
uint8_t
Dirección MAC para la interfaz principal 802.15.4 (big-endian, todos los ceros = no está presente)
PrimaryWiFiMACAddress[6]
uint8_t
Dirección MAC para la interfaz Wi-Fi principal (big-endian, todos los ceros = no está presente)
ProductId
uint16_t
Código de producto del dispositivo (0 = ausente)
ProductRevision
uint16_t
Revisión del producto del dispositivo (0 = no está presente)
RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]
char
ESSID para la red de acceso Wi-Fi del dispositivo (NUL finalizado, 0 longitud = no presente)
SerialNumber[kMaxSerialNumberLength+1]
char
Número de serie del dispositivo (NUL finalizado, 0 longitud = no presente)
SoftwareVersion[kMaxSoftwareVersionLength+1]
char
Versión de software activa (NUL finalizado, 0 duración = ausente)
VendorId
uint16_t
Código del proveedor del dispositivo (0 = ausente)
Year
uint16_t
Año de fabricación del dispositivo (rango válido de 2001 a 2099)

Funciones públicas

Clear(void)
void
Borra la descripción del dispositivo.

Funciones estáticas públicas

Decode(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Decodifica el contenido del búfer de datos proporcionado en un objeto descriptor de dispositivo de Weave.
DecodeTLV(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Decodifica el contenido del búfer de datos de TLV proporcionado en un objeto descriptor de dispositivo de Weave.
DecodeTLV(nl::Weave::TLV::TLVReader & reader, WeaveDeviceDescriptor & outDesc)
Decodifica la descripción del dispositivo con el TLVReader previamente inicializado.
DecodeText(const char *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Decodifica el contenido del búfer de datos de texto proporcionado en un objeto descriptor de dispositivo de Weave.
EncodeTLV(const WeaveDeviceDescriptor & desc, uint8_t *buf, uint32_t bufLen, uint32_t & outEncodedLen)
Codifica el descriptor de dispositivo proporcionado como TLV de Weave escrito en el búfer proporcionado.
EncodeTLV(const WeaveDeviceDescriptor & desc, nl::Weave::TLV::TLVWriter & writer)
Codifica el descriptor de dispositivo proporcionado como TLV de Weave escrito con el objeto TLVWriter previamente inicializado proporcionado.
EncodeText(const WeaveDeviceDescriptor & desc, char *buf, uint32_t bufLen, uint32_t & outEncodedLen)
Codifica el descriptor de dispositivo proporcionado como texto escrito en el búfer proporcionado.
IsZeroBytes(const uint8_t *buf, uint32_t len)
bool
Verifica si el búfer especificado solo contiene ceros.

Tipos públicos

@180

 @180

Define la longitud máxima de algunos atributos.

Propiedades
kMaxPairingCodeLength

Longitud máxima del código de vinculación.

kMaxRendezvousWiFiESSID

ESSID de Wi-Fi máximo para la longitud de Rendezvous

kMaxSerialNumberLength

Longitud máxima del número de serie.

kMaxSoftwareVersionLength

Longitud máxima de la versión de software.

@181

 @181

Marcas de función que indican las capacidades específicas de un dispositivo.

Propiedades
kFeature_HomeAlarmLinkCapable

Indica un Nest Protect que admite la conexión a un panel de alarma doméstico.

kFeature_LinePowered

Indica un dispositivo que requiere alimentación eléctrica.

@182

 @182

Marca las definiciones de campos.

Propiedades
kFlag_IsRendezvousWiFiESSIDSuffix

Indica que el valor RendezvousWiFiESSID es una cadena de sufijo que aparece al final del ESSID de la red de acceso Wi-Fi del dispositivo.

Atributos públicos

Day

uint8_t Day

Día de fabricación del dispositivo (0 = no está presente)

DeviceFeatures

uint32_t DeviceFeatures

Campo de bits que indica compatibilidad con funciones específicas del dispositivo.

DeviceId

uint64_t DeviceId

ID de dispositivo de Weave (0 = ausente)

FabricId

uint64_t FabricId

ID de la tela de Weave a la que pertenece el dispositivo (0 = no está presente)

Marcas

uint8_t Flags

Campo de bits que contiene información adicional sobre el dispositivo.

ManufacturingDate

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

Mes

uint8_t Month

Mes de fabricación del dispositivo (1 = enero)

PairingCode

char PairingCode[kMaxPairingCodeLength+1]

Código de vinculación del dispositivo (NUL finalizado, 0 longitud = no presente)

PairingCompatibilityVersionMajor

uint16_t PairingCompatibilityVersionMajor

Versión principal de compatibilidad con software de vinculación de dispositivos.

PairingCompatibilityVersionMinor

uint16_t PairingCompatibilityVersionMinor

Versión menor de compatibilidad del software de vinculación de dispositivos.

Dirección MAC802154Principal

uint8_t Primary802154MACAddress[8]

Dirección MAC para la interfaz principal 802.15.4 (big-endian, todos los ceros = no está presente)

PrimaryWiFiMACAddress

uint8_t PrimaryWiFiMACAddress[6]

Dirección MAC para la interfaz Wi-Fi principal (big-endian, todos los ceros = no está presente)

ProductId

uint16_t ProductId

Código de producto del dispositivo (0 = ausente)

ProductRevision

uint16_t ProductRevision

Revisión del producto del dispositivo (0 = no está presente)

RendezvousWiFiESSID

char RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]

ESSID para la red de acceso Wi-Fi del dispositivo (NUL finalizado, 0 longitud = no presente)

SerialNumber

char SerialNumber[kMaxSerialNumberLength+1]

Número de serie del dispositivo (NUL finalizado, 0 longitud = no presente)

SoftwareVersion

char SoftwareVersion[kMaxSoftwareVersionLength+1]

Versión de software activa (NUL finalizado, 0 duración = ausente)

VendorId

uint16_t VendorId

Código del proveedor del dispositivo (0 = ausente)

Año

uint16_t Year

Año de fabricación del dispositivo (rango válido de 2001 a 2099)

Funciones públicas

Borrar

void Clear(
  void
)

Borra la descripción del dispositivo.

WeaveDeviceDescriptor

 WeaveDeviceDescriptor(
  void
)

Funciones estáticas públicas

Decode

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

Decodifica el contenido del búfer de datos proporcionado en un objeto descriptor de dispositivo de Weave.

Detalles
Parámetros
[in] data
Un puntero para un búfer que contiene texto o datos del descriptor de dispositivo de Weave codificados en TLV.
[in] dataLen
Es la longitud del búfer proporcionado.
[out] outDesc
Es una referencia al objeto Descriptor de dispositivo que se propagará.
Valores que se muestran
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Si el búfer proporcionado no es válido.
WEAVE_NO_ERROR
Si la operación es exitosa.
other
Otros códigos de error específicos de la plataforma o de Weave que indiquen que se produjo un error que impedía la decodificación del TLV

DecodeTLV

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

Decodifica el contenido del búfer de datos de TLV proporcionado en un objeto descriptor de dispositivo de Weave.

Detalles
Parámetros
[in] data
Un puntero para un búfer que contiene datos del descriptor de dispositivo de Weave codificados en texto.
[in] dataLen
Es la longitud del búfer proporcionado.
[out] outDesc
Es una referencia al objeto Descriptor de dispositivo que se propagará.
Valores que se muestran
WEAVE_ERROR_WRONG_TLV_TYPE
Si no es la descripción del dispositivo TLV,
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
Si se encuentran más datos de TLV después de la descripción del dispositivo,
WEAVE_NO_ERROR
Si la operación es exitosa.
other
Otros códigos de error específicos de la plataforma o de Weave que indiquen que se produjo un error que impedía la codificación del TLV

DecodeTLV

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

Decodifica la descripción del dispositivo con el TLVReader previamente inicializado.

Detalles
Parámetros
[in] reader
Es una referencia al TLVReader inicializado de forma previa.
[out] outDesc
Es una referencia al objeto Descriptor de dispositivo que se propagará.
Valores que se muestran
WEAVE_ERROR_INVALID_TLV_ELEMENT
Si se encuentra información de descripción del dispositivo no válida en los datos de TLV,
WEAVE_NO_ERROR
Si la operación es exitosa.
other
Otros códigos de error específicos de la plataforma o de Weave que indiquen que se produjo un error que impidió la decodificación del TLV

DecodeText

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

Decodifica el contenido del búfer de datos de texto proporcionado en un objeto descriptor de dispositivo de Weave.

Detalles
Parámetros
[in] data
Un puntero para un búfer que contiene datos del descriptor de dispositivo de Weave codificados en texto.
[in] dataLen
Es la longitud del búfer proporcionado.
[out] outDesc
Es una referencia al objeto Descriptor de dispositivo que se propagará.
Valores que se muestran
WEAVE_ERROR_UNSUPPORTED_DEVICE_DESCRIPTOR_VERSION
Si la versión de datos codificados no es compatible.
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Si los datos codificados no tienen el formato correcto.
WEAVE_ERROR_INCORRECT_STATE
Si el decodificador encuentra un estado incoherente.
WEAVE_ERROR_BUFFER_TOO_SMALL
Si se alcanza el final del búfer durante la decodificación.
WEAVE_NO_ERROR
Si la operación es exitosa.

EncodeTLV

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

Codifica el descriptor de dispositivo proporcionado como TLV de Weave escrito en el búfer proporcionado.

Detalles
Parámetros
[in] desc
Es una referencia al descriptor de dispositivo de Weave para codificar.
[out] buf
Un puntero a un búfer en el que se escribirá el texto codificado.
[in] bufLen
Es la longitud del búfer proporcionado.
[out] outEncodedLen
Una referencia a la variable de longitud que se reemplazará con el número de caracteres escritos en el búfer.
Valores que se muestran
WEAVE_NO_ERROR
Si la operación es exitosa.
other
Otros códigos de error específicos de la plataforma o de Weave que indiquen que se produjo un error que impedía la codificación del TLV

EncodeTLV

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

Codifica el descriptor de dispositivo proporcionado como TLV de Weave escrito con el objeto TLVWriter previamente inicializado proporcionado.

Se usa para agregar la descripción del dispositivo a una salida de TLV más grande.

Detalles
Parámetros
[in] desc
Es una referencia al descriptor de dispositivo de Weave para codificar.
[in] writer
Es una referencia al objeto TLVWriter inicializado previamente que se usará.
Valores que se muestran
WEAVE_NO_ERROR
Si la operación es exitosa.
other
Otros códigos de error específicos de la plataforma o de Weave que indiquen que se produjo un error que impedía la codificación del TLV

EncodeText

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

Codifica el descriptor de dispositivo proporcionado como texto escrito en el búfer proporcionado.

Detalles
Parámetros
[in] desc
Es una referencia al descriptor de dispositivo de Weave para codificar.
[out] buf
Un puntero a un búfer en el que se escribirá el texto codificado.
[in] bufLen
Es la longitud del búfer proporcionado.
[out] outEncodedLen
Una referencia a la variable de longitud que se reemplazará con el número de caracteres escritos en el búfer.
Valores que se muestran
WEAVE_ERROR_BUFFER_TOO_SMALL
Si el búfer proporcionado es demasiado pequeño para la descripción de texto generada.
WEAVE_ERROR_INVALID_ARGUMENT
Si un campo descriptor no es válido.
WEAVE_NO_ERROR
Si la operación es exitosa.

IsZeroBytes

bool IsZeroBytes(
  const uint8_t *buf,
  uint32_t len
)

Verifica si el búfer especificado solo contiene ceros.

Detalles
Parámetros
[in] buf
Un puntero para un búfer.
[in] len
Es la longitud del búfer.
Valores que se muestran
TRUE
Si el búfer contiene solo ceros.
FALSE
Si el búfer contiene valores distintos de cero.