Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

nl::Weave::TLV

Definitionen für das Arbeiten mit Daten, die im Weave-TLV-Format codiert sind.

Fazit

Weave TLV ist eine allgemeine Codierungsmethode für einfache strukturierte Daten. Es hat viele Eigenschaften mit dem gängigen JSON-Serialisierungsformat und ist darüber hinaus wesentlich kompakter über dem Kabel.

Aufzählungen

@71 enum
@73 enum
@74{
  AnonymousTag = kSpecialTagMarker | 0x00000000FFFFFFFFULL
}
enum
@75 enum
TLVCommonProfiles{
  kProfileIdNotSpecified = 0xFFFFFFFF
}
enum
TLVElementType enum
TLVFieldSize enum
TLVTagControl enum
TLVTagFields enum
TLVType enum
Eine Aufzählung, die den Typ eines TLV-Elements identifiziert.

Variablen

kWeaveTLVCopyChunkSize = 16
const size_t
Kopiert ein TLV-Element aus einem Reader-Objekt in den Autor.
sTagSizes = { 0, 1, 2, 4, 2, 4, 6, 8 }[]
const uint8_t

Funktionen

CommonTag(uint32_t tagNum)
uint64_t
Erzeugt die API-Darstellung eines allgemeinen TLV-Profils.
ContextTag(uint8_t tagNum)
uint64_t
Erzeugt die API-Darstellung für ein kontextspezifisches TLV-Tag.
GetTLVFieldSize(uint8_t type)
TLVFieldSize
IsContextTag(uint64_t tag)
bool
Gibt „true“ zurück, wenn das angegebene Tag ein kontextspezifisches Tag ist.
IsProfileTag(uint64_t tag)
bool
Gibt „true“ des bereitgestellten Tags zurück, wenn das Tag profilspezifisch ist.
IsSpecialTag(uint64_t tag)
bool
IsValidTLVType(uint8_t type)
bool
Gibt „true“ zurück, wenn der angegebene TLV-Typ gültig ist.
ProfileIdFromTag(uint64_t tag)
uint32_t
Gibt die Profil-ID aus einem TLV-Tag zurück.
ProfileNumFromTag(uint64_t tag)
uint16_t
Gibt die Profilnummer aus einem TLV-Tag zurück.
ProfileTag(uint32_t profileId, uint32_t tagNum)
uint64_t
Die API-Darstellung eines profilspezifischen TLV-Tags wird aus einer Profil-ID und einer Tag-Nummer generiert.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
Die API-Darstellung eines profilspezifischen TLV-Tags wird aus einer Anbieter-ID, einer Profilnummer und einer Tag-Nummer generiert.
TLVFieldSizeToBytes(TLVFieldSize fieldSize)
uint8_t
TLVTypeHasLength(uint8_t type)
bool
Gibt „true“ zurück, wenn der angegebene Typ TLV ein vorhandenes Längenfeld enthält.
TLVTypeHasValue(uint8_t type)
bool
Gibt „true“ zurück, wenn der angegebene Typ TLV ein verknüpftes Wertfeld angibt.
TLVTypeIsContainer(uint8_t type)
bool
Gibt „true“ zurück, wenn der angegebene TLV-Typ ein Container ist.
TLVTypeIsString(uint8_t type)
bool
Gibt „true“ zurück, wenn der angegebene TLV-Typ ein UTF-8- oder Bytestring ist.
TagNumFromTag(uint64_t tag)
uint32_t
Gibt die Tag-Nummer aus einem TLV-Tag zurück.
VendorIdFromTag(uint64_t tag)
uint16_t
Gibt die Anbieter-ID aus einem TLV-Tag zurück.

Klassen

nl::Weave::TLV::CircularTLVReader
nl::Weave::TLV::CircularTLVWriter
nl::Weave::TLV::TLVReader

Stellt einen speichereffizienten Parser für Daten bereit, die im Weave-TLV-Format codiert sind.

nl::Weave::TLV::TLVUpdater

Die vereinheitlichte Reader/Writer-Oberfläche zum Bearbeiten, Hinzufügen und Löschen von Elementen in der TLV-Codierung

nl::Weave::TLV::TLVAutor

Stellt einen speichereffizienten Encoder zum Schreiben von Daten im Weave-TLV-Format bereit.

nl::Weave::TLV::WeaveCircularTLVBuffer

WeaveCircularTLVBuffer bietet kreisförmigen Speicher für nl::Weave::TLV::TLVWriter und nl::Weave::TLVTLVReader.

Namespaces

nl::Weave::TLV::Debugging

Dieser Namespace enthält Typen und Schnittstellen zum Debuggen und Logging von Weave TLV.

nl::Weave::TLV::Dienstprogramme

