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

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

Contiene información descriptiva sobre un dispositivo 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 capacidades de dispositivos específicos
@182{
  kFlag_IsRendezvousWiFiESSIDSuffix = 0x01
}
enum
Definiciones de los campos de marcas

Atributos públicos

Day
uint8_t
Día de fabricación del dispositivo (0 = ausente)
DeviceFeatures
uint32_t
Campo de bits que indica la 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 = ausente)
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 de dispositivos (finalizado por NUL, longitud de 0 = ausente)
PairingCompatibilityVersionMajor
uint16_t
Versión de compatibilidad de software de vinculación de dispositivos principal.
PairingCompatibilityVersionMinor
uint16_t
Versión de compatibilidad de software de vinculación de dispositivos menor.
Primary802154MACAddress[8]
uint8_t
Dirección MAC para la interfaz principal 802.15.4 (big-endian, todos los ceros = ausente)
PrimaryWiFiMACAddress[6]
uint8_t
Dirección MAC de la interfaz Wi-Fi principal (big-endian, todos los ceros = ausente)
ProductId
uint16_t
Código de producto del dispositivo (0 = ausente)
ProductRevision
uint16_t
Revisión del producto del dispositivo (0 = ausente)
RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]
char
ESSID para la red de reunión con Wi-Fi del dispositivo (terminado por NUL, 0 de longitud = ausente)
SerialNumber[kMaxSerialNumberLength+1]
char
Número de serie del dispositivo (terminado con NUL, 0 longitud = ausente)
SoftwareVersion[kMaxSoftwareVersionLength+1]
char
Versión activa de software (finalizada por NUL, longitud 0 = no presente)
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 Weave Device Descriptor.
DecodeTLV(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Decodifica el contenido del búfer de datos TLV proporcionado en un objeto Weave Device Descriptor.
DecodeTLV(nl::Weave::TLV::TLVReader & reader, WeaveDeviceDescriptor & outDesc)
Decodifica la descripción del dispositivo con el TLVReader preinicializado proporcionado.
DecodeText(const char *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Decodifica el contenido del búfer de datos de texto proporcionado en un objeto Weave Device Descriptor.
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 Weave TLV escrito con el objeto TLVWriter preinicializado 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
Comprueba 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 máxima 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 capacidades de dispositivos específicos

Propiedades
kFeature_HomeAlarmLinkCapable

Indica un Nest Protect que admite la conexión a un panel de alarma para el hogar.

kFeature_LinePowered

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

@182

 @182

Definiciones de los campos de marcas

Propiedades
kFlag_IsRendezvousWiFiESSIDSuffix

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

Atributos públicos

Día

uint8_t Day

Día de fabricación del dispositivo (0 = ausente)

DeviceFeatures

uint32_t DeviceFeatures

Campo de bits que indica la 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 = ausente)

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 de dispositivos (finalizado por NUL, longitud de 0 = ausente)

PairingCompatibilityVersionMajor

uint16_t PairingCompatibilityVersionMajor

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

PairingCompatibilityVersionMinor

uint16_t PairingCompatibilityVersionMinor

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

MACAddress802154Principal

uint8_t Primary802154MACAddress[8]

Dirección MAC para la interfaz principal 802.15.4 (big-endian, todos los ceros = ausente)

PrimaryWiFiMACAddress

uint8_t PrimaryWiFiMACAddress[6]

Dirección MAC de la interfaz Wi-Fi principal (big-endian, todos los ceros = ausente)

ProductId

uint16_t ProductId

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

ProductRevision

uint16_t ProductRevision

Revisión del producto del dispositivo (0 = ausente)

RendezvousWiFiESSID

char RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]

ESSID para la red de reunión con Wi-Fi del dispositivo (terminado por NUL, 0 de longitud = ausente)

SerialNumber

char SerialNumber[kMaxSerialNumberLength+1]

Número de serie del dispositivo (terminado con NUL, 0 longitud = ausente)

SoftwareVersion

char SoftwareVersion[kMaxSoftwareVersionLength+1]

Versión activa de software (finalizada por NUL, longitud 0 = no presente)

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 Weave Device Descriptor.

Detalles
Parámetros
[in] data
Un puntero a un búfer que contiene texto o datos del descriptor de dispositivos de Weave con codificación TLV.
[in] dataLen
La longitud del búfer proporcionado.
[out] outDesc
Una referencia al objeto Device Descriptor que se propagará.
Valores de retorno
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Si el búfer proporcionado no es válido.
WEAVE_NO_ERROR
Si tiene éxito.
other
Otros códigos de error específicos de la plataforma o de Weave que indican que se produjo un error que impidió 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 TLV proporcionado en un objeto Weave Device Descriptor.

Detalles
Parámetros
[in] data
Un puntero a un búfer que contiene datos del descriptor de dispositivos de Weave con codificación de texto.
[in] dataLen
La longitud del búfer proporcionado.
[out] outDesc
Una referencia al objeto Device Descriptor que se propagará.
Valores de retorno
WEAVE_ERROR_WRONG_TLV_TYPE
Si no se trata de 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 tiene éxito.
other
Otros códigos de error específicos de la plataforma o de Weave que indican que se produjo un error que impidió 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 preinicializado proporcionado.

Detalles
Parámetros
[in] reader
Es una referencia al TLVReader inicializado previamente.
[out] outDesc
Una referencia al objeto Device Descriptor que se propagará.
Valores de retorno
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 tiene éxito.
other
Otros códigos de error específicos de la plataforma o de Weave que indican 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 Weave Device Descriptor.

Detalles
Parámetros
[in] data
Un puntero a un búfer que contiene datos del descriptor de dispositivos de Weave con codificación de texto.
[in] dataLen
La longitud del búfer proporcionado.
[out] outDesc
Una referencia al objeto Device Descriptor que se propagará.
Valores de retorno
WEAVE_ERROR_UNSUPPORTED_DEVICE_DESCRIPTOR_VERSION
Si la versión de los 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 tiene éxito.

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
Una referencia al descriptor de dispositivo de Weave para codificar.
[out] buf
Un puntero para un búfer en el que se escribirá el texto codificado.
[in] bufLen
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 de retorno
WEAVE_NO_ERROR
Si tiene éxito.
other
Otros códigos de error específicos de la plataforma o de Weave que indican que se produjo un error que impidió la codificación del TLV.

EncodeTLV

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

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

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

Detalles
Parámetros
[in] desc
Una referencia al descriptor de dispositivo de Weave para codificar.
[in] writer
Una referencia al objeto TLVWriter preinicializado que se usará.
Valores de retorno
WEAVE_NO_ERROR
Si tiene éxito.
other
Otros códigos de error específicos de la plataforma o de Weave que indican que se produjo un error que impidió 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
Una referencia al descriptor de dispositivo de Weave para codificar.
[out] buf
Un puntero para un búfer en el que se escribirá el texto codificado.
[in] bufLen
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 de retorno
WEAVE_ERROR_BUFFER_TOO_SMALL
Si el búfer proporcionado es demasiado pequeño para la descripción del texto generada.
WEAVE_ERROR_INVALID_ARGUMENT
Si un campo descriptor no es válido.
WEAVE_NO_ERROR
Si tiene éxito.

IsZeroBytes

bool IsZeroBytes(
  const uint8_t *buf,
  uint32_t len
)

Comprueba si el búfer especificado solo contiene ceros.

Detalles
Parámetros
[in] buf
Es un puntero a un búfer.
[in] len
La longitud del búfer.
Valores de retorno
TRUE
Se muestra si el búfer solo contiene ceros.
FALSE
Si el búfer contiene valores distintos de cero.