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

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

Contém informações descritivas sobre um dispositivo Weave.

Resumo

Construtores e destruidores

WeaveDeviceDescriptor(void)

Tipos públicos

@180{
  kMaxSerialNumberLength = 32,
  kMaxPairingCodeLength = 16,
  kMaxRendezvousWiFiESSID = 32,
  kMaxSoftwareVersionLength = WEAVE_CONFIG_MAX_SOFTWARE_VERSION_LENGTH
}
enum
Define o comprimento máximo de alguns atributos.
@181{
  kFeature_HomeAlarmLinkCapable = 0x00000001,
  kFeature_LinePowered = 0x00000002
}
enum
Sinalizações de recursos que indicam capacidades específicas do dispositivo.
@182{
  kFlag_IsRendezvousWiFiESSIDSuffix = 0x01
}
enum
Definições dos campos de sinalizações.

Atributos públicos

Day
uint8_t
Dia de fabricação do dispositivo (0 = ausente)
DeviceFeatures
uint32_t
Campo de bit indicando suporte para recursos específicos do dispositivo.
DeviceId
uint64_t
ID do dispositivo do Weave (0 = ausente)
FabricId
uint64_t
ID do tecido do Weave a que o dispositivo pertence (0 = ausente)
Flags
uint8_t
Campo de bit contendo informações adicionais sobre o dispositivo.
ManufacturingDate
struct nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::@183
Month
uint8_t
Mês de fabricação do dispositivo (1 = janeiro)
PairingCode[kMaxPairingCodeLength+1]
char
Código de pareamento do dispositivo (NUL encerrado, comprimento 0 = ausente)
PairingCompatibilityVersionMajor
uint16_t
Versão principal de compatibilidade do software de pareamento de dispositivos.
PairingCompatibilityVersionMinor
uint16_t
Versão secundária de compatibilidade do software de pareamento de dispositivos.
Primary802154MACAddress[8]
uint8_t
Endereço MAC da interface 802.15.4 primária (big-endian, todos os zeros = ausente)
PrimaryWiFiMACAddress[6]
uint8_t
Endereço MAC da interface Wi-Fi principal (big-endian, todos os zeros = ausente)
ProductId
uint16_t
Código do produto do dispositivo (0 = ausente)
ProductRevision
uint16_t
Revisão do produto do dispositivo (0 = ausente)
RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]
char
ESSID para a rede Wi-Fi do dispositivo (NUL encerrado, 0 comprimento = ausente)
SerialNumber[kMaxSerialNumberLength+1]
char
Número de série do dispositivo (com terminação NUL, 0 comprimento = ausente)
SoftwareVersion[kMaxSoftwareVersionLength+1]
char
Versão ativa do software (NUL encerrado, 0 comprimento = ausente)
VendorId
uint16_t
Código do fornecedor do dispositivo (0 = ausente)
Year
uint16_t
Ano de fabricação do dispositivo (intervalo válido de 2001 a 2099)

Funções públicas

Clear(void)
void
Limpa a descrição do dispositivo.

Funções estáticas públicas

