En Google, luchamos por la equidad racial de la comunidad negra. Más información

nl :: Tejido:: Perfiles: Descripción del aparato:: 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
}
enumeración
Define la longitud máxima de algunos atributos.
@181 {
kFeature_HomeAlarmLinkCapable = 0x00000001,
kFeature_LinePowered = 0x00000002
}
enumeración
Indicadores de funciones que indican las capacidades específicas del dispositivo.
@182 {
kFlag_IsRendezvousWiFiESSIDSuffix = 0x01
}
enumeración
Definiciones de campo de banderas.

Atributos públicos

Day
uint8_t
Día de fabricación 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 tejido (0 = no presente)
FabricId
uint64_t
ID del tejido 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 emparejamiento del dispositivo (terminado en NUL, longitud 0 = no presente)
PairingCompatibilityVersionMajor
uint16_t
Versión de compatibilidad del software de emparejamiento de dispositivos principales.
PairingCompatibilityVersionMinor
uint16_t
Versión menor de compatibilidad del software de emparejamiento de dispositivos.
Primary802154MACAddress [8]
uint8_t
Dirección MAC para la interfaz primaria 802.15.4 (big-endian, todos ceros = no presente)
PrimaryWiFiMACAddress [6]
uint8_t
Dirección MAC para la interfaz WiFi principal (big-endian, todos ceros = no 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 para la red de encuentro WiFi del dispositivo (NUL terminado, longitud 0 = no presente)
SerialNumber [kMaxSerialNumberLength+1]
char
Número de serie del dispositivo (terminado en NUL, longitud 0 = no presente)
SoftwareVersion [kMaxSoftwareVersionLength+1]
char
Versión de software activa (terminada en 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 (rango válido 2001 - 2099)

Funciones publicas

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 tejido.
DecodeTLV (const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Decodifica el contenido de la proporcionada TLV memoria intermedia de datos en un objeto Descriptor de Dispositivo de la armadura.
DecodeTLV (nl::Weave::TLV::TLVReader & reader, WeaveDeviceDescriptor & outDesc)
Decodifica la descripción del dispositivo utilizando 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 Descriptor de dispositivo de tejido.
EncodeTLV (const WeaveDeviceDescriptor & desc, uint8_t *buf, uint32_t bufLen, uint32_t & outEncodedLen)
Codifica el descriptor de dispositivo proporcionado como armadura de TLV escrito al tampón suministrado.
EncodeTLV (const WeaveDeviceDescriptor & desc,nl::Weave::TLV::TLVWriter & writer)
Codifica el descriptor de dispositivo proporcionado como armadura de TLV escrito usando la pre-inicializado objeto TLVWriter 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
Compruebe si el búfer especificado contiene solo ceros.

Tipos públicos

@ 180

 @180

Define la longitud máxima de algunos atributos.

Propiedades
kMaxPairingCodeLength

Longitud máxima del código de emparejamiento.

kMaxRendezvousWiFiESSID

ESSID WiFi máximo para la duración de la cita.

kMaxSerialNumberLength

Longitud máxima del número de serie.

kMaxSoftwareVersionLength

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

@ 181

 @181

Indicadores de funciones que indican las capacidades específicas del 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 de línea.

@ 182

 @182

Definiciones de campo de banderas.

Propiedades
kFlag_IsRendezvousWiFiESSIDSuffix

Indica que el valor RendezvousWiFiESSID es una cadena de sufijo que aparece al final del ESSID de la red de encuentro WiFi del dispositivo.

Atributos públicos

Día

uint8_t Day

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

DeviceFeatures

uint32_t DeviceFeatures

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

ID del dispositivo

uint64_t DeviceId

ID del dispositivo de tejido (0 = no presente)

FabricId

uint64_t FabricId

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

Banderas

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 emparejamiento

char PairingCode[kMaxPairingCodeLength+1]

Código de emparejamiento del dispositivo (terminado en NUL, longitud 0 = no presente)

EmparejamientoCompatibilidadVersiónMayor

uint16_t PairingCompatibilityVersionMajor

Versión de compatibilidad del software de emparejamiento de dispositivos principales.

EmparejamientoCompatibilidadVersiónMinor

uint16_t PairingCompatibilityVersionMinor

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

Primary802154MACAddress

uint8_t Primary802154MACAddress[8]

Dirección MAC para la interfaz primaria 802.15.4 (big-endian, todos ceros = no presente)

PrimaryWiFiMACAddress

uint8_t PrimaryWiFiMACAddress[6]

Dirección MAC para la interfaz WiFi principal (big-endian, todos ceros = no presente)

ID del Producto

uint16_t ProductId

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

ProductRevision

uint16_t ProductRevision

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

RendezvousWiFiESSID

char RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]

ESSID para la red de encuentro WiFi del dispositivo (NUL terminado, longitud 0 = no presente)

Número de serie

char SerialNumber[kMaxSerialNumberLength+1]

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

Versión del software

char SoftwareVersion[kMaxSoftwareVersionLength+1]

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

VendorId

uint16_t VendorId

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

Año

uint16_t Year

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

Funciones publicas

Claro

void Clear(
  void
)

Borra la descripción del dispositivo.

WeaveDeviceDescriptor

 WeaveDeviceDescriptor(
  void
)

Funciones estáticas públicas

Descodificar

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

Detalles
Parámetros
[in] data
Un puntero a una que contiene texto del búfer o TLV datos codificados descriptor de dispositivos de la armadura.
[in] dataLen
La longitud del búfer proporcionado.
[out] outDesc
Una referencia al objeto Descriptor de dispositivo que se va a completar.
Valores devueltos
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Si el búfer proporcionado no es válido.
WEAVE_NO_ERROR
Sobre el éxito.
other
Otros códigos de error de la armadura o de la plataforma-específicos que indican que se produjo un error la prevención de la decodificación de la TLV .

Decodificar TLV

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

Decodifica el contenido de la proporcionada TLV memoria intermedia de datos en un objeto Descriptor de Dispositivo de la armadura.

Detalles
Parámetros
[in] data
Un puntero a un búfer que contiene datos de descriptor de dispositivo de tejido codificados en texto.
[in] dataLen
La longitud del búfer proporcionado.
[out] outDesc
Una referencia al objeto Descriptor de dispositivo que se va a completar.
Valores devueltos
WEAVE_ERROR_WRONG_TLV_TYPE
Si esto no es Device Description TLV .
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
Si más TLV se encuentran datos después de la descripción de dispositivo.
WEAVE_NO_ERROR
Sobre el éxito.
other
Otros códigos de error de la armadura o de la plataforma-específicos que indican que se produjo un error la prevención de la codificación del TLV .

Decodificar TLV

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

Decodifica la descripción del dispositivo utilizando el TLVReader preinicializado proporcionado.

Detalles
Parámetros
[in] reader
Una referencia al TLVReader preinicializado.
[out] outDesc
Una referencia al objeto Descriptor de dispositivo que se va a completar.
Valores devueltos
WEAVE_ERROR_INVALID_TLV_ELEMENT
Si no es válido Descripción del Dispositivo información se encuentra en el TLV de datos.
WEAVE_NO_ERROR
Sobre el éxito.
other
Otros códigos de error armadura o plataforma específicos que indican que se ha producido un error que impide 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 tejido.

Detalles
Parámetros
[in] data
Un puntero a un búfer que contiene datos de descriptor de dispositivo de tejido codificados en texto.
[in] dataLen
La longitud del búfer proporcionado.
[out] outDesc
Una referencia al objeto Descriptor de dispositivo que se va a completar.
Valores devueltos
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 están formateados correctamente.
WEAVE_ERROR_INCORRECT_STATE
Si el decodificador encuentra un estado inconsistente.
WEAVE_ERROR_BUFFER_TOO_SMALL
Si se alcanza el final del búfer durante la decodificación.
WEAVE_NO_ERROR
Sobre el éxito.

Codificar TLV

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

Codifica el descriptor de dispositivo proporcionado como armadura de TLV escrito al tampón suministrado.

Detalles
Parámetros
[in] desc
Una referencia al descriptor de dispositivo de tejido para codificar.
[out] buf
Un puntero a un búfer donde se escribirá el texto codificado.
[in] bufLen
La longitud del búfer suministrado.
[out] outEncodedLen
Una referencia a la variable de longitud que se sobrescribirá con el número de caracteres escritos en el búfer.
Valores devueltos
WEAVE_NO_ERROR
Sobre el éxito.
other
Otros códigos de error de la armadura o de la plataforma-específicos que indican que se produjo un error la prevención de la codificación del TLV .

Codificar TLV

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

Codifica el descriptor de dispositivo proporcionado como armadura de TLV escrito usando la pre-inicializado objeto TLVWriter proporcionado.

Esto se utiliza para añadir la descripción del dispositivo a mayor TLV de salida.

Detalles
Parámetros
[in] desc
Una referencia al descriptor de dispositivo de tejido para codificar.
[in] writer
Una referencia al objeto TLVWriter preinicializado que se utilizará.
Valores devueltos
WEAVE_NO_ERROR
Sobre el éxito.
other
Otros códigos de error de la armadura o de la plataforma-específicos que indican que se produjo un error la prevención de 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 tejido para codificar.
[out] buf
Un puntero a un búfer donde se escribirá el texto codificado.
[in] bufLen
La longitud del búfer suministrado.
[out] outEncodedLen
Una referencia a la variable de longitud que se sobrescribirá con el número de caracteres escritos en el búfer.
Valores devueltos
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
Sobre el éxito.

IsZeroBytes

bool IsZeroBytes(
  const uint8_t *buf,
  uint32_t len
)

Compruebe si el búfer especificado contiene solo ceros.

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