Dieser Namespace enthält Typen und Dienstprogrammschnittstellen für die Verwaltung und Arbeit mit Weave TLV.

Aufzählungen

@71

 @71

@73

 @73

@74

 @74
Attribute
AnonymousTag

Ein Wert, der ein TLV-Element ohne Tag darstellt, das heißt

ein anonymes Element).

@75

 @75

TLVCommonProfile

 TLVCommonProfiles
Attribute
kProfileIdNotSpecified

Gibt an, dass eine Profil-ID in einer Variablen oder einem Mitglied fehlt.

Das entspricht im Wesentlichen dem in WeaveProfiles.h definierten kWeaveProfile_Notspecified.

TLV-Elementtyp

 TLVElementType

TLV-Feldgröße

 TLVFieldSize

TLVTagControl

 TLVTagControl

TLVTag-Felder

 TLVTagFields

TLV-Typ

 TLVType

Eine Aufzählung, die den Typ eines TLV-Elements identifiziert.

Variablen

kWeaveTLVCopyChunkSize

const size_t kWeaveTLVCopyChunkSize = 16

Kopiert ein TLV-Element aus einem Reader-Objekt in den Autor.

Mit der CopyElement()-Methode wird ein neues TLV-Element codiert, dessen Typ und Wert aus einem TLVReader-Objekt stammen. Wenn die Methode aufgerufen wird, wird das bereitgestellte Reader-Objekt voraussichtlich im TLV-Quellelement positioniert. Das codierte Element hat denselben Typ und denselben Inhalt wie der Eingabecontainer, aber das Tag wird auf das angegebene Argument festgelegt. Wenn das bereitgestellte Element ein TLV-Container (Struktur, Array oder Pfad) ist, wird der gesamte Inhalt des Containers kopiert.

Details
Parameter
[in] tag
Das TLV-Tag, das mit dem Container codiert werden soll, oder AnonymousTag, wenn der Container ohne Tag codiert werden soll. Tag-Werte sollten mit einer der Tag-Definitionsfunktionen ProfileTag(), ContextTag() oder CommonTag() erstellt werden.
[in] reader
Ein Verweis auf ein TLVReader-Objekt, das ein vorcodiertes TLV-Element identifiziert, dessen Typ und Wert kopiert werden muss.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.
WEAVE_ERROR_INCORRECT_STATE
Wenn der bereitgestellte Leser nicht auf einem Element positioniert ist
WEAVE_ERROR_TLV_CONTAINER_OPEN
Wenn ein Container-Writer für den aktuellen Autor geöffnet und noch nicht geschlossen wurde.
WEAVE_ERROR_TLV_UNDERRUN
Wenn die zugrunde liegende TLV-Codierung, die mit dem bereitgestellten Lesegerät verknüpft ist, vorzeitig beendet wurde.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Wenn der bereitgestellte Leser einen ungültigen oder nicht unterstützten TLV-Elementtyp gefunden hat.
WEAVE_ERROR_INVALID_TLV_TAG
Wenn der bereitgestellte Leser ein TLV-Tag in einem ungültigen Kontext gefunden hat oder das bereitgestellte Tag ungültig oder in dem Kontext unangemessen ist, in dem der neue Container geschrieben wird.
WEAVE_ERROR_BUFFER_TOO_SMALL
Wenn der Wert geschrieben wird, wird das Limit für die maximale Anzahl von Bytes überschritten, die beim Schreiben des Autors angegeben wurde.
WEAVE_ERROR_NO_MEMORY
Wenn ein Versuch, einen Ausgabepuffer zuzuweisen, fehlgeschlagen ist, weil nicht genügend Arbeitsspeicher verfügbar ist.
other
Sonstige Weave- oder plattformspezifische Fehler, die von den konfigurierten Funktionen „NewNewBuffer()“ oder „FinalizeBuffer()“ oder durch die GetNextBuffer()-Funktion, die mit dem Reader-Objekt verknüpft ist, zurückgegeben werden.

sTag-Größen

const uint8_t sTagSizes[] = { 0, 1, 2, 4, 2, 4, 6, 8 }

Funktionen

Gemeinsames Tag

uint64_t CommonTag(
  uint32_t tagNum
)

Erzeugt die API-Darstellung eines allgemeinen TLV-Profils.

Details
Parameter
[in] tagNum
Die dem Tag zugewiesene allgemeine Tag-Nummer des Profils.
Rückgabe
Eine 64-Bit-Ganzzahl, die das Tag darstellt.

ContextTag

uint64_t ContextTag(
  uint8_t tagNum
)

Erzeugt die API-Darstellung für ein kontextspezifisches TLV-Tag.

Details
Parameter
[in] tagNum
Die dem Tag zugewiesene kontextspezifische Tagnummer.
Rückgabe
Eine 64-Bit-Ganzzahl, die das Tag darstellt.

