nl::Weave::TLV

Definiciones para trabajar con datos codificados en formato TLV de Weave.

Resumen

El TLV de Weave es un método de codificación generalizado para datos estructurados simples. Comparte muchas propiedades con el formato de serialización JSON de uso general y es considerablemente más compacto por medio de la conexión.

Enumeraciones

@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
Una enumeración que identifica el tipo de un elemento TLV.

Variables

kWeaveTLVCopyChunkSize = 16
const size_t
Copia un elemento TLV de un objeto de lector en el escritor.
sTagSizes = { 0, 1, 2, 4, 2, 4, 6, 8 }[]
const uint8_t

remotas

CommonTag(uint32_t tagNum)
uint64_t
Genera la representación de API de una etiqueta TLV de perfil común.
ContextTag(uint8_t tagNum)
uint64_t
Genera la representación de la API para la etiqueta TLV específica del contexto.
GetTLVFieldSize(uint8_t type)
TLVFieldSize
IsContextTag(uint64_t tag)
bool
Muestra true si la etiqueta proporcionada es una etiqueta específica del contexto.
IsProfileTag(uint64_t tag)
bool
El resultado es verdadero de la etiqueta proporcionada si es una etiqueta específica del perfil.
IsSpecialTag(uint64_t tag)
bool
IsValidTLVType(uint8_t type)
bool
Muestra true si el tipo TLV especificado es válido.
ProfileIdFromTag(uint64_t tag)
uint32_t
Muestra el ID de perfil de una etiqueta TLV.
ProfileNumFromTag(uint64_t tag)
uint16_t
Muestra el número de perfil de una etiqueta TLV.
ProfileTag(uint32_t profileId, uint32_t tagNum)
uint64_t
Genera la representación de API de una etiqueta TLV específica del perfil a partir de un ID de perfil y un número de etiqueta.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
Genera la representación de la API de una etiqueta TLV específica del perfil a partir de un ID, un número de perfil y un número de etiqueta del proveedor.
TLVFieldSizeToBytes(TLVFieldSize fieldSize)
uint8_t
TLVTypeHasLength(uint8_t type)
bool
Muestra true si el tipo TLV especificado implica la presencia de un campo de longitud asociado.
TLVTypeHasValue(uint8_t type)
bool
Muestra true si el tipo TLV especificado implica la presencia de un campo de valor asociado.
TLVTypeIsContainer(uint8_t type)
bool
Muestra true si el tipo TLV especificado es un contenedor.
TLVTypeIsString(uint8_t type)
bool
Muestra true si el tipo TLV especificado es una string UTF8 o de bytes.
TagNumFromTag(uint64_t tag)
uint32_t
Muestra el número de etiqueta de una etiqueta TLV.
VendorIdFromTag(uint64_t tag)
uint16_t
Muestra el ID del proveedor de una etiqueta TLV.

Clases

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

Proporciona un analizador de memoria eficiente para los datos codificados en formato TLV de Weave.

nl::Weave::TLV::TLVUpdater

Proporciona una interfaz de lector y escritor unificada para editar, agregar y borrar elementos en la codificación TLV.

nl::Weave::TLV::TLVWriter

Proporciona un codificador eficiente de memoria para escribir datos en formato TLV de Weave.

nl::Weave::TLV::WeaveCircularTLVBuffer

WeaveCircularTLVBuffer proporciona almacenamiento circular para nl::Weave::TLV::TLVWriter y nl::Weave::TLVTLVReader.

Espacios de nombres

nl::Weave::TLV::Debug

Este espacio de nombres incluye interfaces y tipos para depurar y registrar el TLV de Weave.

nl::Weave::TLV::Utilities

Este espacio de nombres incluye interfaces de utilidad y tipos para administrar y trabajar con TLV de Weave.

Enumeraciones

@71

 @71

@73

 @73

@74

 @74
Propiedades
AnonymousTag

