nl::Weave::TLV

Definicje dotyczące pracy z danymi zakodowanymi w formacie TLV Weave.

Podsumowanie

Weave TLV to uogólniona metoda kodowania prostych danych strukturalnych. Ma wiele właściwości z często używanym formatem serializacji JSON, a jednocześnie jest znacznie bardziej zwarty w porównaniu z przewodem.

Wyliczenia

@71 enum | typ wyliczeniowy
@73 enum | typ wyliczeniowy
@74{
  AnonymousTag = kSpecialTagMarker | 0x00000000FFFFFFFFULL
}
enum | typ wyliczeniowy
@75 enum | typ wyliczeniowy
TLVCommonProfiles{
  kProfileIdNotSpecified = 0xFFFFFFFF
}
enum | typ wyliczeniowy
TLVElementType enum | typ wyliczeniowy
TLVFieldSize enum | typ wyliczeniowy
TLVTagControl enum | typ wyliczeniowy
TLVTagFields enum | typ wyliczeniowy
TLVType enum | typ wyliczeniowy
Wyliczenie określające typ elementu TLV.

Zmienne

kWeaveTLVCopyChunkSize = 16
const size_t
Kopiuje element TLV z obiektu czytnika do zapisującego.
sTagSizes = { 0, 1, 2, 4, 2, 4, 6, 8 }[]
const uint8_t

Funkcje

CommonTag(uint32_t tagNum)
uint64_t
Generuje w interfejsie API reprezentację wspólnego tagu TLV profilu.
ContextTag(uint8_t tagNum)
uint64_t
Generuje w interfejsie API reprezentację tagu TLV zależnego od kontekstu.
GetTLVFieldSize(uint8_t type)
TLVFieldSize
IsContextTag(uint64_t tag)
bool
Zwraca wartość „prawda”, jeśli podany tag jest tagiem zależnym od kontekstu.
IsProfileTag(uint64_t tag)
bool
Zwraca wartość prawda w przypadku podanego tagu, który jest tagiem właściwym dla profilu.
IsSpecialTag(uint64_t tag)
bool
IsValidTLVType(uint8_t type)
bool
Zwraca wartość „prawda”, jeśli podany typ TLV jest prawidłowy.
ProfileIdFromTag(uint64_t tag)
uint32_t
Zwraca identyfikator profilu z tagu TLV.
ProfileNumFromTag(uint64_t tag)
uint16_t
Zwraca numer profilu z tagu TLV.
ProfileTag(uint32_t profileId, uint32_t tagNum)
uint64_t
Generuje w interfejsie API tag TLV właściwego dla profilu na podstawie identyfikatora profilu i numeru tagu.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
Generuje w interfejsie API tag TLV właściwego dla profilu na podstawie identyfikatora dostawcy, numeru profilu i numeru tagu.
TLVFieldSizeToBytes(TLVFieldSize fieldSize)
uint8_t
TLVTypeHasLength(uint8_t type)
bool
Zwraca wartość „prawda”, jeśli określony typ TLV sugeruje obecność powiązanego pola długości.
TLVTypeHasValue(uint8_t type)
bool
Zwraca wartość „prawda”, jeśli określony typ TLV sugeruje obecność powiązanego pola wartości.
TLVTypeIsContainer(uint8_t type)
bool
Zwraca wartość „prawda”, jeśli podany typ TLV jest kontenerem.
TLVTypeIsString(uint8_t type)
bool
Zwraca wartość „prawda”, jeśli określony typ TLV jest ciągiem znaków UTF8 lub ciągiem bajtów.
TagNumFromTag(uint64_t tag)
uint32_t
Zwraca numer tagu z tagu TLV.
VendorIdFromTag(uint64_t tag)
uint16_t
Zwraca identyfikator dostawcy z tagu TLV.

Zajęcia

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

Udostępnia działający w pamięci parser danych zakodowanych w formacie TLV Weave.

nl::Weave::TLV::TLVUpdater

Udostępnia ujednolicony interfejs czytnika/zapisu do edytowania, dodawania i usuwania elementów w kodowaniu TLV.

nl::Weave::TLV::TLVWriter

Udostępnia mało pamięci kodera do zapisu danych w formacie Weave TLV.

nl::Weave::TLV::WeaveCircularTLVBuffer

WeaveCircularTLVBuffer zapewnia okrągłą pamięć masową dla nl::Weave::TLV::TLVWriter i nl::Weave::TLVTLVReader.

