nl::Weave::Perfiles::Descripción del dispositivo: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 del dispositivo.
@182{
  kFlag_IsRendezvousWiFiESSIDSuffix = 0x01
}
enum
Definiciones de campos de marcas.

Atributos públicos

Day
uint8_t
Día del fabricante del dispositivo (0 = no presente)
DeviceFeatures
uint32_t
Campo de bits que indica la compatibilidad con funciones específicas del dispositivo.
DeviceId
uint64_t
ID del dispositivo de Weave (0 = no está presente)
FabricId
uint64_t
ID de tejido de Weave al que pertenece el dispositivo (0 = no 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 (finalización de NUL, longitud 0 = no presente)
PairingCompatibilityVersionMajor
uint16_t
Se utiliza la versión principal de compatibilidad con software de vinculación de dispositivos.
PairingCompatibilityVersionMinor
uint16_t
Versión menor de compatibilidad con 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 de la interfaz Wi-Fi principal (big-endian, todos los ceros = no está presente)
ProductId
uint16_t
Código de producto del dispositivo (0 = no presente)
ProductRevision
uint16_t
Revisión del producto del dispositivo (0 = no presente)
RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]
char
ESSID de la red de conexión Wi-Fi del dispositivo (no se finalizó NUL, 0 longitud = no presente)
SerialNumber[kMaxSerialNumberLength+1]
char
Número de serie del dispositivo (finalización de NUL, longitud 0 = no presente)
SoftwareVersion[kMaxSoftwareVersionLength+1]
char
Versión activa de software (terminación de NUL, longitud 0 = no presente)
VendorId
uint16_t
Código de proveedor del dispositivo (0 = no presente)
Year
uint16_t
Año de fabricación del dispositivo (intervalo 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 dispositivos de Weave.
DecodeTLV(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Decodifica el contenido del búfer de datos TLV proporcionado en un objeto descriptor de dispositivos de Weave.
DecodeTLV(nl::Weave::TLV::TLVReader & reader, WeaveDeviceDescriptor & outDesc)
Decodifica la descripción del dispositivo con el TLVReader predefinido previamente.
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 dispositivos de Weave.
EncodeTLV(const WeaveDeviceDescriptor & desc, uint8_t *buf, uint32_t bufLen, uint32_t & outEncodedLen)
Codifica el descriptor de dispositivo proporcionado como Weave TLV 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 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.

Properties
kMaxPairingCodeLength

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

kMaxRendezvousWiFiESSID

ESSID de Wi-Fi máximo para la longitud de la ubicación.

kMaxSerialNumberLength

Longitud máxima de los números de serie.

kMaxSoftwareVersionLength

Longitud máxima de la versión de software

@181

 @181

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

Properties
kFeature_HomeAlarmLinkCapable

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

kFeature_LinePowered

Indica que un dispositivo requiere alimentación de línea.

@182

 @182

Definiciones de campos de marcas.

Properties
kFlag_IsRendezvousWiFiESSIDSuffix

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

Atributos públicos

Día

uint8_t Day

Día del fabricante del dispositivo (0 = no presente)

Funciones del dispositivo

uint32_t DeviceFeatures

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

DeviceId

uint64_t DeviceId

ID del dispositivo de Weave (0 = no está presente)

ID de Fabric

uint64_t FabricId

ID de tejido de Weave al que pertenece el dispositivo (0 = no presente)

Marcas

uint8_t Flags

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

Fecha de fabricación

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

Mes

uint8_t Month

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

Código de vinculación

char PairingCode[kMaxPairingCodeLength+1]

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

PairingCompatibilityVersionMajor

uint16_t PairingCompatibilityVersionMajor

Se utiliza la versión principal de compatibilidad con software de vinculación de dispositivos.

PairingCompatibilityVersionMinor

uint16_t PairingCompatibilityVersionMinor

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

Dirección MAC0802154MAC

uint8_t Primary802154MACAddress[8]

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

DirecciónWi-FiPrincipal

uint8_t PrimaryWiFiMACAddress[6]

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

ProductId

uint16_t ProductId

Código de producto del dispositivo (0 = no presente)

Revisión del producto

uint16_t ProductRevision

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

RendezvousWiFiESSID

char RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]

ESSID de la red de conexión Wi-Fi del dispositivo (no se finalizó NUL, 0 longitud = no presente)

Número de serie

char SerialNumber[kMaxSerialNumberLength+1]

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

Versión de software

char SoftwareVersion[kMaxSoftwareVersionLength+1]

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

ID de proveedor

uint16_t VendorId

Código de proveedor del dispositivo (0 = no presente)

Año

uint16_t Year

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

Funciones públicas

Borrar

void Clear(
  void
)

Borra la descripción del dispositivo.

Dispositivo Weave.Descriptor

 WeaveDeviceDescriptor(
  void
)

Funciones estáticas públicas

Decodifica

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 dispositivos de Weave.

Detalles
Parámetros
[in] data
Un puntero para un búfer que contiene datos de descriptores de dispositivos de Weave codificados en TLV.
[in] dataLen
La longitud del búfer proporcionado.
[out] outDesc
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 se realiza correctamente
other
Otros códigos de error de Weave o específicos de la plataforma que indican que se produjo un error que impidió la decodificación del TLV

Decodificación de TLV

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 descriptor de dispositivos de Weave.

Detalles
Parámetros
[in] data
Un puntero para un búfer que contiene datos de descriptor de dispositivo de Weave codificados.
[in] dataLen
La longitud del búfer proporcionado.
[out] outDesc
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 se realiza correctamente
other
Otros códigos de error de Weave o específicos de la plataforma que indican que se produjo un error que impidió la codificación del TLV

Decodificación de TLV

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

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

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

Decodificación de texto

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 dispositivos de Weave.

Detalles
Parámetros
[in] data
Un puntero para un búfer que contiene datos de descriptor de dispositivo de Weave codificados.
[in] dataLen
La longitud del búfer proporcionado.
[out] outDesc
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 codificada 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 se realiza correctamente

CodTLV

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

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

Detalles
Parámetros
[in] desc
Referencia al descriptor de dispositivos de Weave para codificar.
[out] buf
Un puntero para 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 la cantidad de caracteres escritos en el búfer.
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realiza correctamente
other
Otros códigos de error de Weave o específicos de la plataforma que indican que se produjo un error que impidió la codificación del TLV

CodTLV

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 previamente inicializado proporcionado.

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

Detalles
Parámetros
[in] desc
Referencia al descriptor de dispositivos de Weave para codificar.
[in] writer
Una referencia al objeto TLVWriter previamente inicializado que se usará.
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realiza correctamente
other
Otros códigos de error de Weave o específicos de la plataforma que indican que se produjo un error que impidió la codificación del TLV

Texto codificado

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
Referencia al descriptor de dispositivos de Weave para codificar.
[out] buf
Un puntero para 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 la cantidad 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 de descriptor no es válido.
WEAVE_NO_ERROR
Si la operación se realiza correctamente

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