下载
中文
注册

get_attribute

接口声明

int get_attribute(int fd, unsigned int buffSize, unsigned char *buff)

参数介绍

表1 参数说明

参数名

类型

说明

fd

int

设备文件描述符

buffSize

unsigned int

缓存数组空间大小

buff

unsigned char*

用来传递数据的缓存

功能说明

获取属性接口,根据传入“fd”值确定唯一设备,通过TLV编码的buff解析获取属性ID和对应属性值。

TLV是一种可变格式:Type表示属性ID、Length表示属性长度、Value表示属性值。其中Type和Length的长度固定为4字节,Value的长度根据属性类别的不同,长度可变;具体解析方式如下图所示。
图1 TLV解析图

JSON类型的属性存在多个子属性,JSON属性的Value大小为所有子属性的TLV格式编码的大小;Value属性部分需要再次进行TLV解析,使用偏移量的方式,循环进行JSON子属性的TLV解析,直到Value部分解析完成。具体解析方式如下图所示。

图2 JSON属性的二重TLV解析