Przestrzenie nazw

nl::Weave::TLV::Debug

Ta przestrzeń nazw zawiera typy i interfejsy debugowania i logowania Weave TLV.

nl::Weave::TLV::Utilities

Ta przestrzeń nazw zawiera typy i interfejsy narzędziowe do zarządzania Weave TLV i zarządzania nimi.

Wyliczenia

@71

 @71

@73

 @73

@74

 @74
Właściwości
AnonymousTag

Wartość oznaczająca element TLV, który nie ma tagu (np.

anonimowo).

@75

 @75

TLVCommonProfiles

 TLVCommonProfiles
Właściwości
kProfileIdNotSpecified

Służy do wskazywania braku identyfikatora profilu w zmiennej lub elemencie.

Zasadniczo działa to tak samo jak parametr kWeaveProfile_NotOkreślified w zasadzie WeaveProfiles.h.

TLVElementType

 TLVElementType

TLVFieldSize

 TLVFieldSize

TLVTagControl

 TLVTagControl

TLVTagFields

 TLVTagFields

TLVType

 TLVType

Wyliczenie określające typ elementu TLV.

Zmienne

kWeaveTLVCopyChunkSize

const size_t kWeaveTLVCopyChunkSize = 16

Kopiuje element TLV z obiektu czytnika do zapisującego.

Metoda CopyElement() koduje nowy element TLV, którego typ i wartość są pobierane z obiektu TLVReader. Gdy ta metoda jest wywoływana, podany obiekt czytnika powinien zostać umieszczony w źródłowym elemencie TLV. Nowo zakodowany element będzie miał ten sam typ i zawartość co kontener wejściowy, ale w tagu zostanie ustawiony określony argument. Jeśli dostarczony element jest kontenerem TLV (strukturą, tablicą lub ścieżką), skopiowana zostanie cała zawartość kontenera.

Szczegóły
Parametry
[in] tag
Tag TLV do kodowania z kontenerem lub AnonymousTag, jeśli kontener powinien być kodowany bez tagu. Wartości tagów należy tworzyć za pomocą jednej z funkcji definicji tagu: ProfileTag(), ContextTag() lub CommonTag().
[in] reader
Odwołanie do obiektu TLVReader identyfikującego wstępnie zakodowany element TLV, którego typ i wartość mają zostać skopiowane.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli przy użyciu metody się udało:
WEAVE_ERROR_INCORRECT_STATE
Jeśli dostarczony czytnik nie jest umieszczony na elemencie.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Jeśli zapis w kontenerze został otwarty na bieżącym scenariuszu, ale nie został jeszcze zamknięty.
WEAVE_ERROR_TLV_UNDERRUN
Jeśli bazowe kodowanie TLV powiązane z dołączonym czytnikiem zostało przedwcześnie zakończone.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Jeśli dostarczony czytnik napotkał nieprawidłowy lub nieobsługiwany typ elementu TLV.
WEAVE_ERROR_INVALID_TLV_TAG
jeśli podany czytnik napotkał tag TLV w nieprawidłowym kontekście albo podany tag jest nieprawidłowy lub nieodpowiedni w kontekście, w którym tworzony jest nowy kontener;
WEAVE_ERROR_BUFFER_TOO_SMALL
Jeśli zapisanie wartości spowodowałoby przekroczenie limitu maksymalnej liczby bajtów określonych podczas inicjowania zapisującego.
WEAVE_ERROR_NO_MEMORY
Próba przydzielenia bufora wyjściowego nie powiodła się z powodu braku pamięci.
other
Inne błędy Weave lub dotyczące platformy zwracane przez skonfigurowane funkcje GetNewBuffer() lub FinalizeBuffer() albo przez funkcję GetNextBuffer() powiązaną z obiektem czytnika.

sTagSizes

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

Funkcje

CommonTag

uint64_t CommonTag(
  uint32_t tagNum
)

Generuje w interfejsie API reprezentację wspólnego tagu TLV profilu.

Szczegóły
Parametry
[in] tagNum
Wspólny numer tagu profilu przypisany do tagu.
Zwroty
64-bitowa liczba całkowita określająca tag.

ContextTag

uint64_t ContextTag(
  uint8_t tagNum
)

Generuje w interfejsie API reprezentację tagu TLV zależnego od kontekstu.

Szczegóły
Parametry
[in] tagNum
Kontekstowy numer tagu przypisany do tagu.
Zwroty
64-bitowa liczba całkowita określająca tag.

