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

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

Enthält beschreibende Informationen zu einem Weave-Gerät.

Zusammenfassung

Konstruktoren und Zerstörer

WeaveDeviceDescriptor(void)

Öffentliche Typen

@180{
  kMaxSerialNumberLength = 32,
  kMaxPairingCodeLength = 16,
  kMaxRendezvousWiFiESSID = 32,
  kMaxSoftwareVersionLength = WEAVE_CONFIG_MAX_SOFTWARE_VERSION_LENGTH
}
enum
Definiert die maximale Länge einiger Attribute.
@181{
  kFeature_HomeAlarmLinkCapable = 0x00000001,
  kFeature_LinePowered = 0x00000002
}
enum
Funktions-Flags, die bestimmte Gerätefunktionen angeben.
@182{
  kFlag_IsRendezvousWiFiESSIDSuffix = 0x01
}
enum
Definitionen der Flags-Felder.

Öffentliche Attribute

Day
uint8_t
Tag, an dem das Gerät hergestellt wurde (0 = nicht vorhanden)
DeviceFeatures
uint32_t
Bit-Feld, das die Unterstützung bestimmter Gerätefunktionen angibt.
DeviceId
uint64_t
Weave-Geräte-ID (0 = nicht vorhanden)
FabricId
uint64_t
ID des Weave-Gewebes, zu dem das Gerät gehört (0 = nicht vorhanden)
Flags
uint8_t
Bit-Feld mit zusätzlichen Informationen zum Gerät.
ManufacturingDate
struct nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::@183
Month
uint8_t
Herstellungsmonat des Geräts (1 = Januar)
PairingCode[kMaxPairingCodeLength+1]
char
Code zum Koppeln des Geräts (NUL beendet, Länge 0 = nicht vorhanden)
PairingCompatibilityVersionMajor
uint16_t
Hauptversion für die Kompatibilität der Gerätekopplung.
PairingCompatibilityVersionMinor
uint16_t
Kleinere Kompatibilitätsversion für die Gerätekopplung.
Primary802154MACAddress[8]
uint8_t
MAC-Adresse für die primäre 802.15.4-Schnittstelle (Big-Endian, alle Nullen = nicht vorhanden)
PrimaryWiFiMACAddress[6]
uint8_t
MAC-Adresse für primäre WLAN-Schnittstelle (Big-Endian, alle Nullen = nicht vorhanden)
ProductId
uint16_t
Produktcode des Geräts (0 = nicht vorhanden)
ProductRevision
uint16_t
Überarbeitung des Geräteprodukts (0 = nicht vorhanden)
RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]
char
ESSID für das WLAN-Rendezvous-Netzwerk des Geräts (NUL beendet, 0 Länge = nicht vorhanden)
SerialNumber[kMaxSerialNumberLength+1]
char
Seriennummer des Geräts (NUL beendet, Länge 0 = nicht vorhanden)
SoftwareVersion[kMaxSoftwareVersionLength+1]
char
Aktive Softwareversion (NUL beendet, 0 Länge = nicht vorhanden)
VendorId
uint16_t
Code des Geräteherstellers (0 = nicht vorhanden)
Year
uint16_t
Herstellungsjahr des Geräts (gültiger Bereich: 2001–2099)

Öffentliche Funktionen

Clear(void)
void
Löscht die Gerätebeschreibung.

Öffentliche statische Funktionen

