get_attribute
接口声明
int get_attribute(int fd, unsigned int buffSize, unsigned char *buff)
参数介绍
参数名 |
类型 |
说明 |
---|---|---|
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解析

父主题: 接口参考