GetTLVFieldSize

TLVFieldSize GetTLVFieldSize(
  uint8_t type
)

IsContextTag

bool IsContextTag(
  uint64_t tag
)

Zwraca wartość „prawda”, jeśli podany tag jest tagiem zależnym od kontekstu.

IsProfileTag

bool IsProfileTag(
  uint64_t tag
)

Zwraca wartość prawda w przypadku podanego tagu, który jest tagiem właściwym dla profilu.

IsSpecialTag

bool IsSpecialTag(
  uint64_t tag
)

IsValidTLVType

bool IsValidTLVType(
  uint8_t type
)

Zwraca wartość „prawda”, jeśli podany typ TLV jest prawidłowy.

Szczegóły
Zwroty
true, jeśli podany typ TLV jest prawidłowy; w przeciwnym razie false.

ProfileIdFromTag

uint32_t ProfileIdFromTag(
  uint64_t tag
)

Zwraca identyfikator profilu z tagu TLV.

Szczegóły
Parametry
[in] tag
Reprezentacja tagu TLV specyficznego dla profilu w interfejsie API.
Zwroty
Identyfikator profilu.

ProfileNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

Zwraca numer profilu z tagu TLV.

Szczegóły
Parametry
[in] tag
Reprezentacja tagu TLV specyficznego dla profilu w interfejsie API.
Zwroty
Powiązany numer profilu.

ProfileTag

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

Generuje w interfejsie API tag TLV właściwego dla profilu na podstawie identyfikatora profilu i numeru tagu.

Szczegóły
Parametry
[in] profileId
Identyfikator profilu, w którym zdefiniowany jest tag.
[in] tagNum
Numer tagu właściwy dla profilu przypisany do tagu.
Zwroty
64-bitowa liczba całkowita określająca tag.

ProfileTag

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

Generuje w interfejsie API tag TLV właściwego dla profilu na podstawie identyfikatora dostawcy, numeru profilu i numeru tagu.

Szczegóły
Parametry
[in] vendorId
Identyfikator dostawcy, który zdefiniował tag.
[in] profileNum
Numer przypisany przez dostawcę do profilu, w którym zdefiniowany jest tag.
[in] tagNum
Numer tagu właściwy dla profilu przypisany do tagu.
Zwroty
64-bitowa liczba całkowita określająca tag.

TLVFieldSizeToBytes

uint8_t TLVFieldSizeToBytes(
  TLVFieldSize fieldSize
)

TLVTypeHasLength

bool TLVTypeHasLength(
  uint8_t type
)

Zwraca wartość „prawda”, jeśli określony typ TLV sugeruje obecność powiązanego pola długości.

Szczegóły
Zwroty
true, jeśli określony typ TLV sugeruje obecność powiązanego pola długości; w przeciwnym razie false.

TLVTypeHasValue

bool TLVTypeHasValue(
  uint8_t type
)

Zwraca wartość „prawda”, jeśli określony typ TLV sugeruje obecność powiązanego pola wartości.

Szczegóły
Zwroty
true, jeśli określony typ TLV sugeruje obecność powiązanego pola wartości; w przeciwnym razie false.

TLVTypeIsContainer

bool TLVTypeIsContainer(
  uint8_t type
)

Zwraca wartość „prawda”, jeśli podany typ TLV jest kontenerem.

Szczegóły
Zwroty
true, jeśli określony typ TLV jest kontenerem; w przeciwnym razie false.

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

Zwraca wartość „prawda”, jeśli określony typ TLV jest ciągiem znaków UTF8 lub ciągiem bajtów.

Szczegóły
Zwroty
true, jeśli określonym typem TLV jest ciąg UTF8 lub ciąg bajtów; w przeciwnym razie false.

TagNumFromTag

uint32_t TagNumFromTag(
  uint64_t tag
)

Zwraca numer tagu z tagu TLV.

Szczegóły
Parametry
[in] tag
Reprezentacja tagu TLV zależnego od profilu lub kontekstu.
Zwroty
Numer powiązanego tagu.
Zobacz też:
IsProfileTag() i IsContextTag()

VendorIdFromTag

uint16_t VendorIdFromTag(
  uint64_t tag
)

Zwraca identyfikator dostawcy z tagu TLV.

Szczegóły
Parametry
[in] tag
Reprezentacja tagu TLV specyficznego dla profilu w interfejsie API.
Zwroty
Identyfikator powiązanego dostawcy.