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
}
énum
Définit la longueur maximale de certains attributs.
@181{
  kFeature_HomeAlarmLinkCapable = 0x00000001,
  kFeature_LinePowered = 0x00000002
}
énum
Indicateurs de fonctionnalité indiquant des fonctionnalités spécifiques de l'appareil.
@182{
  kFlag_IsRendezvousWiFiESSIDSuffix = 0x01
}
énum
Définitions des champs "Flags" (Indicateurs).

Attributs publics

Day
uint8_t
Jour de fabrication de l'appareil (0 = absent)
DeviceFeatures
uint32_t
Champ "Bit" indiquant la compatibilité avec des fonctionnalités spécifiques de l'appareil.
DeviceId
uint64_t
ID de l'appareil Weave (0 = inexistant)
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 d'appareil (NUL interrompu, longueur 0 = absent)
PairingCompatibilityVersionMajor
uint16_t
Version de compatibilité majeure du logiciel d'association d'appareils.
PairingCompatibilityVersionMinor
uint16_t
Version de compatibilité logicielle d'association d'appareils mineure.
Primary802154MACAddress[8]
uint8_t
Adresse MAC pour l'interface 802.15.4 principale (big-endian, aucun zéro = absent)
PrimaryWiFiMACAddress[6]
uint8_t
Adresse MAC pour l'interface Wi-Fi principale (big-endian, aucun zéro = absent)
ProductId
uint16_t
Code produit de l'appareil (0 = inexistant)
ProductRevision
uint16_t
Révision du produit de l'appareil (0 = absent)
RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]
char
ESSID pour le réseau de connexion Wi-Fi de l'appareil (NUL arrêté, longueur 0 = absent)
SerialNumber[kMaxSerialNumberLength+1]
char
Numéro de série de l'appareil (arrêt NUL, longueur 0 = absent)
SoftwareVersion[kMaxSoftwareVersionLength+1]
char
Version logicielle active (NUL arrêtée, longueur 0 = absente)
VendorId
uint16_t
Code fournisseur de l'appareil (0 = inexistant)
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 dans 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 textuelles fourni dans un objet 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 sous la forme d'un 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

Indique qu'un détecteur Nest Protect peut être connecté à un panneau d'alarme domestique.

kFeature_LinePowered

Indique un appareil qui nécessite une alimentation secteur.

@182

 @182

Définitions des champs "Flags" (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

Jour

uint8_t Day

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

DeviceFeatures

uint32_t DeviceFeatures

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

DeviceId

uint64_t DeviceId

ID de l'appareil Weave (0 = inexistant)

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 d'appareil (NUL interrompu, longueur 0 = absent)

PairingCompatibilityVersionMajor

uint16_t PairingCompatibilityVersionMajor

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

PairingCompatibilityVersionMinor

uint16_t PairingCompatibilityVersionMinor

Version de compatibilité logicielle d'association d'appareils mineure.

AdresseMAC802154principale

uint8_t Primary802154MACAddress[8]

Adresse MAC pour l'interface 802.15.4 principale (big-endian, aucun zéro = absent)

PrimaryWiFiMACAddress

uint8_t PrimaryWiFiMACAddress[6]

Adresse MAC pour l'interface Wi-Fi principale (big-endian, aucun zéro = absent)

ProductId

uint16_t ProductId

Code produit de l'appareil (0 = inexistant)

ProductRevision

uint16_t ProductRevision

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

RendezvousWiFiESSID

char RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]

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

SerialNumber

char SerialNumber[kMaxSerialNumberLength+1]

Numéro de série de l'appareil (arrêt NUL, longueur 0 = absent)

SoftwareVersion

char SoftwareVersion[kMaxSoftwareVersionLength+1]

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

VendorId

uint16_t VendorId

Code fournisseur de l'appareil (0 = inexistant)

Année

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 du texte ou des données de descripteur d'appareil Weave encodées au format TLV.
[in] dataLen
Longueur du tampon fourni.
[out] outDesc
Référence à l'objet Descripteur d'appareil à renseigner.
Valeurs renvoyées
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Si le tampon fourni n'est pas valide.
WEAVE_NO_ERROR
En cas de réussite.
other
Autres codes d'erreur Weave ou spécifiques à la plate-forme indiquant qu'une erreur s'est produite empêchant le décodage de la 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 dans un objet de descripteur d'appareil Weave.

Détails
Paramètres
[in] data
Pointeur vers un tampon contenant des données de descripteur d'appareil Weave encodées au format texte.
[in] dataLen
Longueur du tampon fourni.
[out] outDesc
Référence à l'objet Descripteur d'appareil à renseigner.
Valeurs renvoyées
WEAVE_ERROR_WRONG_TLV_TYPE
Si ce n'est pas "Description de l'appareil" TLV.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
Si d'autres données TLV sont trouvées après la description de l'appareil.
WEAVE_NO_ERROR
En cas de réussite.
other
Autres codes d'erreur Weave ou spécifiques à la plate-forme 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 renvoyées
WEAVE_ERROR_INVALID_TLV_ELEMENT
Si la description de l'appareil contient des informations non valides dans les données TLV.
WEAVE_NO_ERROR
En cas de réussite.
other
Autres codes d'erreur Weave ou spécifiques à la plate-forme indiquant qu'une erreur s'est produite et a empêché le décodage de la TLV.

DecodeText

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

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

Détails
Paramètres
[in] data
Pointeur vers un tampon contenant des données de descripteur d'appareil Weave encodées au format texte.
[in] dataLen
Longueur du tampon fourni.
[out] outDesc
Référence à l'objet Descripteur d'appareil à renseigner.
Valeurs renvoyées
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
En cas de 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 de dispositif Weave à encoder.
[out] buf
Pointeur vers un tampon où 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 renvoyées
WEAVE_NO_ERROR
En cas de réussite.
other
Autres codes d'erreur Weave ou spécifiques à la plate-forme 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 sous la forme d'un TLV Weave écrit à l'aide de l'objet TLVWriter pré-initialisé fourni.

Permet d'ajouter la description de l'appareil à la sortie TLV plus grande.

Détails
Paramètres
[in] desc
Référence au descripteur de dispositif Weave à encoder.
[in] writer
Référence à l'objet TLVWriter pré-initialisé à utiliser.
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de réussite.
other
Autres codes d'erreur Weave ou spécifiques à la plate-forme 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 de dispositif Weave à encoder.
[out] buf
Pointeur vers un tampon où 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 renvoyées
WEAVE_ERROR_BUFFER_TOO_SMALL
Si le tampon fourni est trop petit pour la description textuelle générée.
WEAVE_ERROR_INVALID_ARGUMENT
Si un champ de descripteur n'est pas valide.
WEAVE_NO_ERROR
En cas de 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 renvoyées
TRUE
Si le tampon ne contient que des zéros.
FALSE
Si le tampon contient des valeurs non nulles.