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

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

Contient des informations descriptives sur un appareil Weave.

Résumé

Constructeurs et destructeurs

WeaveDeviceDescriptor(void)

Types publics

@180{
  kMaxSerialNumberLength = 32,
  kMaxPairingCodeLength = 16,
  kMaxRendezvousWiFiESSID = 32,
  kMaxSoftwareVersionLength = WEAVE_CONFIG_MAX_SOFTWARE_VERSION_LENGTH
}
enum
Définit la longueur maximale de certains attributs.
@181{
  kFeature_HomeAlarmLinkCapable = 0x00000001,
  kFeature_LinePowered = 0x00000002
}
enum
Indicateurs de fonctionnalité indiquant des fonctionnalités spécifiques de l'appareil
@182{
  kFlag_IsRendezvousWiFiESSIDSuffix = 0x01
}
enum
Définitions des champs d'indicateurs.

Attributs publics

Day
uint8_t
Jour de fabrication de l'appareil (0 = absent)
DeviceFeatures
uint32_t
Champ de bits indiquant la compatibilité avec des fonctionnalités spécifiques de l'appareil.
DeviceId
uint64_t
ID de l'appareil Weave (0 = absent)
FabricId
uint64_t
Identifiant du tissu Weave auquel appartient l'appareil (0 = absent)
Flags
uint8_t
Champ de bits contenant des informations supplémentaires sur l'appareil.
ManufacturingDate
struct nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::@183
Month
uint8_t
Mois de fabrication de l'appareil (1 = janvier)
PairingCode[kMaxPairingCodeLength+1]
char
Code d'association de l'appareil (terminée NUL, longueur 0 = absente)
PairingCompatibilityVersionMajor
uint16_t
Version de compatibilité du logiciel d'association d'appareils majeurs.
PairingCompatibilityVersionMinor
uint16_t
Version mineure du logiciel d'association d'appareils compatible.
Primary802154MACAddress[8]
uint8_t
Adresse MAC pour l'interface 802.15.4 principale (big-endian, tous les zéros = absent)
PrimaryWiFiMACAddress[6]
uint8_t
Adresse MAC pour l'interface Wi-Fi principale (big-endian, tous les zéros = absent)
ProductId
uint16_t
Code produit de l'appareil (0 = absent)
ProductRevision
uint16_t
Révision du produit de l'appareil (0 = absent)
RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]
char
ESSID pour le réseau de rendez-vous Wi-Fi de l'appareil (NUL arrêté, longueur 0 = absente)
SerialNumber[kMaxSerialNumberLength+1]
char
Numéro de série de l'appareil (terminée NUL, longueur 0 = absente)
SoftwareVersion[kMaxSoftwareVersionLength+1]
char
Version logicielle active (NUL arrêtée, longueur 0 = absente)
VendorId
uint16_t
Code du fournisseur de l'appareil (0 = absent)
Year
uint16_t
Année de fabrication de l'appareil (plage valide : 2001 – 2099)

Fonctions publiques

Clear(void)
void
Efface la description de l'appareil.

Fonctions statiques publiques

