nl::Weave::TLV

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

Resumen

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 a través del cable.

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

Funciones

CommonTag(uint32_t tagNum)
uint64_t
Genera la representación de la 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
Muestra true de la etiqueta proporcionada 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 la API de una etiqueta TLV específica de 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 de perfil a partir de un ID de proveedor, un número de perfil y un número de etiqueta.
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 cadena 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 eficiente en cuanto a la memoria para datos codificados en formato TLV de Weave.

nl::Weave::TLV::TLVUpdater

Proporciona una interfaz Lector/Escritorio unificada para editar, agregar o borrar elementos en codificación TLV.

nl::Weave::TLV::TLVWriter

Proporciona un codificador eficiente en cuanto a la 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 la depuración y el registro de TLV de Weave.

nl::Weave::TLV::Utilities

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

Enumeraciones

@71

 @71

@73

 @73

@74

 @74
Propiedades
AnonymousTag

Es un valor que indica un elemento TLV que no tiene etiqueta (es decir,

un elemento anónimo).

@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 igual a kWeaveProfile_NotSpecify, definido 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 lector proporcionado se posicione en el elemento TLV de origen. El elemento recién codificado 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 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 el contenedor se debe codificar sin una etiqueta. Los valores de las etiquetas deben construirse con una de las funciones de definición de etiquetas: ProfileTag(), ContextTag() o CommonTag().
[in] reader
Es una referencia a un objeto TLVReader que identifica un elemento TLV codificado previamente cuyo tipo y valor se deben copiar.
Valores de retorno
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 y aún no se cerró.
WEAVE_ERROR_TLV_UNDERRUN
Si la codificación TLV subyacente asociada con el lector proporcionado finaliza de forma prematura.
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 la escritura, el valor excedería el límite de la cantidad máxima de bytes especificada 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 de Weave o específicos de la plataforma 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 }

Funciones

CommonTag

uint64_t CommonTag(
  uint32_t tagNum
)

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

Detalles
Parámetros
[in] tagNum
Número de etiqueta de perfil asignado a la etiqueta.
Resultado que se 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.
Resultado que se 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
)

Muestra true de la etiqueta proporcionada 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
Resultado que se muestra
true si el tipo de TLV especificado es válido; de lo contrario, false.

ProfileIdFromTag

uint32_t ProfileIdFromTag(
  uint64_t tag
)

Muestra el ID de perfil de una etiqueta TLV.

Detalles
Parámetros
[in] tag
La representación de la API de una etiqueta TLV específica del perfil.
Resultado que se 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
La representación de la API de una etiqueta TLV específica del perfil.
Resultado que se muestra
El número de perfil asociado.

ProfileTag

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

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

Detalles
Parámetros
[in] profileId
Es el ID del perfil dentro del cual se define la etiqueta.
[in] tagNum
Es el número de etiqueta específico del perfil asignado a la etiqueta.
Resultado que se 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 de perfil a partir de un ID de proveedor, un número de perfil y un número de etiqueta.

Detalles
Parámetros
[in] vendorId
Es el ID del proveedor que definió la etiqueta.
[in] profileNum
El número asignado por el proveedor para el perfil dentro del cual se define la etiqueta.
[in] tagNum
Es el número de etiqueta específico del perfil asignado a la etiqueta.
Resultado que se 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
Resultado que se muestra
true si el tipo de TLV especificado implica la presencia de un campo de longitud asociado. de lo contrario, false.

TLVTypeHasValue

bool TLVTypeHasValue(
  uint8_t type
)

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

Detalles
Resultado que se muestra
true si el tipo de TLV especificado implica la presencia de un campo de valor asociado. de lo contrario, false.

TLVTypeIsContainer

bool TLVTypeIsContainer(
  uint8_t type
)

Muestra true si el tipo TLV especificado es un contenedor.

Detalles
Resultado que se muestra
true si el tipo de TLV especificado es un contenedor; de lo contrario, false.

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

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

Detalles
Resultado que se muestra
true si el tipo TLV especificado es una cadena UTF8 o de bytes. de lo contrario, false.

TagNumFromTag

uint32_t TagNumFromTag(
  uint64_t tag
)

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

Detalles
Parámetros
[in] tag
La representación de la API de una etiqueta TLV específica del perfil o del contexto.
Resultado que se 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
La representación de la API de una etiqueta TLV específica del perfil.
Resultado que se muestra
Es el ID del proveedor asociado.