Un valor que representa un elemento TLV que no tiene etiqueta (es decir,

un elemento anónimo).

A 75

 @75

TLVCommonProfiles

 TLVCommonProfiles
Propiedades
kProfileIdNotSpecified

Se usa para indicar la ausencia de un ID de perfil en una variable o un miembro.

En esencia, es lo mismo que el valor de kWeaveProfile_Notspecified en WeaveProfiles.h.

TLVElementType

 TLVElementType

TLVFieldSize

 TLVFieldSize

TLVTagControl

 TLVTagControl

TLVTagFields

 TLVTagFields

TLVType

 TLVType

Una enumeración que identifica el tipo de un elemento TLV.

Variables

kWeaveTLVCopyChunkSize

const size_t kWeaveTLVCopyChunkSize = 16

Copia un elemento TLV de un objeto de lector en el escritor.

El método CopyElement() codifica un nuevo elemento TLV cuyo tipo y valor se toman de un objeto TLVReader. Cuando se llama al método, se espera que el objeto de lector proporcionado se posicione en el elemento TLV de origen. El elemento codificado recientemente tendrá el mismo tipo y contenido que el contenedor de entrada; sin embargo, la etiqueta se establecerá en el argumento especificado. Si el elemento proporcionado es un contenedor de TLV (estructura, array o ruta), se copiará todo el contenido del contenedor.

Detalles
Parámetros
[in] tag
La etiqueta TLV que se codificará con el contenedor o AnonymousTag si este se debe codificar sin una etiqueta Los valores de etiqueta se deben construir con una de las funciones de definición de etiqueta ProfileTag(), ContextTag() o CommonTag().
[in] reader
Una referencia a un objeto TLVReader que identifica un elemento TLV precodificado cuyo tipo y valor deben copiarse.
Valores que se muestran
WEAVE_NO_ERROR
Si el método tuvo éxito.
WEAVE_ERROR_INCORRECT_STATE
Si el lector proporcionado no está posicionado en un elemento.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Si un escritor de contenedor se abrió en el escritor actual, pero aún no se cerró.
WEAVE_ERROR_TLV_UNDERRUN
Si la codificación TLV subyacente asociada con el lector proporcionado finalizó antes de tiempo.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Si el lector proporcionado encontró un tipo de elemento TLV no válido o no compatible.
WEAVE_ERROR_INVALID_TLV_TAG
Si el lector proporcionado encontró una etiqueta TLV en un contexto no válido, o si la etiqueta proporcionada no es válida o es inapropiada en el contexto en el que se escribe el contenedor nuevo.
WEAVE_ERROR_BUFFER_TOO_SMALL
Si escribir el valor excede el límite de la cantidad máxima de bytes especificado cuando se inicializó el escritor.
WEAVE_ERROR_NO_MEMORY
Si un intento de asignar un búfer de salida falló debido a la falta de memoria.
other
Otros errores específicos de la plataforma o de Weave que muestran las funciones GetNewBuffer() o FinalizeBuffer() configuradas, o la función GetNextBuffer() asociada con el objeto de lector.

sTagSizes

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

remotas

CommonTag

uint64_t CommonTag(
  uint32_t tagNum
)

Genera la representación de API de una etiqueta TLV de perfil común.

Detalles
Parámetros
[in] tagNum
El número de etiqueta de perfil común asignado a la etiqueta.
Qué muestra
Es un número entero de 64 bits que representa la etiqueta.

ContextTag

uint64_t ContextTag(
  uint8_t tagNum
)

Genera la representación de la API para la etiqueta TLV específica del contexto.

Detalles
Parámetros
[in] tagNum
El número de etiqueta específico del contexto asignado a la etiqueta.
Qué muestra
Es un número entero de 64 bits que representa la etiqueta.

GetTLVFieldSize

TLVFieldSize GetTLVFieldSize(
  uint8_t type
)

IsContextTag

bool IsContextTag(
  uint64_t tag
)

