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

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

Contiene informazioni descrittive su un dispositivo Weave.

Riepilogo

Costruttori e distruttori

WeaveDeviceDescriptor(void)

Tipi pubblici

@180{
  kMaxSerialNumberLength = 32,
  kMaxPairingCodeLength = 16,
  kMaxRendezvousWiFiESSID = 32,
  kMaxSoftwareVersionLength = WEAVE_CONFIG_MAX_SOFTWARE_VERSION_LENGTH
}
enum
Definisce la lunghezza massima di alcuni attributi.
@181{
  kFeature_HomeAlarmLinkCapable = 0x00000001,
  kFeature_LinePowered = 0x00000002
}
enum
Flag di funzionalità che indicano funzionalità specifiche del dispositivo.
@182{
  kFlag_IsRendezvousWiFiESSIDSuffix = 0x01
}
enum
Definizioni dei campi dei flag.

Attributi pubblici

Day
uint8_t
Giorno di produzione del dispositivo (0 = non presente)
DeviceFeatures
uint32_t
Campo di bit che indica il supporto di funzionalità specifiche del dispositivo.
DeviceId
uint64_t
ID dispositivo Weave (0 = non presente)
FabricId
uint64_t
ID del fabric Weave a cui appartiene il dispositivo (0 = non presente)
Flags
uint8_t
Campo di bit contenente informazioni aggiuntive sul dispositivo.
ManufacturingDate
struct nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::@183
Month
uint8_t
Mese di produzione del dispositivo (1 = gennaio)
PairingCode[kMaxPairingCodeLength+1]
char
Codice di accoppiamento del dispositivo (NUL terminato, lunghezza 0 = non presente)
PairingCompatibilityVersionMajor
uint16_t
Versione principale della compatibilità del software di accoppiamento del dispositivo.
PairingCompatibilityVersionMinor
uint16_t
Versione minore della compatibilità del software di accoppiamento del dispositivo.
Primary802154MACAddress[8]
uint8_t
Indirizzo MAC per l'interfaccia 802.15.4 primaria (big-endian, tutti gli zeri = non presente)
PrimaryWiFiMACAddress[6]
uint8_t
Indirizzo MAC per l'interfaccia Wi-Fi principale (big-endian, tutti gli zeri = non presente)
ProductId
uint16_t
Codice prodotto dispositivo (0 = non presente)
ProductRevision
uint16_t
Revisione prodotto dispositivo (0 = non presente)
RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]
char
ESSID per la rete rendezvous Wi-Fi del dispositivo (NUL terminato, lunghezza 0 = non presente)
SerialNumber[kMaxSerialNumberLength+1]
char
Numero di serie del dispositivo (terminato NUL, lunghezza 0 = non presente)
SoftwareVersion[kMaxSoftwareVersionLength+1]
char
Versione software attiva (NUL terminata, lunghezza 0 = non presente)
VendorId
uint16_t
Codice fornitore dispositivo (0 = non presente)
Year
uint16_t
Anno di produzione del dispositivo (intervallo valido 2001 - 2099)

Funzioni pubbliche

Clear(void)
void
Consente di cancellare la descrizione del dispositivo.

Funzioni statiche pubbliche

