nl:: Weave:: TLV
使用以 Weave TLV 格式编码的数据的定义。
摘要
Weave TLV 是一种适用于简单结构化数据的通用编码方法。它与常用的 JSON 序列化格式有许多共同的属性,同时在线路上相当紧凑。
枚举 |
|
---|---|
@71
|
枚举 |
@73
|
枚举 |
@74{
|
枚举 |
@75
|
枚举 |
TLVCommonProfiles{
|
枚举 |
TLVElementType
|
枚举 |
TLVFieldSize
|
枚举 |
TLVTagControl
|
枚举 |
TLVTagFields
|
枚举 |
TLVType
|
枚举 标识 TLV 元素类型的枚举。 |
变量 |
|
---|---|
kWeaveTLVCopyChunkSize = 16
|
const size_t
将 TLV 元素从读取器对象复制到写入器。
|
sTagSizes = { 0, 1, 2, 4, 2, 4, 6, 8 }[]
|
const uint8_t
|
函数 |
|
---|---|
CommonTag(uint32_t tagNum)
|
uint64_t
生成通用配置文件 TLV 标记的 API 表示法。
|
ContextTag(uint8_t tagNum)
|
uint64_t
为特定于上下文的 TLV 标记生成 API 表示法。
|
GetTLVFieldSize(uint8_t type)
|
TLVFieldSize
|
IsContextTag(uint64_t tag)
|
bool
如果提供的标记是特定于上下文的标记,则返回 true。
|
IsProfileTag(uint64_t tag)
|
bool
如果提供的标记是特定于配置文件的标记,则返回 true。
|
IsSpecialTag(uint64_t tag)
|
bool
|
IsValidTLVType(uint8_t type)
|
bool
如果指定的 TLV 类型有效,则返回 true。
|
ProfileIdFromTag(uint64_t tag)
|
uint32_t
返回 TLV 标记中的个人资料 ID。
|
ProfileNumFromTag(uint64_t tag)
|
uint16_t
从 TLV 标记返回配置文件编号。
|
ProfileTag(uint32_t profileId, uint32_t tagNum)
|
uint64_t
根据配置文件 ID 和标签编号生成配置文件专属 TLV 标记的 API 表示法。
|
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
|
uint64_t
根据供应商 ID、配置文件编号和标签编号生成配置文件专属 TLV 标记的 API 表示法。
|
TLVFieldSizeToBytes(TLVFieldSize fieldSize)
|
uint8_t
|
TLVTypeHasLength(uint8_t type)
|
bool
如果指定的 TLV 类型暗示存在关联的长度字段,则返回 true。
|
TLVTypeHasValue(uint8_t type)
|
bool
如果指定的 TLV 类型暗示存在关联的值字段,则返回 true。
|
TLVTypeIsContainer(uint8_t type)
|
bool
如果指定的 TLV 类型是容器,则返回 true。
|
TLVTypeIsString(uint8_t type)
|
bool
如果指定的 TLV 类型是 UTF8 或字节字符串,则返回 true。
|
TagNumFromTag(uint64_t tag)
|
uint32_t
返回 TLV 标记中的标记编号。
|
VendorIdFromTag(uint64_t tag)
|
uint16_t
返回 TLV 标记中的供应商 ID。
|
类 |
|
---|---|
nl:: |
|
nl:: |
|
nl:: |
为以 Weave TLV 格式编码的数据提供内存高效的解析器。 |
nl:: |
提供统一的 Reader/Writer 接口,用于修改/添加/删除 TLV 编码中的元素。 |
nl:: |
提供内存高效的编码器,用于以 Weave TLV 格式写入数据。 |
nl:: |
WeaveCircularTLVBuffer 可为 nl::Weave::TLV::TLVWriter 和 nl::Weave::TLVTLVReader 提供循环存储空间。 |
命名空间 |
|
---|---|
nl:: |
此命名空间包括用于调试和记录 Weave TLV 的类型和接口。 |
nl:: |
此命名空间包含用于管理和使用 Weave TLV 的类型和实用程序接口。 |
枚举
@71
@71
73 岁
@73
@75
@75
TLVCommonProfiles
TLVCommonProfiles
属性 | |
---|---|
kProfileIdNotSpecified
|
用于指明变量或成员中缺少个人资料 ID。 这与 WeaveProfiles.h 中定义的 kWeaveProfile_NotSpecified 相同 |
TLVElementType
TLVElementType
TLVFieldSize
TLVFieldSize
TLVTagControl
TLVTagControl
TLVTagFields
TLVTagFields
变量
kWeaveTLVCopyChunkSize
const size_t kWeaveTLVCopyChunkSize = 16
将 TLV 元素从读取器对象复制到写入器。
CopyElement() 方法会对新的 TLV 元素进行编码,该元素的类型和值取自 TLVReader 对象。调用该方法时,提供的读取器对象应位于源 TLV 元素上。新编码的元素将具有与输入容器相同的类型和内容,但该标记将设置为指定的参数。如果提供的元素是 TLV 容器(结构、数组或路径),则系统会复制该容器的全部内容。
详细信息 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||||||||
返回值 |
|
sTagSizes
const uint8_t sTagSizes[] = { 0, 1, 2, 4, 2, 4, 6, 8 }
函数
CommonTag
uint64_t CommonTag( uint32_t tagNum )
ContextTag
uint64_t ContextTag( uint8_t tagNum )
GetTLVFieldSize
TLVFieldSize GetTLVFieldSize( uint8_t type )
IsContextTag
bool IsContextTag( uint64_t tag )
如果提供的标记是特定于上下文的标记,则返回 true。
IsProfileTag
bool IsProfileTag( uint64_t tag )
如果提供的标记是特定于配置文件的标记,则返回 true。
IsSpecialTag
bool IsSpecialTag( uint64_t tag )
IsValidTLVType
bool IsValidTLVType( uint8_t type )
ProfileIdFromTag
uint32_t ProfileIdFromTag( uint64_t tag )
ProfileNumFromTag
uint16_t ProfileNumFromTag( uint64_t tag )
ProfileTag
uint64_t ProfileTag( uint32_t profileId, uint32_t tagNum )
根据配置文件 ID 和标签编号生成配置文件专属 TLV 标记的 API 表示法。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
表示标记的 64 位整数。
|
ProfileTag
uint64_t ProfileTag( uint16_t vendorId, uint16_t profileNum, uint32_t tagNum )
根据供应商 ID、配置文件编号和标签编号生成配置文件专属 TLV 标记的 API 表示法。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
表示标记的 64 位整数。
|
TLVFieldSizeToBytes
uint8_t TLVFieldSizeToBytes( TLVFieldSize fieldSize )
TLVTypeHasLength
bool TLVTypeHasLength( uint8_t type )
TLVTypeHasValue
bool TLVTypeHasValue( uint8_t type )
TLVTypeIsContainer
bool TLVTypeIsContainer( uint8_t type )
TLVTypeIsString
bool TLVTypeIsString( uint8_t type )
TagNumFromTag
uint32_t TagNumFromTag( uint64_t tag )
返回 TLV 标记中的标记编号。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
关联的代码编号。
|
IsProfileTag() 和 IsContextTag()