Muestra true si la etiqueta proporcionada es una etiqueta específica del contexto.

IsProfileTag

bool IsProfileTag(
  uint64_t tag
)

El resultado es verdadero de la etiqueta proporcionada si es una etiqueta específica del perfil.

IsSpecialTag

bool IsSpecialTag(
  uint64_t tag
)

IsValidTLVType

bool IsValidTLVType(
  uint8_t type
)

Muestra true si el tipo TLV especificado es válido.

Detalles
Qué muestra
true si el tipo TLV especificado es válido; de lo contrario, es false.

ProfileIdFromTag

uint32_t ProfileIdFromTag(
  uint64_t tag
)

Muestra el ID de perfil de una etiqueta TLV.

Detalles
Parámetros
[in] tag
Representación de la API de una etiqueta TLV específica del perfil.
Qué muestra
El ID del perfil.

ProfileNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

Muestra el número de perfil de una etiqueta TLV.

Detalles
Parámetros
[in] tag
Representación de la API de una etiqueta TLV específica del perfil.
Qué muestra
El número de perfil asociado.

ProfileTag

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

Genera la representación de API de una etiqueta TLV específica del perfil a partir de un ID de perfil y un número de etiqueta.

Detalles
Parámetros
[in] profileId
Es el ID del perfil en el que se define la etiqueta.
[in] tagNum
El número de etiqueta específico del perfil asignado a la etiqueta.
Qué muestra
Es un número entero de 64 bits que representa la etiqueta.

ProfileTag

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

Genera la representación de la API de una etiqueta TLV específica del perfil a partir de un ID, un número de perfil y un número de etiqueta del proveedor.

Detalles
Parámetros
[in] vendorId
Es el ID del proveedor que definió la etiqueta.
[in] profileNum
Es el número que el proveedor asignó al perfil en el que se define la etiqueta.
[in] tagNum
El número de etiqueta específico del perfil asignado a la etiqueta.
Qué muestra
Es un número entero de 64 bits que representa la etiqueta.

TLVFieldSizeToBytes

uint8_t TLVFieldSizeToBytes(
  TLVFieldSize fieldSize
)

TLVTypeHasLength

bool TLVTypeHasLength(
  uint8_t type
)

Muestra true si el tipo TLV especificado implica la presencia de un campo de longitud asociado.

Detalles
Qué muestra
true si el tipo TLV especificado implica la presencia de un campo de longitud asociado; de lo contrario, es false.

TLVTypeHasValue

bool TLVTypeHasValue(
  uint8_t type
)

Muestra true si el tipo TLV especificado implica la presencia de un campo de valor asociado.

Detalles
Qué muestra
true si el tipo TLV especificado implica la presencia de un campo de valor asociado; de lo contrario, es false.

TLVTypeIsContainer

bool TLVTypeIsContainer(
  uint8_t type
)

Muestra true si el tipo TLV especificado es un contenedor.

Detalles
Qué muestra
true si el tipo TLV especificado es un contenedor, de lo contrario, es false.

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

Muestra true si el tipo TLV especificado es una string UTF8 o de bytes.

Detalles
Qué muestra
true si el tipo TLV especificado es una string UTF8 o de bytes; de lo contrario, es false.

TagNumFromTag

uint32_t TagNumFromTag(
  uint64_t tag
)

Muestra el número de etiqueta de una etiqueta TLV.

Detalles
Parámetros
[in] tag
Representación de la API de una etiqueta TLV específica de un perfil o de un contexto.
Qué muestra
El número de etiqueta asociado.
Consulta también:
IsProfileTag() e IsContextTag()

VendorIdFromTag

uint16_t VendorIdFromTag(
  uint64_t tag
)

Muestra el ID del proveedor de una etiqueta TLV.

Detalles
Parámetros
[in] tag
Representación de la API de una etiqueta TLV específica del perfil.
Qué muestra
Es el ID del proveedor asociado.