Decode(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Décode le contenu du tampon de données fourni dans un objet de descripteur d'appareil Weave.
DecodeTLV(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Décode le contenu du tampon de données TLV fourni en un objet de descripteur d'appareil Weave.
DecodeTLV(nl::Weave::TLV::TLVReader & reader, WeaveDeviceDescriptor & outDesc)
Décode la description de l'appareil à l'aide du TLVReader pré-initialisé fourni.
DecodeText(const char *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Décode le contenu du tampon de données texte fourni en un objet de descripteur d'appareil Weave.
EncodeTLV(const WeaveDeviceDescriptor & desc, uint8_t *buf, uint32_t bufLen, uint32_t & outEncodedLen)
Encode le descripteur d'appareil fourni en tant que TLV Weave écrit dans le tampon fourni.
EncodeTLV(const WeaveDeviceDescriptor & desc, nl::Weave::TLV::TLVWriter & writer)
Encode le descripteur d'appareil fourni en tant que TLV Weave écrit à l'aide de l'objet TLVWriter pré-initialisé fourni.
EncodeText(const WeaveDeviceDescriptor & desc, char *buf, uint32_t bufLen, uint32_t & outEncodedLen)
Encode le descripteur d'appareil fourni sous forme de texte écrit dans le tampon fourni.
IsZeroBytes(const uint8_t *buf, uint32_t len)
bool
Vérifiez si le tampon spécifié ne contient que des zéros.

Types publics

@180

 @180

Définit la longueur maximale de certains attributs.

Propriétés
kMaxPairingCodeLength

Longueur maximale du code d'association.

kMaxRendezvousWiFiESSID

ESSID Wi-Fi maximal pour la longueur RendezVous.

kMaxSerialNumberLength

Longueur maximale du numéro de série.

kMaxSoftwareVersionLength

Longueur maximale de la version logicielle.

@181

 @181

Indicateurs de fonctionnalité indiquant des fonctionnalités spécifiques de l'appareil

Propriétés
kFeature_HomeAlarmLinkCapable

Désigne un Nest Protect qui peut être connecté à un panneau d'alarme domestique.

kFeature_LinePowered

Indique un appareil nécessitant une alimentation sur secteur.

@182

 @182

Définitions des champs d'indicateurs.

Propriétés
kFlag_IsRendezvousWiFiESSIDSuffix

Indique que la valeur RendezVousWiFiESSID est une chaîne de suffixe qui apparaît à la fin de l'ESSID du réseau de rendez-vous Wi-Fi de l'appareil.

Attributs publics

Day

uint8_t Day

Jour de fabrication de l'appareil (0 = absent)

DeviceFeatures

uint32_t DeviceFeatures

Champ de bits indiquant la compatibilité avec des fonctionnalités spécifiques de l'appareil.

DeviceId

uint64_t DeviceId

ID de l'appareil Weave (0 = absent)

FabricId

uint64_t FabricId

Identifiant du tissu Weave auquel appartient l'appareil (0 = absent)

Options

uint8_t Flags

Champ de bits contenant des informations supplémentaires sur l'appareil.

ManufacturingDate

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

Mois

uint8_t Month

Mois de fabrication de l'appareil (1 = janvier)

PairingCode

char PairingCode[kMaxPairingCodeLength+1]

Code d'association de l'appareil (terminée NUL, longueur 0 = absente)

PairingCompatibilityVersionMajor

uint16_t PairingCompatibilityVersionMajor

Version de compatibilité du logiciel d'association d'appareils majeurs.

PairingCompatibilityVersionMinor

uint16_t PairingCompatibilityVersionMinor

Version mineure du logiciel d'association d'appareils compatible.

AdresseMAC principale802154

uint8_t Primary802154MACAddress[8]

Adresse MAC pour l'interface 802.15.4 principale (big-endian, tous les zéros = absent)

PrimaryWiFiMACAddress

uint8_t PrimaryWiFiMACAddress[6]

Adresse MAC pour l'interface Wi-Fi principale (big-endian, tous les zéros = absent)

ProductId

uint16_t ProductId

Code produit de l'appareil (0 = absent)

ProductRevision

uint16_t ProductRevision

Révision du produit de l'appareil (0 = absent)

RendezvousWiFiESSID

char RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]

ESSID pour le réseau de rendez-vous Wi-Fi de l'appareil (NUL arrêté, longueur 0 = absente)

SerialNumber

char SerialNumber[kMaxSerialNumberLength+1]

Numéro de série de l'appareil (terminée NUL, longueur 0 = absente)

SoftwareVersion

char SoftwareVersion[kMaxSoftwareVersionLength+1]

Version logicielle active (NUL arrêtée, longueur 0 = absente)

VendorId

uint16_t VendorId

Code du fournisseur de l'appareil (0 = absent)

Year

uint16_t Year

Année de fabrication de l'appareil (plage valide : 2001 – 2099)

Fonctions publiques

Effacer

void Clear(
  void
)

Efface la description de l'appareil.

WeaveDeviceDescriptor

 WeaveDeviceDescriptor(
  void
)

Fonctions statiques publiques

Decode

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

Décode le contenu du tampon de données fourni dans un objet de descripteur d'appareil Weave.

Détails
Paramètres
[in] data
Pointeur vers un tampon contenant des données textuelles ou de descripteurs d'appareil Weave encodées en TLV.
[in] dataLen
Longueur du tampon fourni.
[out] outDesc
Référence à l'objet "Descripteur d'appareil" à renseigner.
Valeurs de retour
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Si le tampon fourni n'est pas valide.
WEAVE_NO_ERROR
Pour la réussite.
other
D'autres codes d'erreur spécifiques à la plate-forme ou Weave indiquant qu'une erreur s'est produite empêchant le décodage du TLV

DecodeTLV

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

Décode le contenu du tampon de données TLV fourni en un objet de descripteur d'appareil Weave.

Détails
Paramètres
[in] data
Pointeur vers un tampon contenant des données textuelles encodées dans le descripteur d'appareil Weave.
[in] dataLen
Longueur du tampon fourni.
[out] outDesc
Référence à l'objet "Descripteur d'appareil" à renseigner.
Valeurs de retour
WEAVE_ERROR_WRONG_TLV_TYPE
Si la description de l'appareil n'est pas TLV,
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
Si d'autres données TLV sont détectées après la description de l'appareil.
WEAVE_NO_ERROR
Pour la réussite.
other
D'autres codes d'erreur spécifiques à la plate-forme ou Weave indiquant qu'une erreur s'est produite empêchant l'encodage du TLV

DecodeTLV

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

Décode la description de l'appareil à l'aide du TLVReader pré-initialisé fourni.

Détails
Paramètres
[in] reader
Référence au TLVReader pré-initialisé.
[out] outDesc
Référence à l'objet "Descripteur d'appareil" à renseigner.
Valeurs de retour
WEAVE_ERROR_INVALID_TLV_ELEMENT
Si des informations non valides figurent dans la description de l'appareil dans les données TLV.
WEAVE_NO_ERROR
Pour la réussite.
other
Autres codes d'erreur spécifiques à la plate-forme ou Weave indiquant qu'une erreur s'est produite et a empêché le décodage du TLV.

DecodeText

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

Décode le contenu du tampon de données texte fourni en un objet de descripteur d'appareil Weave.

Détails
Paramètres
[in] data
Pointeur vers un tampon contenant des données textuelles encodées dans le descripteur d'appareil Weave.
[in] dataLen
Longueur du tampon fourni.
[out] outDesc
Référence à l'objet "Descripteur d'appareil" à renseigner.
Valeurs de retour
WEAVE_ERROR_UNSUPPORTED_DEVICE_DESCRIPTOR_VERSION
Si la version des données encodées n'est pas compatible.
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Si les données encodées ne sont pas formatées correctement.
WEAVE_ERROR_INCORRECT_STATE
Si le décodeur rencontre un état incohérent.
WEAVE_ERROR_BUFFER_TOO_SMALL
Si la fin du tampon est atteinte lors du décodage.
WEAVE_NO_ERROR
Pour la réussite.

EncodeTLV

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

Encode le descripteur d'appareil fourni en tant que TLV Weave écrit dans le tampon fourni.

Détails
Paramètres
[in] desc
Référence au descripteur d'appareil Weave à encoder.
[out] buf
Pointeur vers un tampon dans lequel le texte encodé sera écrit.
[in] bufLen
Longueur du tampon fourni.
[out] outEncodedLen
Référence à la variable de longueur qui sera remplacée par le nombre de caractères écrits dans le tampon.
Valeurs de retour
WEAVE_NO_ERROR
Pour la réussite.
other
D'autres codes d'erreur spécifiques à la plate-forme ou Weave indiquant qu'une erreur s'est produite empêchant l'encodage du TLV

EncodeTLV

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

Encode le descripteur d'appareil fourni en tant que TLV Weave écrit à l'aide de l'objet TLVWriter pré-initialisé fourni.

Cela permet d'ajouter la description de l'appareil à une sortie TLV plus grande.

Détails
Paramètres
[in] desc
Référence au descripteur d'appareil Weave à encoder.
[in] writer
Référence à l'objet TLVWriter pré-initialisé à utiliser.
Valeurs de retour
WEAVE_NO_ERROR
Pour la réussite.
other
D'autres codes d'erreur spécifiques à la plate-forme ou Weave indiquant qu'une erreur s'est produite empêchant l'encodage du TLV

EncodeText

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

Encode le descripteur d'appareil fourni sous forme de texte écrit dans le tampon fourni.

Détails
Paramètres
[in] desc
Référence au descripteur d'appareil Weave à encoder.
[out] buf
Pointeur vers un tampon dans lequel le texte encodé sera écrit.
[in] bufLen
Longueur du tampon fourni.
[out] outEncodedLen
Référence à la variable de longueur qui sera remplacée par le nombre de caractères écrits dans le tampon.
Valeurs de retour
WEAVE_ERROR_BUFFER_TOO_SMALL
Si la mémoire tampon fournie est trop petite pour la description textuelle générée.
WEAVE_ERROR_INVALID_ARGUMENT
Si un champ de descripteur n'est pas valide.
WEAVE_NO_ERROR
Pour la réussite.

IsZeroBytes

bool IsZeroBytes(
  const uint8_t *buf,
  uint32_t len
)

Vérifiez si le tampon spécifié ne contient que des zéros.

Détails
Paramètres
[in] buf
Pointeur vers un tampon.
[in] len
Longueur du tampon.
Valeurs de retour
TRUE
Si le tampon ne contient que des zéros.
FALSE
Si le tampon contient des valeurs non nulles.