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
Flags-Felddefinitionen.

Öffentliche Attribute

Day
uint8_t
Tag der Geräteherstellung (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-Stoffs, zu dem das Gerät gehört (0 = nicht vorhanden)
Flags
uint8_t
Bit-Feld mit zusätzlichen Informationen über das Gerät.
ManufacturingDate
struct nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::@183
Month
uint8_t
Monat der Geräteherstellung (1 = Januar)
PairingCode[kMaxPairingCodeLength+1]
char
Gerätekopplungscode (NUL-terminiert, Länge 0 = nicht vorhanden)
PairingCompatibilityVersionMajor
uint16_t
Wichtige Kompatibilitätsversion der Gerätekopplung
PairingCompatibilityVersionMinor
uint16_t
Kompatible Software-Kompatibilitätsversion für das Koppeln von Geräten
Primary802154MACAddress[8]
uint8_t
MAC-Adresse für primäre 802.15.4-Schnittstelle (Big-Endian, alle Nullen = nicht vorhanden)
PrimaryWiFiMACAddress[6]
uint8_t
MAC-Adresse der primären WLAN-Schnittstelle (Big-Endian, nur Nullen = nicht vorhanden)
ProductId
uint16_t
Produktcode des Geräts (0 = nicht vorhanden)
ProductRevision
uint16_t
Produktversion des Geräts (0 = nicht vorhanden)
RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]
char
ESSID für WLAN-Rendezvous-Netzwerk des Geräts (NUL-terminiert, Länge 0 = nicht vorhanden)
SerialNumber[kMaxSerialNumberLength+1]
char
Seriennummer des Geräts (NUL beendet, Länge 0 = nicht vorhanden)
SoftwareVersion[kMaxSoftwareVersionLength+1]
char
Aktive Softwareversion (durch NUL beendet, Länge 0 = nicht vorhanden)
VendorId
uint16_t
Code des Geräteherstellers (0 = nicht vorhanden)
Year
uint16_t
Herstellungsjahr des Geräts (gültiger Bereich: 2001 bis 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 mit dem 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 Zwischenspeicher geschrieben wird.
EncodeTLV(const WeaveDeviceDescriptor & desc, nl::Weave::TLV::TLVWriter & writer)
Codiert den angegebenen Gerätedeskriptor als Weave TLV, der mit dem bereitgestellten vorab initialisierten 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 Zwischenspeicher 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 die 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 mit einer Alarmkonsole unterstützt.

kFeature_LinePowered

Weist auf ein Gerät hin, das Netzspannung erfordert.

@182

 @182

Flags-Felddefinitionen.

Attribute
kFlag_IsRendezvousWiFiESSIDSuffix

Gibt an, dass der RendezvousWiFiESSID-Wert ein Suffix-String ist, der am Ende der ESSID des WLAN-Rendezvous-Netzwerks des Geräts erscheint.

Öffentliche Attribute

Tag

uint8_t Day

Tag der Geräteherstellung (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-Stoffs, zu dem das Gerät gehört (0 = nicht vorhanden)

Flags

uint8_t Flags

Bit-Feld mit zusätzlichen Informationen über das Gerät.

ManufacturingDate

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

Monat

uint8_t Month

Monat der Geräteherstellung (1 = Januar)

PairingCode

char PairingCode[kMaxPairingCodeLength+1]

Gerätekopplungscode (NUL-terminiert, Länge 0 = nicht vorhanden)

PairingCompatibilityVersionMajor

uint16_t PairingCompatibilityVersionMajor

Wichtige Kompatibilitätsversion der Gerätekopplung

PairingCompatibilityVersionMinor

uint16_t PairingCompatibilityVersionMinor

Kompatible Software-Kompatibilitätsversion für das Koppeln von Geräten

Primäre 802154MAC-Adresse

uint8_t Primary802154MACAddress[8]

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

PrimaryWiFiMACAddress

uint8_t PrimaryWiFiMACAddress[6]

MAC-Adresse der primären WLAN-Schnittstelle (Big-Endian, nur Nullen = nicht vorhanden)

Product_Id (Produkt-ID)

uint16_t ProductId

Produktcode des Geräts (0 = nicht vorhanden)

ProductRevision

uint16_t ProductRevision

Produktversion des Geräts (0 = nicht vorhanden)

RendezvousWiFiESSID

char RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]

ESSID für WLAN-Rendezvous-Netzwerk des Geräts (NUL beendet, Länge 0 = 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 (durch NUL beendet, Länge 0 = 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 bis 2099)

Öffentliche Funktionen

Löschen

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 Weave Device Deskriptor-Daten enthält.
[in] dataLen
Die Länge des bereitgestellten Zwischenspeichers.
[out] outDesc
Ein Verweis auf das Gerätedeskriptorobjekt, das eingefügt werden soll.
Rückgabewerte
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Wenn der angegebene Zwischenspeicher ungültig ist.
WEAVE_NO_ERROR
Bei Erfolg.
other
Andere Weave- oder plattformspezifische Fehlercodes, die darauf hinweisen, dass ein Fehler die Decodierung der TLV verhindert hat.

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 Zwischenspeicher, der textcodierte Weave Device Descriptor-Daten enthält.
[in] dataLen
Die Länge des bereitgestellten Zwischenspeichers.
[out] outDesc
Ein Verweis auf das Gerätedeskriptorobjekt, das eingefügt werden soll.
Rückgabewerte
WEAVE_ERROR_WRONG_TLV_TYPE
Ist dies nicht „Gerätebeschreibung TLV“.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
Wenn nach der Gerätebeschreibung weitere TLV-Daten auftreten,
WEAVE_NO_ERROR
Bei Erfolg.
other
Andere Weave- oder plattformspezifische Fehlercodes, die darauf hinweisen, dass ein Fehler aufgetreten ist, der die Codierung der TLV verhindert.

DecodeTLV

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

Decodiert die Gerätebeschreibung mit dem bereitgestellten vorinitialisierten TLVReader.

Details
Parameter
[in] reader
Eine Referenz zum vorab initialisierten TLVReader.
[out] outDesc
Ein Verweis auf das Gerätedeskriptorobjekt, das eingefügt werden soll.
Rückgabewerte
WEAVE_ERROR_INVALID_TLV_ELEMENT
Die TLV enthalten ungültige Informationen zur Gerätebeschreibung.
WEAVE_NO_ERROR
Bei Erfolg.
other
Andere Weave- oder plattformspezifische Fehlercodes, die auf einen Fehler hinweisen, der die Decodierung der 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 Zwischenspeicher, der textcodierte Weave Device Descriptor-Daten enthält.
[in] dataLen
Die Länge des bereitgestellten Zwischenspeichers.
[out] outDesc
Ein Verweis auf das Gerätedeskriptorobjekt, das eingefügt werden soll.
Rückgabewerte
WEAVE_ERROR_UNSUPPORTED_DEVICE_DESCRIPTOR_VERSION
Wenn die codierte Datenversion nicht unterstützt wird.
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Wenn die codierten Daten nicht richtig formatiert sind.
WEAVE_ERROR_INCORRECT_STATE
Wenn der Decoder einen inkonsistenten Status festgestellt hat.
WEAVE_ERROR_BUFFER_TOO_SMALL
Ob 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 Zwischenspeicher 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 Zwischenspeichers.
[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 der 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 bereitgestellten vorab initialisierten TLVWriter-Objekt geschrieben wurde.

Damit wird die Gerätebeschreibung einer 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 vorab initialisierte 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 der 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 Zwischenspeicher 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 Zwischenspeichers.
[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 Zwischenspeicher.
[in] len
Die Länge des Zwischenspeichers.
Rückgabewerte
TRUE
Wenn der Puffer nur Nullen enthält.
FALSE
Wenn der Zwischenspeicher Werte ungleich null enthält.