nl::Weave::TLV

Definicje związane z pracą z danymi kodowanymi w formacie TLV Weave.

Podsumowanie

Weave TLV to uogólniona metoda kodowania prostych uporządkowanych danych. Ma wiele właściwości z powszechnie używanym formatem serializacji JSON, a jednocześnie jest znacznie bardziej zwarty w połączeniu 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 zapisu.
sTagSizes = { 0, 1, 2, 4, 2, 4, 6, 8 }[]
const uint8_t

Funkcje

CommonTag(uint32_t tagNum)
uint64_t
Generuje reprezentację interfejsu API wspólnego tagu TLV profilu.
ContextTag(uint8_t tagNum)
uint64_t
Generuje reprezentację interfejsu API dla tagu TLV określonego w kontekście.
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” podanego tagu, czyli tagu specyficznego dla profilu.
IsSpecialTag(uint64_t tag)
bool
IsValidTLVType(uint8_t type)
bool
Zwraca wartość „true” (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 reprezentację interfejsu API tagu 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 reprezentację interfejsu API tagu 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 podany typ TLV sugeruje obecność powiązanego pola długości.
TLVTypeHasValue(uint8_t type)
bool
Zwraca wartość „prawda”, jeśli podany typ TLV sugeruje obecność powiązanego pola wartości.
TLVTypeIsContainer(uint8_t type)
bool
Zwraca wartość „prawda”, jeśli podany typ ciągu TLV to kontener.
TLVTypeIsString(uint8_t type)
bool
Zwraca wartość „true” (prawda), jeśli podany typ TLV jest ciągiem znaków UTF8 lub bajtowym.
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

Szybki parser zapewniający dużą ilość pamięci dla danych kodowanych w formacie TLV Weave.

nl::Weave::TLV::TLVUpdater

Zapewnia ujednolicony interfejs czytnika/zapisu do edycji, dodawania i usuwania elementów w kodowaniu TLV.

nl::Weave::TLV::TLVWriter

energooszczędny koder do zapisywania danych w formacie Weave TLV.

nl::Weave::TLV::WeaveCircularTLVBuffer

WeaveCircularTLVBuffer zapewnia pamięć masową dla znaczników nl::Weave::TLV::TLVWriter i nl::Weave::TLVTLVReader.

Przestrzenie nazw

nl::Weave::TLV::Debug

Ta przestrzeń nazw obejmuje typy i interfejsy do debugowania oraz logowania TLV Weave.

nl::Weave::TLV::Utilities

Ta przestrzeń nazw obejmuje typy i interfejsy narzędziowe umożliwiające zarządzanie TLV Weave i pracę z nim.

Wyliczenia

@71

 @71

@73

 @73

@74

 @74
Właściwości
AnonymousTag

Wartość wskazująca element TLV bez tagu (np.

anonimowy element).

@75

 @75

TLVCommonProfiles

 TLVCommonProfiles
Właściwości
kProfileIdNotSpecified

Służą do sygnalizowania braku identyfikatora profilu w zmiennej lub członkostwie użytkownika.

Zasadniczo jest to odpowiednik kWeaveProfile_NotSpecified zdefiniowanego w artykule WeaveProfiles.h (w języku angielskim).

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 zapisu.

Metoda CopyElement() koduje nowy element TLV, którego typ i wartość są pobierane z obiektu TLVReader. Po wywołaniu metody dostarczony obiekt odczytującego powinien zostać umieszczony w elemencie źródłowym TLV. Nowo zakodowany element będzie miał ten sam typ i zawartość co kontener wejściowy, ale tag zostanie ustawiony na określony argument. Jeśli podany element to kontener TLV (struktura, tablica lub ścieżka), zostanie skopiowana cała jego zawartość.

Szczegóły
Parametry
[in] tag
Tag TLV do zakodowania wraz z kontenerem lub AnonymousTag, jeśli kontener powinien być zakodowany 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 wskazującego wstępnie zakodowany element TLV, którego typ i wartość należy skopiować.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli to się uda,
WEAVE_ERROR_INCORRECT_STATE
Jeśli dostarczony czytnik nie jest umieszczony w elemencie.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Jeśli maszyna zapisu w kontenerach została otwarta w bieżącej instancji zapisującej, ale nie została jeszcze zamknięta.
WEAVE_ERROR_TLV_UNDERRUN
Kodowanie TLV powiązane z dostarczonym czytnikiem zakończyło się przedwcześnie.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Jeśli podany czytnik napotkał nieprawidłowy lub nieobsługiwany typ elementu TLV.
WEAVE_ERROR_INVALID_TLV_TAG
Jeśli dostarczony czytnik napotkał tag TLV w nieprawidłowym kontekście lub jeśli dostarczony tag jest nieprawidłowy lub nieodpowiedni w kontekście, w którym został zapisany nowy kontener.
WEAVE_ERROR_BUFFER_TOO_SMALL
Jeśli zapisanie wartości spowodowałoby przekroczenie limitu maksymalnej liczby bajtów określonej podczas zainicjowania zapisu.
WEAVE_ERROR_NO_MEMORY
Próba przydziału bufora wyjściowego nie powiodła się z powodu braku pamięci.
other
Inne błędy Weave lub dotyczące platformy zwrócone 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 reprezentację interfejsu API 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 reprezentację interfejsu API dla tagu TLV określonego w kontekście.

Szczegóły
Parametry
[in] tagNum
Numer tagu zależny od kontekstu.
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” podanego tagu, czyli tagu specyficznego dla profilu.

IsSpecialTag

bool IsSpecialTag(
  uint64_t tag
)

IsValidTLVType

bool IsValidTLVType(
  uint8_t type
)

Zwraca wartość „true” (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 przez interfejs API tagu TLV właściwego dla profilu.
Zwroty
Identyfikator profilu.

ProfileNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

Zwraca numer profilu z tagu TLV.

Szczegóły
Parametry
[in] tag
Reprezentacja przez interfejs API tagu TLV właściwego dla profilu.
Zwroty
Powiązany numer profilu.

ProfileTag

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

Generuje reprezentację interfejsu API tagu 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 specyficznego 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 reprezentację interfejsu API tagu 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 jest zdefiniowany tag.
[in] tagNum
Numer tagu specyficznego 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 podany typ TLV sugeruje obecność powiązanego pola długości.

Szczegóły
Zwroty
true, jeśli 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 podany typ TLV sugeruje obecność powiązanego pola wartości.

Szczegóły
Zwroty
true, jeśli 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 ciągu TLV to kontener.

Szczegóły
Zwroty
true, jeśli podany typ TLV jest kontenerem. W przeciwnym razie false.

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

Zwraca wartość „true” (prawda), jeśli podany typ TLV jest ciągiem znaków UTF8 lub bajtowym.

Szczegóły
Zwroty
true, jeśli podany typ TLV jest ciągiem UTF8 lub bajtowym. W przeciwnym razie false.

TagNumFromTag

uint32_t TagNumFromTag(
  uint64_t tag
)

Zwraca numer tagu z tagu TLV.

Szczegóły
Parametry
[in] tag
Reprezentacja interfejsu API tagu TLV właściwego dla profilu lub kontekstu.
Zwroty
Powiązany numer 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 przez interfejs API tagu TLV właściwego dla profilu.
Zwroty
Identyfikator powiązanego dostawcy.