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{
|
enum |
@75
|
enum |
TLVCommonProfiles{
|
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:: |
|
nl:: |
|
nl:: |
Stellt einen speichereffizienten Parser für Daten bereit, die im Weave-TLV-Format codiert sind. |
nl:: |
Die vereinheitlichte Reader/Writer-Oberfläche zum Bearbeiten, Hinzufügen und Löschen von Elementen in der TLV-Codierung |
nl:: |
Stellt einen speichereffizienten Encoder zum Schreiben von Daten im Weave-TLV-Format bereit. |
nl:: |
WeaveCircularTLVBuffer bietet kreisförmigen Speicher für nl::Weave::TLV::TLVWriter und nl::Weave::TLVTLVReader. |
Namespaces |
|
---|---|
nl:: |
Dieser Namespace enthält Typen und Schnittstellen zum Debuggen und Logging von Weave TLV. |
nl:: |
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
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 |
|
||||||||||||||||||
Rückgabewerte |
|
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 |
|
||
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 |
|
||
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 )
Profil-ID aus Tag
uint32_t ProfileIdFromTag( uint64_t tag )
ProfilNumVonTag
uint16_t ProfileNumFromTag( uint64_t tag )
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 |
|
||||
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 |
|
||||||
Rückgabe |
Eine 64-Bit-Ganzzahl, die das Tag darstellt.
|
TLVFieldSizeToBytes
uint8_t TLVFieldSizeToBytes( TLVFieldSize fieldSize )
TLVTypeHasLänge
bool TLVTypeHasLength( uint8_t type )
TLVTypeHasWert
bool TLVTypeHasValue( uint8_t type )
TLVTypeIsContainer
bool TLVTypeIsContainer( uint8_t type )
TLVTypIsString
bool TLVTypeIsString( uint8_t type )
TagNumFromTag
uint32_t TagNumFromTag( uint64_t tag )
Gibt die Tag-Nummer aus einem TLV-Tag zurück.
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
Die verknüpfte Tag-Nummer.
|
IsProfileTag() und IsContextTag()