nl::Weave::TLV

Definizioni per l'utilizzo di dati codificati in formato Weave TLV.

Riepilogo

Weave TLV è un metodo di codifica generalizzato per dati strutturati semplici. Condivide molte proprietà con il formato di serializzazione JSON di uso comune, oltre a essere notevolmente più compatto.

Enumerazioni

@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
Un'enumerazione che identifica il tipo di un elemento TLV.

Variabili

kWeaveTLVCopyChunkSize = 16
const size_t
Copia un elemento TLV da un oggetto reader nell'autore.
sTagSizes = { 0, 1, 2, 4, 2, 4, 6, 8 }[]
const uint8_t

Funzioni

CommonTag(uint32_t tagNum)
uint64_t
Genera la rappresentazione API di un tag TLV del profilo comune.
ContextTag(uint8_t tagNum)
uint64_t
Genera la rappresentazione API per il tag TLV specifico al contesto.
GetTLVFieldSize(uint8_t type)
TLVFieldSize
IsContextTag(uint64_t tag)
bool
Restituisce true se il tag fornito è un tag specifico del contesto.
IsProfileTag(uint64_t tag)
bool
Restituisce true se il tag fornito è un tag specifico del profilo.
IsSpecialTag(uint64_t tag)
bool
IsValidTLVType(uint8_t type)
bool
Restituisce true se il tipo TLV specificato è valido.
ProfileIdFromTag(uint64_t tag)
uint32_t
Restituisce l'ID profilo da un tag TLV.
ProfileNumFromTag(uint64_t tag)
uint16_t
Restituisce il numero di profilo da un tag TLV.
ProfileTag(uint32_t profileId, uint32_t tagNum)
uint64_t
Genera la rappresentazione API di un tag TLV specifico per profilo da un ID profilo e un numero tag.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
Genera la rappresentazione API di un tag TLV specifico per profilo da un ID fornitore, un numero di profilo e un numero di tag.
TLVFieldSizeToBytes(TLVFieldSize fieldSize)
uint8_t
TLVTypeHasLength(uint8_t type)
bool
Restituisce true se il tipo TLV specificato implica la presenza di un campo length associato.
TLVTypeHasValue(uint8_t type)
bool
Restituisce true se il tipo TLV specificato implica la presenza di un campo di valore associato.
TLVTypeIsContainer(uint8_t type)
bool
Restituisce true se il tipo TLV specificato è un container.
TLVTypeIsString(uint8_t type)
bool
Restituisce true se il tipo TLV specificato è una stringa UTF8 o di byte.
TagNumFromTag(uint64_t tag)
uint32_t
Restituisce il numero di tag da un tag TLV.
VendorIdFromTag(uint64_t tag)
uint16_t
Restituisce l'ID fornitore da un tag TLV.

Corsi

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

Fornisce un parser efficiente in termini di memoria per i dati codificati nel formato Weave TLV.

nl::Weave::TLV::TLVUpdater

Fornisce un'interfaccia Reader/Writer unificata per modificare/aggiungere/eliminare elementi con codifica TLV.

nl::Weave::TLV::TLVWriter

Fornisce un codificatore efficiente in termini di memoria per la scrittura di dati in formato Weave TLV.

nl::Weave::TLV::WeaveCircularTLVBuffer

WeaveCircularTLVBuffer fornisce uno spazio di archiviazione circolare per nl::Weave::TLV::TLVWriter e nl::Weave::TLVTLVReader.

Spazi dei nomi

nl::Weave::TLV::Debug

Questo spazio dei nomi include tipi e interfacce per il debug e il logging di Weave TLV.

nl::Weave::TLV::Utilities

Questo spazio dei nomi include tipi e interfacce di utilità per la gestione e l'utilizzo di Weave TLV.

Enumerazioni

@71

 @71

@73

 @73

@74

 @74
Proprietà
AnonymousTag

Un valore che indica un elemento TLV privo di tag (ad es.

un elemento anonimo).

@75

 @75

TLVCommonProfiles

 TLVCommonProfiles
Proprietà
kProfileIdNotSpecified

Utilizzato per indicare l'assenza di un ID profilo in una variabile o in un membro.

Essenzialmente è uguale a kWeaveProfile_NotDetails definito in WeaveProfiles.h

TLVElementType

 TLVElementType

TLVFieldSize

 TLVFieldSize

TLVTagControl

 TLVTagControl

TLVTagFields

 TLVTagFields

TLVType

 TLVType

Un'enumerazione che identifica il tipo di un elemento TLV.

Variabili

kWeaveTLVCopyChunkSize

const size_t kWeaveTLVCopyChunkSize = 16

Copia un elemento TLV da un oggetto reader nell'autore.

Il metodo CopyElement() codifica un nuovo elemento TLV il cui tipo e il cui valore derivano da un oggetto TLVReader. Quando viene richiamato il metodo, l'oggetto Reader fornito dovrebbe trovarsi sull'elemento TLV di origine. L'elemento appena codificato avrà lo stesso tipo e gli stessi contenuti del contenitore di input, ma il tag verrà impostato sull'argomento specificato. Se l'elemento fornito è un container TLV (struttura, array o percorso), verranno copiati l'intero contenuto del container.