GetTLVFieldSize

TLVFieldSize GetTLVFieldSize(
  uint8_t type
)

IsContextTag

bool IsContextTag(
  uint64_t tag
)

Gibt „true“ zurück, wenn das angegebene Tag ein kontextspezifisches Tag ist.

IsProfileTag

bool IsProfileTag(
  uint64_t tag
)

Gibt „true“ des bereitgestellten Tags zurück, wenn das Tag profilspezifisch ist.

Ist SpecialTag

bool IsSpecialTag(
  uint64_t tag
)

IsGültigTLVTyp

bool IsValidTLVType(
  uint8_t type
)

Gibt „true“ zurück, wenn der angegebene TLV-Typ gültig ist.

Details
Rückgabe
true, wenn der angegebene Typ TLV gültig ist, andernfalls false.

Profil-ID aus Tag

uint32_t ProfileIdFromTag(
  uint64_t tag
)

Gibt die Profil-ID aus einem TLV-Tag zurück.

Details
Parameter
[in] tag
API-Darstellung eines profilspezifischen TLV-Tags.
Rückgabe
Die Profil-ID.

ProfilNumVonTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

Gibt die Profilnummer aus einem TLV-Tag zurück.

Details
Parameter
[in] tag
API-Darstellung eines profilspezifischen TLV-Tags.
Rückgabe
Die verknüpfte Profilnummer

Profil-Tag

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

Die API-Darstellung eines profilspezifischen TLV-Tags wird aus einer Profil-ID und einer Tag-Nummer generiert.

Details
Parameter
[in] profileId
Die ID des Profils, in dem das Tag definiert ist.
[in] tagNum
Die profilspezifische Tag-Nummer, die dem Tag zugewiesen ist.
Rückgabe
Eine 64-Bit-Ganzzahl, die das Tag darstellt.

Profil-Tag

uint64_t ProfileTag(
  uint16_t vendorId,
  uint16_t profileNum,
  uint32_t tagNum
)

Die API-Darstellung eines profilspezifischen TLV-Tags wird aus einer Anbieter-ID, einer Profilnummer und einer Tag-Nummer generiert.

Details
Parameter
[in] vendorId
Die ID des Anbieters, der das Tag definiert hat.
[in] profileNum
Die Nummer des Anbieters für das Profil, in dem das Tag definiert ist.
[in] tagNum
Die profilspezifische Tag-Nummer, die dem Tag zugewiesen ist.
Rückgabe
Eine 64-Bit-Ganzzahl, die das Tag darstellt.

TLVFieldSizeToBytes

uint8_t TLVFieldSizeToBytes(
  TLVFieldSize fieldSize
)

TLVTypeHasLänge

bool TLVTypeHasLength(
  uint8_t type
)

Gibt „true“ zurück, wenn der angegebene Typ TLV ein vorhandenes Längenfeld enthält.

Details
Rückgabe
true, wenn der angegebene Typ TLV ein vorhandenes Feld vom Typ „Länge“ angibt. Andernfalls lautet false.

TLVTypeHasWert

bool TLVTypeHasValue(
  uint8_t type
)

Gibt „true“ zurück, wenn der angegebene Typ TLV ein verknüpftes Wertfeld angibt.

Details
Rückgabe
true, wenn der angegebene Typ TLV das Vorhandensein eines verknüpften Wertfelds angibt. Andernfalls gilt false.

TLVTypeIsContainer

bool TLVTypeIsContainer(
  uint8_t type
)

Gibt „true“ zurück, wenn der angegebene TLV-Typ ein Container ist.

Details
Rückgabe
true, wenn der angegebene TLV-Typ ein Container ist. Andernfalls lautet false.

TLVTypIsString

bool TLVTypeIsString(
  uint8_t type
)

Gibt „true“ zurück, wenn der angegebene TLV-Typ ein UTF-8- oder Bytestring ist.

Details
Rückgabe
true, wenn der angegebene TLV-Typ ein UTF8- oder Bytestring ist. Andernfalls lautet false.

TagNumFromTag

uint32_t TagNumFromTag(
  uint64_t tag
)

Gibt die Tag-Nummer aus einem TLV-Tag zurück.

Details
Parameter
[in] tag
API-Darstellung eines profil- oder kontextspezifischen TLV-Tags.
Rückgabe
Die verknüpfte Tag-Nummer.
Siehe auch:
IsProfileTag() und IsContextTag()

Anbieter-ID-Tag

uint16_t VendorIdFromTag(
  uint64_t tag
)

Gibt die Anbieter-ID aus einem TLV-Tag zurück.

Details
Parameter
[in] tag
API-Darstellung eines profilspezifischen TLV-Tags.
Rückgabe
ID des verknüpften Anbieters