Decode(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Decodifica o conteúdo do buffer de dados fornecido em um objeto Weave Device Descriptor.
DecodeTLV(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Decodifica o conteúdo do buffer de dados TLV fornecido em um objeto do descritor do dispositivo Weave.
DecodeTLV(nl::Weave::TLV::TLVReader & reader, WeaveDeviceDescriptor & outDesc)
Decodifica a descrição do dispositivo usando o TLVReader pré-inicializado fornecido.
DecodeText(const char *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Decodifica o conteúdo do buffer de dados de texto fornecido em um objeto Weave Device Descriptor.
EncodeTLV(const WeaveDeviceDescriptor & desc, uint8_t *buf, uint32_t bufLen, uint32_t & outEncodedLen)
Codifica o descritor de dispositivo fornecido como TLV do Weave gravado no buffer fornecido.
EncodeTLV(const WeaveDeviceDescriptor & desc, nl::Weave::TLV::TLVWriter & writer)
Codifica o descritor de dispositivo fornecido como TLV do Weave escrito usando o objeto TLVWriter pré-inicializado fornecido.
EncodeText(const WeaveDeviceDescriptor & desc, char *buf, uint32_t bufLen, uint32_t & outEncodedLen)
Codifica o descritor de dispositivo fornecido como texto escrito no buffer fornecido.
IsZeroBytes(const uint8_t *buf, uint32_t len)
bool
Verifica se o buffer especificado contém apenas zeros.

Tipos públicos

a 180

 @180

Define o comprimento máximo de alguns atributos.

Propriedades
kMaxPairingCodeLength

Tamanho máximo do código de pareamento.

kMaxRendezvousWiFiESSID

ESSID máximo do Wi-Fi para a duração do rendezvous.

kMaxSerialNumberLength

Comprimento máximo do número de série.

kMaxSoftwareVersionLength

Tamanho máximo da versão do software.

@181

 @181

Sinalizações de recursos que indicam capacidades específicas do dispositivo.

Propriedades
kFeature_HomeAlarmLinkCapable

Indica um Nest Protect compatível com conexão a um painel de alarme residencial.

kFeature_LinePowered

Indica um dispositivo que precisa de energia na linha.

@182

 @182

Definições dos campos de sinalizações.

Propriedades
kFlag_IsRendezvousWiFiESSIDSuffix

Indica que o valor do RendezvousWiFiESSID é uma string de sufixo que aparece ao final do ESSID da rede de encontro Wi-Fi do dispositivo.

Atributos públicos

Dia

uint8_t Day

Dia de fabricação do dispositivo (0 = ausente)

DeviceFeatures

uint32_t DeviceFeatures

Campo de bit indicando suporte para recursos específicos do dispositivo.

DeviceId

uint64_t DeviceId

ID do dispositivo do Weave (0 = ausente)

FabricId

uint64_t FabricId

ID do tecido do Weave a que o dispositivo pertence (0 = ausente)

Sinalizações

uint8_t Flags

Campo de bit contendo informações adicionais sobre o dispositivo.

ManufacturingDate

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

Mês

uint8_t Month

Mês de fabricação do dispositivo (1 = janeiro)

PairingCode

char PairingCode[kMaxPairingCodeLength+1]

Código de pareamento do dispositivo (NUL encerrado, comprimento 0 = ausente)

PairingCompatibilityVersionMajor

uint16_t PairingCompatibilityVersionMajor

Versão principal de compatibilidade do software de pareamento de dispositivos.

PairingCompatibilityVersionMinor

uint16_t PairingCompatibilityVersionMinor

Versão secundária de compatibilidade do software de pareamento de dispositivos.

Endereço MAC 802154 principal

uint8_t Primary802154MACAddress[8]

Endereço MAC da interface 802.15.4 primária (big-endian, todos os zeros = ausente)

PrimaryWiFiMACAddress

uint8_t PrimaryWiFiMACAddress[6]

Endereço MAC da interface Wi-Fi principal (big-endian, todos os zeros = ausente)

ProductId

uint16_t ProductId

Código do produto do dispositivo (0 = ausente)

ProductRevision

uint16_t ProductRevision

Revisão do produto do dispositivo (0 = ausente)

RendezvousWiFiESSID

char RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]

ESSID para a rede Wi-Fi do dispositivo (NUL encerrado, 0 comprimento = ausente)

SerialNumber

char SerialNumber[kMaxSerialNumberLength+1]

Número de série do dispositivo (com terminação NUL, 0 comprimento = ausente)

SoftwareVersion

char SoftwareVersion[kMaxSoftwareVersionLength+1]

Versão ativa do software (NUL encerrado, 0 comprimento = ausente)

VendorId

uint16_t VendorId

Código do fornecedor do dispositivo (0 = ausente)

Ano

uint16_t Year

Ano de fabricação do dispositivo (intervalo válido de 2001 a 2099)

Funções públicas

Limpar

void Clear(
  void
)

Limpa a descrição do dispositivo.

WeaveDeviceDescriptor

 WeaveDeviceDescriptor(
  void
)

Funções estáticas públicas

Decode

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

Decodifica o conteúdo do buffer de dados fornecido em um objeto Weave Device Descriptor.

Detalhes
Parâmetros
[in] data
Um ponteiro para um buffer que contém texto ou dados do descritor do dispositivo do Weave codificados em TLV.
[in] dataLen
O comprimento do buffer fornecido.
[out] outDesc
Uma referência ao objeto do descritor do dispositivo a ser preenchido.
Valores de retorno
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Se o buffer fornecido for inválido.
WEAVE_NO_ERROR
Se a operação for bem-sucedida.
other
Outros códigos de erro do Weave ou específicos da plataforma indicando que ocorreu um erro que impede a decodificação do TLV (link em inglês).

DecodeTLV

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

Decodifica o conteúdo do buffer de dados TLV fornecido em um objeto do descritor do dispositivo Weave.

Detalhes
Parâmetros
[in] data
Um ponteiro para um buffer que contém dados do descritor do dispositivo do Weave codificados em texto.
[in] dataLen
O comprimento do buffer fornecido.
[out] outDesc
Uma referência ao objeto do descritor do dispositivo a ser preenchido.
Valores de retorno
WEAVE_ERROR_WRONG_TLV_TYPE
Se esse não for o TLV da descrição do dispositivo.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
Se mais dados TLV forem encontrados após a descrição do dispositivo.
WEAVE_NO_ERROR
Se a operação for bem-sucedida.
other
Outros códigos de erro do Weave ou específicos da plataforma indicando que ocorreu um erro que impede a codificação do TLV.

DecodeTLV

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

Decodifica a descrição do dispositivo usando o TLVReader pré-inicializado fornecido.

Detalhes
Parâmetros
[in] reader
Uma referência ao TLVReader pré-inicializado.
[out] outDesc
Uma referência ao objeto do descritor do dispositivo a ser preenchido.
Valores de retorno
WEAVE_ERROR_INVALID_TLV_ELEMENT
Se informações inválidas de descrição do dispositivo forem encontradas nos dados TLV.
WEAVE_NO_ERROR
Se a operação for bem-sucedida.
other
Outros códigos de erro do Weave ou específicos da plataforma indicando que ocorreu um erro que impediu a decodificação do TLV (link em inglês).

DecodeText

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

Decodifica o conteúdo do buffer de dados de texto fornecido em um objeto do descritor do dispositivo Weave.

Detalhes
Parâmetros
[in] data
Um ponteiro para um buffer que contém dados do descritor do dispositivo do Weave codificados em texto.
[in] dataLen
O comprimento do buffer fornecido.
[out] outDesc
Uma referência ao objeto do descritor do dispositivo a ser preenchido.
Valores de retorno
WEAVE_ERROR_UNSUPPORTED_DEVICE_DESCRIPTOR_VERSION
Se a versão dos dados codificados não for compatível.
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Se os dados codificados não estiverem formatados corretamente.
WEAVE_ERROR_INCORRECT_STATE
Se um estado inconsistente for encontrado pelo decodificador.
WEAVE_ERROR_BUFFER_TOO_SMALL
Se o fim do buffer for atingido durante a decodificação.
WEAVE_NO_ERROR
Se a operação for bem-sucedida.

EncodeTLV

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

Codifica o descritor de dispositivo fornecido como TLV do Weave gravado no buffer fornecido.

Detalhes
Parâmetros
[in] desc
Uma referência ao descritor do dispositivo Weave para codificação.
[out] buf
Um ponteiro para um buffer em que o texto codificado será gravado.
[in] bufLen
O comprimento do buffer fornecido.
[out] outEncodedLen
Uma referência à variável de comprimento que será substituída pelo número de caracteres gravados no buffer.
Valores de retorno
WEAVE_NO_ERROR
Se a operação for bem-sucedida.
other
Outros códigos de erro do Weave ou específicos da plataforma indicando que ocorreu um erro que impede a codificação do TLV.

EncodeTLV

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

Codifica o descritor de dispositivo fornecido como TLV do Weave escrito usando o objeto TLVWriter pré-inicializado fornecido.

Ele é usado para adicionar a descrição do dispositivo a uma saída TLV maior.

Detalhes
Parâmetros
[in] desc
Uma referência ao descritor do dispositivo Weave para codificação.
[in] writer
Uma referência ao objeto TLVWriter pré-inicializado a ser usado.
Valores de retorno
WEAVE_NO_ERROR
Se a operação for bem-sucedida.
other
Outros códigos de erro do Weave ou específicos da plataforma indicando que ocorreu um erro que impede a codificação do TLV.

EncodeText

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

Codifica o descritor de dispositivo fornecido como texto escrito no buffer fornecido.

Detalhes
Parâmetros
[in] desc
Uma referência ao descritor do dispositivo Weave para codificação.
[out] buf
Um ponteiro para um buffer em que o texto codificado será gravado.
[in] bufLen
O comprimento do buffer fornecido.
[out] outEncodedLen
Uma referência à variável de comprimento que será substituída pelo número de caracteres gravados no buffer.
Valores de retorno
WEAVE_ERROR_BUFFER_TOO_SMALL
Se o buffer fornecido for muito pequeno para a descrição do texto gerado.
WEAVE_ERROR_INVALID_ARGUMENT
Se um campo descritor for inválido.
WEAVE_NO_ERROR
Se a operação for bem-sucedida.

IsZeroBytes

bool IsZeroBytes(
  const uint8_t *buf,
  uint32_t len
)

Verifica se o buffer especificado contém apenas zeros.

Detalhes
Parâmetros
[in] buf
Um ponteiro para um buffer.
[in] len
O comprimento do buffer.
Valores de retorno
TRUE
Se o buffer contém apenas zeros.
FALSE
Se o buffer contiver valores diferentes de zero.