Dettagli
Parametri
[in] tag
Il tag TLV da codificare con il container oppure AnonymousTag se il container deve essere codificato senza tag. I valori di tag devono essere creati con una delle funzioni di definizione dei tag ProfileTag(), ContextTag() o CommonTag().
[in] reader
Un riferimento a un oggetto TLVReader che identifica un elemento TLV precodificato di cui copiare tipo e valore.
Valori restituiti
WEAVE_NO_ERROR
Se il metodo è riuscito.
WEAVE_ERROR_INCORRECT_STATE
Se il lettore fornito non è posizionato su un elemento.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Se un writer di container è stato aperto sull'autore corrente e non è ancora chiuso.
WEAVE_ERROR_TLV_UNDERRUN
Se la codifica TLV sottostante associata al lettore fornito è terminata prematuramente.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Se il lettore fornito ha riscontrato un tipo di elemento TLV non valido o non supportato.
WEAVE_ERROR_INVALID_TLV_TAG
Se il lettore fornito ha riscontrato un tag TLV in un contesto non valido o se non è valido o è inappropriato nel contesto in cui è stato scritto il nuovo contenitore.
WEAVE_ERROR_BUFFER_TOO_SMALL
Se la scrittura del valore supererebbe il limite massimo di byte specificato al momento dell'inizializzazione del writer.
WEAVE_ERROR_NO_MEMORY
Se un tentativo di allocare un buffer di output non è riuscito a causa della mancanza di memoria.
other
Altri errori Weave o specifici della piattaforma restituiti dalle funzioni GetNewBuffer() o FinalizeBuffer() configurate oppure dalla funzione GetNextBuffer() associata all'oggetto reader.

sTagSizes

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

Funzioni

CommonTag

uint64_t CommonTag(
  uint32_t tagNum
)

Genera la rappresentazione API di un tag TLV del profilo comune.

Dettagli
Parametri
[in] tagNum
Il numero di tag profilo comune assegnato al tag.
Restituisce
Un numero intero a 64 bit che rappresenta il tag.

ContextTag

uint64_t ContextTag(
  uint8_t tagNum
)

Genera la rappresentazione API per il tag TLV specifico al contesto.

Dettagli
Parametri
[in] tagNum
Il numero di tag specifico per il contesto assegnato al tag.
Restituisce
Un numero intero a 64 bit che rappresenta il tag.

GetTLVFieldSize

TLVFieldSize GetTLVFieldSize(
  uint8_t type
)

IsContextTag

bool IsContextTag(
  uint64_t tag
)

Restituisce true se il tag fornito è un tag specifico del contesto.

IsProfileTag

bool IsProfileTag(
  uint64_t tag
)

Restituisce true se il tag fornito è un tag specifico del profilo.

IsSpecialTag

bool IsSpecialTag(
  uint64_t tag
)

IsValidTLVType

bool IsValidTLVType(
  uint8_t type
)

Restituisce true se il tipo TLV specificato è valido.

Dettagli
Restituisce
true se il tipo TLV specificato è valido; in caso contrario false.

ProfileIdFromTag

uint32_t ProfileIdFromTag(
  uint64_t tag
)

Restituisce l'ID profilo da un tag TLV.

Dettagli
Parametri
[in] tag
La rappresentazione API di un tag TLV specifico del profilo.
Restituisce
L'ID del profilo.

ProfileNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

Restituisce il numero di profilo da un tag TLV.

Dettagli
Parametri
[in] tag
La rappresentazione API di un tag TLV specifico del profilo.
Restituisce
Il numero del profilo associato.

ProfileTag

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

Genera la rappresentazione API di un tag TLV specifico per profilo da un ID profilo e un numero tag.

Dettagli
Parametri
[in] profileId
L'ID del profilo all'interno del quale è definito il tag.
[in] tagNum
Il numero di tag specifico del profilo assegnato al tag.
Restituisce
Un numero intero a 64 bit che rappresenta il tag.

ProfileTag

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

Genera la rappresentazione API di un tag TLV specifico per profilo da un ID fornitore, un numero di profilo e un numero di tag.

Dettagli
Parametri
[in] vendorId
L'ID del fornitore che ha definito il tag.
[in] profileNum
Il numero assegnato dal fornitore per il profilo all'interno del quale è definito il tag.
[in] tagNum
Il numero di tag specifico del profilo assegnato al tag.
Restituisce
Un numero intero a 64 bit che rappresenta il tag.

TLVFieldSizeToBytes

uint8_t TLVFieldSizeToBytes(
  TLVFieldSize fieldSize
)

TLVTypeHasLength

bool TLVTypeHasLength(
  uint8_t type
)

Restituisce true se il tipo TLV specificato implica la presenza di un campo length associato.

Dettagli
Restituisce
true se il tipo TLV specificato implica la presenza di un campo length associato, altrimenti false.

TLVTypeHasValue

bool TLVTypeHasValue(
  uint8_t type
)

Restituisce true se il tipo TLV specificato implica la presenza di un campo di valore associato.

Dettagli
Restituisce
true se il tipo TLV specificato implica la presenza di un campo di valore associato, altrimenti false.

TLVTypeIsContainer

bool TLVTypeIsContainer(
  uint8_t type
)

Restituisce true se il tipo TLV specificato è un container.

Dettagli
Restituisce
true se il tipo TLV specificato è un container, altrimenti false.

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

Restituisce true se il tipo TLV specificato è una stringa UTF8 o di byte.

Dettagli
Restituisce
true se il tipo TLV specificato è una stringa UTF8 o di byte, altrimenti false.

TagNumFromTag

uint32_t TagNumFromTag(
  uint64_t tag
)

Restituisce il numero di tag da un tag TLV.

Dettagli
Parametri
[in] tag
La rappresentazione API di un tag TLV specifico del profilo o del contesto.
Restituisce
Il numero di tag associato.
Vedi anche:
IsProfileTag() e IsContextTag()

VendorIdFromTag

uint16_t VendorIdFromTag(
  uint64_t tag
)

Restituisce l'ID fornitore da un tag TLV.

Dettagli
Parametri
[in] tag
La rappresentazione API di un tag TLV specifico del profilo.
Restituisce
L'ID del fornitore associato.