Decode(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Decodiert den Inhalt des bereitgestellten Datenpuffers in ein Weave Device Descriptor-Objekt.
DecodeTLV(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Decodiert den Inhalt des bereitgestellten TLV-Datenpuffers in ein Weave Device Descriptor-Objekt.
DecodeTLV(nl::Weave::TLV::TLVReader & reader, WeaveDeviceDescriptor & outDesc)
Decodiert die Gerätebeschreibung mithilfe des bereitgestellten vorinitialisierten TLVReader.
DecodeText(const char *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Decodiert den Inhalt des bereitgestellten Textdatenpuffers in ein Weave Device Descriptor-Objekt.
EncodeTLV(const WeaveDeviceDescriptor & desc, uint8_t *buf, uint32_t bufLen, uint32_t & outEncodedLen)
Codiert den angegebenen Gerätedeskriptor als Weave-TLV, der in den bereitgestellten Puffer geschrieben wird.
EncodeTLV(const WeaveDeviceDescriptor & desc, nl::Weave::TLV::TLVWriter & writer)
Codiert den angegebenen Gerätedeskriptor als Weave-TLV, der mit dem angegebenen vorinitialisierten TLVWriter-Objekt geschrieben wurde.
EncodeText(const WeaveDeviceDescriptor & desc, char *buf, uint32_t bufLen, uint32_t & outEncodedLen)
Codiert den angegebenen Gerätedeskriptor als Text, der in den bereitgestellten Puffer geschrieben wird.
IsZeroBytes(const uint8_t *buf, uint32_t len)
bool
Prüfen Sie, ob der angegebene Puffer nur Nullen enthält.

Öffentliche Typen

@180

 @180

Definiert die maximale Länge einiger Attribute.

Attribute
kMaxPairingCodeLength

Maximale Länge des Kopplungscodes.

kMaxRendezvousWiFiESSID

Maximale WLAN-ESSID für Rendezvous-Länge.

kMaxSerialNumberLength

Maximale Länge der Seriennummer.

kMaxSoftwareVersionLength

Maximale Länge der Softwareversion.

@181

 @181

Funktions-Flags, die bestimmte Gerätefunktionen angeben.

Attribute
kFeature_HomeAlarmLinkCapable

Weist auf ein Nest Protect-Gerät hin, das die Verbindung zu einer Meldezentrale unterstützt.

kFeature_LinePowered

Weist auf ein Gerät hin, das eine Netzspannung benötigt.

@182

 @182

Definitionen der Flags-Felder.

Attribute
kFlag_IsRendezvousWiFiESSIDSuffix

Gibt an, dass der Wert von „RendezvousWiFiESSID“ ein Suffixstring ist, der am Ende der ESSID des WLAN-Rendezvous-Netzwerks des Geräts angezeigt wird.

Öffentliche Attribute

Day

uint8_t Day

Tag, an dem das Gerät hergestellt wurde (0 = nicht vorhanden)

DeviceFeatures

uint32_t DeviceFeatures

Bit-Feld, das die Unterstützung bestimmter Gerätefunktionen angibt.

DeviceId

uint64_t DeviceId

Weave-Geräte-ID (0 = nicht vorhanden)

FabricId

uint64_t FabricId

ID des Weave-Gewebes, zu dem das Gerät gehört (0 = nicht vorhanden)

Flags

uint8_t Flags

Bit-Feld mit zusätzlichen Informationen zum Gerät.

ManufacturingDate

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

Monat

uint8_t Month

Herstellungsmonat des Geräts (1 = Januar)

PairingCode

char PairingCode[kMaxPairingCodeLength+1]

Code zum Koppeln des Geräts (NUL beendet, Länge 0 = nicht vorhanden)

PairingCompatibilityVersionMajor

uint16_t PairingCompatibilityVersionMajor

Hauptversion für die Kompatibilität der Gerätekopplung.

PairingCompatibilityVersionMinor

uint16_t PairingCompatibilityVersionMinor

Kleinere Kompatibilitätsversion für die Gerätekopplung.

Primäre MAC-Adresse

uint8_t Primary802154MACAddress[8]

MAC-Adresse für die primäre 802.15.4-Schnittstelle (Big-Endian, alle Nullen = nicht vorhanden)

PrimaryWiFiMACAddress

uint8_t PrimaryWiFiMACAddress[6]

MAC-Adresse für primäre WLAN-Schnittstelle (Big-Endian, alle Nullen = nicht vorhanden)

ProductId

uint16_t ProductId

Produktcode des Geräts (0 = nicht vorhanden)

ProductRevision

uint16_t ProductRevision

Überarbeitung des Geräteprodukts (0 = nicht vorhanden)

RendezvousWiFiESSID

char RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]

ESSID für das WLAN-Rendezvous-Netzwerk des Geräts (NUL beendet, 0 Länge = nicht vorhanden)

SerialNumber

char SerialNumber[kMaxSerialNumberLength+1]

Seriennummer des Geräts (NUL beendet, Länge 0 = nicht vorhanden)

SoftwareVersion

char SoftwareVersion[kMaxSoftwareVersionLength+1]

Aktive Softwareversion (NUL beendet, 0 Länge = nicht vorhanden)

VendorId

uint16_t VendorId

Code des Geräteherstellers (0 = nicht vorhanden)

Jahr

uint16_t Year

Herstellungsjahr des Geräts (gültiger Bereich: 2001–2099)

Öffentliche Funktionen

Klar

void Clear(
  void
)

Löscht die Gerätebeschreibung.

WeaveDeviceDescriptor

 WeaveDeviceDescriptor(
  void
)

Öffentliche statische Funktionen

Decode

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

Decodiert den Inhalt des bereitgestellten Datenpuffers in ein Weave Device Descriptor-Objekt.

Details
Parameter
[in] data
Ein Zeiger auf einen Zwischenspeicher, der Text oder TLV-codierte Weave Device Descriptor-Daten enthält.
[in] dataLen
Die Länge des bereitgestellten Puffers.
[out] outDesc
Ein Verweis auf das Gerätedeskriptor-Objekt, das ausgefüllt werden soll.
Rückgabewerte
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Der angegebene Puffer ist ungültig.
WEAVE_NO_ERROR
Bei Erfolg.
other
Andere Weave- oder plattformspezifische Fehlercodes, die darauf hinweisen, dass ein Fehler aufgetreten ist, der die Decodierung von TLV verhindert.

DecodeTLV

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

Decodiert den Inhalt des bereitgestellten TLV-Datenpuffers in ein Weave Device Descriptor-Objekt.

Details
Parameter
[in] data
Ein Zeiger auf einen Puffer, der textcodierte Weave-Gerätedeskriptordaten enthält.
[in] dataLen
Die Länge des bereitgestellten Puffers.
[out] outDesc
Ein Verweis auf das Gerätedeskriptor-Objekt, das ausgefüllt werden soll.
Rückgabewerte
WEAVE_ERROR_WRONG_TLV_TYPE
Wenn dies nicht die Gerätebeschreibung TLV ist.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
Wenn nach der Gerätebeschreibung weitere TLV-Daten vorhanden sind.
WEAVE_NO_ERROR
Bei Erfolg.
other
Andere Weave- oder plattformspezifische Fehlercodes, die darauf hinweisen, dass ein Fehler aufgetreten ist, der die Codierung von TLV verhindert.

DecodeTLV

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

Decodiert die Gerätebeschreibung mithilfe des bereitgestellten vorinitialisierten TLVReader.

Details
Parameter
[in] reader
Ein Verweis auf den vorinitialisierten TLVReader.
[out] outDesc
Ein Verweis auf das Gerätedeskriptor-Objekt, das ausgefüllt werden soll.
Rückgabewerte
WEAVE_ERROR_INVALID_TLV_ELEMENT
Wenn die TLV-Daten ungültige Informationen zur Gerätebeschreibung enthalten.
WEAVE_NO_ERROR
Bei Erfolg.
other
Andere Weave- oder plattformspezifische Fehlercodes, die auf einen Fehler hinweisen, der die Decodierung von TLV verhindert hat.

DecodeText

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

Decodiert den Inhalt des bereitgestellten Textdatenpuffers in ein Weave Device Descriptor-Objekt.

Details
Parameter
[in] data
Ein Zeiger auf einen Puffer, der textcodierte Weave-Gerätedeskriptordaten enthält.
[in] dataLen
Die Länge des bereitgestellten Puffers.
[out] outDesc
Ein Verweis auf das Gerätedeskriptor-Objekt, das ausgefüllt werden soll.
Rückgabewerte
WEAVE_ERROR_UNSUPPORTED_DEVICE_DESCRIPTOR_VERSION
Ob die codierte Datenversion nicht unterstützt wird
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Die codierten Daten sind nicht richtig formatiert.
WEAVE_ERROR_INCORRECT_STATE
Wenn der Decodierer einen inkonsistenten Zustand erkennt.
WEAVE_ERROR_BUFFER_TOO_SMALL
Wenn das Ende des Zwischenspeichers während der Decodierung erreicht wird.
WEAVE_NO_ERROR
Bei Erfolg.

EncodeTLV

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

Codiert den angegebenen Gerätedeskriptor als Weave-TLV, der in den bereitgestellten Puffer geschrieben wird.

Details
Parameter
[in] desc
Ein Verweis auf den Weave Device Descriptor, der codiert werden soll.
[out] buf
Ein Zeiger auf einen Zwischenspeicher, in den der codierte Text geschrieben wird.
[in] bufLen
Die Länge des bereitgestellten Puffers.
[out] outEncodedLen
Ein Verweis auf die Längenvariable, die mit der Anzahl der in den Puffer geschriebenen Zeichen überschrieben wird.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
other
Andere Weave- oder plattformspezifische Fehlercodes, die darauf hinweisen, dass ein Fehler aufgetreten ist, der die Codierung von TLV verhindert.

EncodeTLV

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

Codiert den angegebenen Gerätedeskriptor als Weave-TLV, der mit dem angegebenen vorinitialisierten TLVWriter-Objekt geschrieben wurde.

Damit wird die Gerätebeschreibung zu einem größeren TLV-Ausgabe hinzugefügt.

Details
Parameter
[in] desc
Ein Verweis auf den Weave Device Descriptor, der codiert werden soll.
[in] writer
Ein Verweis auf das vorinitialisierte TLVWriter-Objekt, das verwendet werden soll.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
other
Andere Weave- oder plattformspezifische Fehlercodes, die darauf hinweisen, dass ein Fehler aufgetreten ist, der die Codierung von TLV verhindert.

EncodeText

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

Codiert den angegebenen Gerätedeskriptor als Text, der in den bereitgestellten Puffer geschrieben wird.

Details
Parameter
[in] desc
Ein Verweis auf den Weave Device Descriptor, der codiert werden soll.
[out] buf
Ein Zeiger auf einen Zwischenspeicher, in den der codierte Text geschrieben wird.
[in] bufLen
Die Länge des bereitgestellten Puffers.
[out] outEncodedLen
Ein Verweis auf die Längenvariable, die mit der Anzahl der in den Puffer geschriebenen Zeichen überschrieben wird.
Rückgabewerte
WEAVE_ERROR_BUFFER_TOO_SMALL
Wenn der bereitgestellte Puffer zu klein für die generierte Textbeschreibung ist.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn ein Beschreibungsfeld ungültig ist.
WEAVE_NO_ERROR
Bei Erfolg.

IsZeroBytes

bool IsZeroBytes(
  const uint8_t *buf,
  uint32_t len
)

Prüfen Sie, ob der angegebene Puffer nur Nullen enthält.

Details
Parameter
[in] buf
Ein Zeiger auf einen Puffer.
[in] len
Die Länge des Puffers.
Rückgabewerte
TRUE
Wenn der Puffer nur Nullen enthält.
FALSE
Wenn der Puffer Werte ungleich null enthält.