Decode(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Decodifica i contenuti del buffer dati fornito in un oggetto Weave Device Descriptor.
DecodeTLV(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Decodifica i contenuti del buffer dati TLV fornito in un oggetto Weave Device Descriptor.
DecodeTLV(nl::Weave::TLV::TLVReader & reader, WeaveDeviceDescriptor & outDesc)
Decodifica la descrizione del dispositivo utilizzando il file TLVReader pre-inizializzato fornito.
DecodeText(const char *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Decodifica i contenuti del buffer dei dati di testo fornito in un oggetto Weave Device Descriptor.
EncodeTLV(const WeaveDeviceDescriptor & desc, uint8_t *buf, uint32_t bufLen, uint32_t & outEncodedLen)
Codifica il descrittore del dispositivo fornito come Weave TLV scritto nel buffer fornito.
EncodeTLV(const WeaveDeviceDescriptor & desc, nl::Weave::TLV::TLVWriter & writer)
Codifica il descrittore del dispositivo fornito come Weave TLV scritto utilizzando l'oggetto TLVWriter pre-inizializzato fornito.
EncodeText(const WeaveDeviceDescriptor & desc, char *buf, uint32_t bufLen, uint32_t & outEncodedLen)
Codifica il descrittore del dispositivo fornito come testo scritto nel buffer fornito.
IsZeroBytes(const uint8_t *buf, uint32_t len)
bool
Verifica se il buffer specificato contiene solo zeri.

Tipi pubblici

@180

 @180

Definisce la lunghezza massima di alcuni attributi.

Proprietà
kMaxPairingCodeLength

Lunghezza massima del codice di accoppiamento.

kMaxRendezvousWiFiESSID

ESSID Wi-Fi massimo per durata Rendezvous.

kMaxSerialNumberLength

Lunghezza massima del numero di serie.

kMaxSoftwareVersionLength

Lunghezza massima della versione software.

@181

 @181

Flag di funzionalità che indicano funzionalità specifiche del dispositivo.

Proprietà
kFeature_HomeAlarmLinkCapable

Indica un Nest Protect che supporta la connessione a un pannello di allarme domestico.

kFeature_LinePowered

Indica un dispositivo che richiede l'alimentazione da linea.

@182

 @182

Definizioni dei campi dei flag.

Proprietà
kFlag_IsRendezvousWiFiESSIDSuffix

Indica che il valore RendezvousWiFiESSID è una stringa suffisso visualizzata alla fine dell'ESSID della rete di rendezvous Wi-Fi del dispositivo.

Attributi pubblici

Giorno

uint8_t Day

Giorno di produzione del dispositivo (0 = non presente)

DeviceFeatures

uint32_t DeviceFeatures

Campo di bit che indica il supporto di funzionalità specifiche del dispositivo.

DeviceId

uint64_t DeviceId

ID dispositivo Weave (0 = non presente)

FabricId

uint64_t FabricId

ID del fabric Weave a cui appartiene il dispositivo (0 = non presente)

Bandiere

uint8_t Flags

Campo di bit contenente informazioni aggiuntive sul dispositivo.

ManufacturingDate

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

Mese

uint8_t Month

Mese di produzione del dispositivo (1 = gennaio)

PairingCode

char PairingCode[kMaxPairingCodeLength+1]

Codice di accoppiamento del dispositivo (NUL terminato, lunghezza 0 = non presente)

PairingCompatibilityVersionMajor

uint16_t PairingCompatibilityVersionMajor

Versione principale della compatibilità del software di accoppiamento del dispositivo.

PairingCompatibilityVersionMinor

uint16_t PairingCompatibilityVersionMinor

Versione minore della compatibilità del software di accoppiamento del dispositivo.

IndirizzoMAC802154Principale

uint8_t Primary802154MACAddress[8]

Indirizzo MAC per l'interfaccia 802.15.4 primaria (big-endian, tutti gli zeri = non presente)

PrimaryWiFiMACAddress

uint8_t PrimaryWiFiMACAddress[6]

Indirizzo MAC per l'interfaccia Wi-Fi principale (big-endian, tutti gli zeri = non presente)

ProductId

uint16_t ProductId

Codice prodotto dispositivo (0 = non presente)

ProductRevision

uint16_t ProductRevision

Revisione prodotto dispositivo (0 = non presente)

RendezvousWiFiESSID

char RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]

ESSID per la rete rendezvous Wi-Fi del dispositivo (NUL terminato, lunghezza 0 = non presente)

SerialNumber

char SerialNumber[kMaxSerialNumberLength+1]

Numero di serie del dispositivo (terminato NUL, lunghezza 0 = non presente)

SoftwareVersion

char SoftwareVersion[kMaxSoftwareVersionLength+1]

Versione software attiva (NUL terminata, lunghezza 0 = non presente)

VendorId

uint16_t VendorId

Codice fornitore dispositivo (0 = non presente)

Anno

uint16_t Year

Anno di produzione del dispositivo (intervallo valido 2001 - 2099)

Funzioni pubbliche

Cancella

void Clear(
  void
)

Consente di cancellare la descrizione del dispositivo.

WeaveDeviceDescriptor

 WeaveDeviceDescriptor(
  void
)

Funzioni statiche pubbliche

Decode

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

Decodifica i contenuti del buffer dati fornito in un oggetto Weave Device Descriptor.

Dettagli
Parametri
[in] data
Un puntatore a un buffer contenente testo o dati Weave Device Descriptor codificati in TLV.
[in] dataLen
La lunghezza del buffer fornito.
[out] outDesc
Un riferimento all'oggetto descrittore dispositivo da compilare.
Valori restituiti
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Se il buffer fornito non è valido.
WEAVE_NO_ERROR
In caso di successo.
other
Altri codici di errore Weave o specifici della piattaforma che indicano che si è verificato un errore che impedisce la decodifica di TLV.

DecodeTLV

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

Decodifica i contenuti del buffer dati TLV fornito in un oggetto Weave Device Descriptor.

Dettagli
Parametri
[in] data
Un puntatore a un buffer contenente dati Weave Device Descriptor codificati con testo.
[in] dataLen
La lunghezza del buffer fornito.
[out] outDesc
Un riferimento all'oggetto descrittore dispositivo da compilare.
Valori restituiti
WEAVE_ERROR_WRONG_TLV_TYPE
Se non è il valore Descrizione dispositivo TLV.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
Se vengono rilevati altri dati TLV dopo la descrizione del dispositivo.
WEAVE_NO_ERROR
In caso di successo.
other
Altri codici di errore Weave o specifici della piattaforma che indicano che si è verificato un errore che impedisce la codifica di TLV.

DecodeTLV

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

Decodifica la descrizione del dispositivo utilizzando il file TLVReader pre-inizializzato fornito.

Dettagli
Parametri
[in] reader
Un riferimento al file TLVReader pre-inizializzato.
[out] outDesc
Un riferimento all'oggetto descrittore dispositivo da compilare.
Valori restituiti
WEAVE_ERROR_INVALID_TLV_ELEMENT
Se nei dati TLV vengono rilevate informazioni non valide relative alla descrizione del dispositivo.
WEAVE_NO_ERROR
In caso di successo.
other
Altri codici di errore Weave o specifici della piattaforma che indicano un errore che ha impedito la decodifica di TLV.

DecodeText

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

Decodifica i contenuti del buffer dei dati di testo fornito in un oggetto Weave Device Descriptor.

Dettagli
Parametri
[in] data
Un puntatore a un buffer contenente dati Weave Device Descriptor codificati con testo.
[in] dataLen
La lunghezza del buffer fornito.
[out] outDesc
Un riferimento all'oggetto descrittore dispositivo da compilare.
Valori restituiti
WEAVE_ERROR_UNSUPPORTED_DEVICE_DESCRIPTOR_VERSION
Se la versione dei dati codificata non è supportata.
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Se i dati codificati non sono formattati correttamente.
WEAVE_ERROR_INCORRECT_STATE
Se il decoder rileva uno stato incoerente.
WEAVE_ERROR_BUFFER_TOO_SMALL
Se viene raggiunta la fine del buffer durante la decodifica.
WEAVE_NO_ERROR
In caso di successo.

EncodeTLV

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

Codifica il descrittore del dispositivo fornito come Weave TLV scritto nel buffer fornito.

Dettagli
Parametri
[in] desc
Un riferimento al descrittore del dispositivo Weave da codificare.
[out] buf
Un puntatore a un buffer in cui verrà scritto il testo codificato.
[in] bufLen
La lunghezza del buffer fornito.
[out] outEncodedLen
Un riferimento alla variabile di lunghezza che verrà sovrascritta con il numero di caratteri scritti nel buffer.
Valori restituiti
WEAVE_NO_ERROR
In caso di successo.
other
Altri codici di errore Weave o specifici della piattaforma che indicano che si è verificato un errore che impedisce la codifica di TLV.

EncodeTLV

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

Codifica il descrittore del dispositivo fornito come Weave TLV scritto utilizzando l'oggetto TLVWriter pre-inizializzato fornito.

Viene utilizzato per aggiungere la descrizione del dispositivo a un output TLV più ampio.

Dettagli
Parametri
[in] desc
Un riferimento al descrittore del dispositivo Weave da codificare.
[in] writer
Un riferimento all'oggetto TLVWriter pre-inizializzato da utilizzare.
Valori restituiti
WEAVE_NO_ERROR
In caso di successo.
other
Altri codici di errore Weave o specifici della piattaforma che indicano che si è verificato un errore che impedisce la codifica di TLV.

EncodeText

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

Codifica il descrittore del dispositivo fornito come testo scritto nel buffer fornito.

Dettagli
Parametri
[in] desc
Un riferimento al descrittore del dispositivo Weave da codificare.
[out] buf
Un puntatore a un buffer in cui verrà scritto il testo codificato.
[in] bufLen
La lunghezza del buffer fornito.
[out] outEncodedLen
Un riferimento alla variabile di lunghezza che verrà sovrascritta con il numero di caratteri scritti nel buffer.
Valori restituiti
WEAVE_ERROR_BUFFER_TOO_SMALL
Se il buffer fornito è troppo piccolo per la descrizione testuale generata.
WEAVE_ERROR_INVALID_ARGUMENT
Se un campo descrittore non è valido.
WEAVE_NO_ERROR
In caso di successo.

IsZeroBytes

bool IsZeroBytes(
  const uint8_t *buf,
  uint32_t len
)

Verifica se il buffer specificato contiene solo zeri.

Dettagli
Parametri
[in] buf
Un puntatore a un buffer.
[in] len
La lunghezza del buffer.
Valori restituiti
TRUE
Se il buffer contiene solo zeri.
FALSE
Se il buffer contiene valori diversi da zero.