nl::Weave::TLV

Definizioni per l'utilizzo dei dati codificati nel formato TLV Weave.

Riepilogo

Weave TLV è un metodo di codifica generale per dati strutturati semplici. Condivide molte proprietà con il formato di serializzazione JSON più comune ed è notevolmente più compatto rispetto al cavo.

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 lettore nell'autore.
sTagSizes = { 0, 1, 2, 4, 2, 4, 6, 8 }[]
const uint8_t

Functions

CommonTag(uint32_t tagNum)
uint64_t
Genera la rappresentazione API di un tag TLV di profilo comune.
ContextTag(uint8_t tagNum)
uint64_t
Genera la rappresentazione API del tag TLV specifico del contesto.
GetTLVFieldSize(uint8_t type)
TLVFieldSize
IsContextTag(uint64_t tag)
bool
Restituisce true se il tag fornito è un tag specifico di contesto.
IsProfileTag(uint64_t tag)
bool
Restituisce true del 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 del profilo a partire da un tag TLV.
ProfileTag(uint32_t profileId, uint32_t tagNum)
uint64_t
Genera la rappresentazione API di un tag TLV specifico del profilo da un ID profilo e un numero di tag.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
Genera la rappresentazione API di un tag TLV specifico del profilo da un ID fornitore, numero di profilo e 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 di lunghezza associato.
TLVTypeHasValue(uint8_t type)
bool
Restituisce true se il tipo TLV specificato implica la presenza di un campo 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 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::Lettore circolareTLV
nl::Weave::TLV::CircularTLVWriter
nl::Weave::TLV::TLVReader

Fornisce un analizzatore sintattico efficiente della memoria per i dati codificati nel formato TLV Weave.

nl::Weave::TLV::TLVUpdater

Fornisce un'interfaccia Lettore/Writer unificata per la modifica, l'aggiunta o l'eliminazione di elementi nella codifica TLV.

nl::Weave::TLV::TLVWriter

Offre un codificatore con memoria efficiente per la scrittura dei dati nel formato TLV Weave.

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 TLV di Weave.

nl::Weave::TLV::Utilità

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 senza tag (ad es.

in un elemento anonimo).

@75

 @75

TLVCommonProfiles

 TLVCommonProfiles
Proprietà
kProfileIdNotSpecified

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

Essenzialmente è uguale a kWeaveProfile_NotSpecify definito in WeaveProfiles.h

TLVElementType

 TLVElementType

TLVFieldSize

 TLVFieldSize

TLVTagControl

 TLVTagControl

TLVTagCampi

 TLVTagFields

Tipo TLV

 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 lettore nell'autore.

Il metodo CopyElement() codifica un nuovo elemento TLV il cui tipo e valore sono presi da un oggetto TLVReader. Quando il metodo viene chiamato, l'oggetto lettore fornito deve essere posizionato 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 contenitore TLV (struttura, array o percorso), vengono copiati l'intero contenuto del contenitore.

Dettagli
Parametri
[in] tag
Il tag TLV da codificare con il contenitore o AnonymousTag se il contenitore deve essere codificato senza tag. I valori 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 i valori.
Valori di ritorno
WEAVE_NO_ERROR
Se il metodo ha esito positivo.
WEAVE_ERROR_INCORRECT_STATE
Se il lettore fornito non è posizionato su un elemento.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Se un writer contenitore è stato aperto sull'autore corrente e non ancora chiuso.
WEAVE_ERROR_TLV_UNDERRUN
Se la codifica di base TLV associata al lettore fornito termina prematuramente.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Se il lettore fornito ha rilevato 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 il tag fornito non è valido o inappropriato nel contesto in cui è stato scritto il nuovo contenitore.
WEAVE_ERROR_BUFFER_TOO_SMALL
In questo modo, il valore non verrebbe superato dal numero massimo di byte specificato al momento dell'inizializzazione dell'autore.
WEAVE_ERROR_NO_MEMORY
Se un tentativo di allocazione di un buffer di output non è riuscito a causa della memoria insufficiente.
other
Altri errori specifici di Weave o piattaforma restituiti dalle funzioni GetNewBuffer() o FinalizeBuffer() o dalla funzione GetNextBuffer() associata all'oggetto lettore.

Tag tag

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

Functions

CommonTag

uint64_t CommonTag(
  uint32_t tagNum
)

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

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

Tag di contesto

uint64_t ContextTag(
  uint8_t tagNum
)

Genera la rappresentazione API del tag TLV specifico del contesto.

Dettagli
Parametri
[in] tagNum
Il numero di tag specifico del 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 di contesto.

IsProfileTag

bool IsProfileTag(
  uint64_t tag
)

Restituisce true del 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; altrimenti false.

ProfiloIdFromTag

uint32_t ProfileIdFromTag(
  uint64_t tag
)

Restituisce l'ID profilo da un tag TLV.

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

ProfiloNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

Restituisce il numero del profilo a partire da un tag TLV.

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

Tag profilo

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

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

Dettagli
Parametri
[in] profileId
L'ID del profilo in cui è 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.

Tag profilo

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

Genera la rappresentazione API di un tag TLV specifico del profilo da un ID fornitore, numero di profilo e 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 in cui è 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 di lunghezza associato.

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

TLVTypeHasValue

bool TLVTypeHasValue(
  uint8_t type
)

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

Dettagli
Restituisce
true se il tipo TLV specificato implica la presenza di un campo 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 contenitore; altrimenti false.

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

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

Dettagli
Restituisce
true se il tipo TLV specificato è una stringa UTF8 o 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 dell'API di un tag TLV specifico del profilo o del contesto.
Restituisce
Il numero di tag associato.
Vedi anche:
IsProfileTag() e IsContextTag()

IDFornitoreTag

uint16_t VendorIdFromTag(
  uint64_t tag
)

Restituisce l'ID fornitore da un tag TLV.

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