kernel ttlv 相关接口
API 列表
API 详情
Quos_ttlvAddIdBool
添加节点数据 bool。
函数原型
qbool Quos_ttlvAddIdBool(void **ttlvHead, quint16_t id, qbool value);
参数说明
输入参数
- void **
ttlvHead
:ttlv 节点。 - quint16_t
id
:节点 id。 - qbool
value
:节点 value。
- void **
输出参数
- 无。
返回值
- TRUE:执行成功,FALSE:执行失败。
调用示例
void *ttlvHead = NULL;
Quos_ttlvAddIdBool(&ttlvHead, 1, TRUE);
Quos_ttlvAddIdInt
添加节点数据 int。
函数原型
qbool Quos_ttlvAddIdInt(void **ttlvHead, quint16_t id, qint64_t num);
参数说明
输入参数
- void **
ttlvHead
:ttlv 节点。 - quint16_t
id
:节点 id。 - qint64_t
num
:节点 value。
- void **
输出参数
- 无。
返回值
- TRUE:执行成功,FALSE:执行失败。
调用示例
void *ttlvHead = NULL;
Quos_ttlvAddIdInt(&ttlvHead, 2, 23);
Quos_ttlvAddIdFloat
添加节点数据 float。
函数原型
qbool Quos_ttlvAddIdFloat(void **ttlvHead, quint16_t id, double num);
参数说明
输入参数
- void **
ttlvHead
:ttlv 节点。 - quint16_t
id
:节点 id。 - double
num
:节点 value。
- void **
输出参数
- 无。
返回值
- TRUE:执行成功,FALSE:执行失败。
调用示例
void *ttlvHead = NULL;
Quos_ttlvAddIdFloat(&ttlvHead, 4, 18.5);
Quos_ttlvAddIdFloatEx
添加节点数据 float 扩展。
函数原型
qbool Quos_ttlvAddIdFloatEx(void **ttlvHead, quint16_t id, double value, quint8_t precision);
参数说明
输入参数
- void **
ttlvHead
:ttlv 节点。 - quint16_t
id
:节点 id。 - double
value
:节点 value。 - quint8_t
precision
:float 精度,即小数点位数。
- void **
输出参数
- 无。
返回值
- TRUE:执行成功,FALSE:执行失败。
调用示例
void *ttlvHead = NULL;
Quos_ttlvAddIdFloatEx(&ttlvHead, 4, 18.5, 1);
Quos_ttlvAddIdRaw
添加节点数据 raw。
函数原型
qbool Quos_ttlvAddIdRaw(void **ttlvHead, quint16_t id, const quint8_t *data, quint32_t len);
参数说明
输入参数
- void **
ttlvHead
:ttlv 节点。 - quint16_t
id
:节点 id。 - quint8_t *
data
:节点 value。 - quint32_t *
len
:节点 value len。
- void **
输出参数
- 无。
返回值
- TRUE:执行成功,FALSE:执行失败。
调用示例
void *ttlvHead = NULL;
quint8_t buf[5] = {'a', 'b', 'c', 'd', 'e'};
Quos_ttlvAddIdRaw(&ttlvHead, 5, buf, sizeof(buf));
Quos_ttlvAddIdText
添加节点数据 text。
函数原型
qbool Quos_ttlvAddIdText(void **ttlvHead, quint16_t id, const char *data);
参数说明
输入参数
- void **
ttlvHead
:ttlv 节点。 - quint16_t
id
:节点 id。 - char *
data
:节点 value。
- void **
输出参数
- 无。
返回值
- TRUE:执行成功,FALSE:执行失败。
调用示例
void *ttlvHead = NULL;
Quos_ttlvAddIdText(&ttlvHead, 3, "hello world");
Quos_ttlvAddIdStruct
添加节点数据 struct。
函数原型
qbool Quos_ttlvAddIdStruct(void **ttlvHead, quint16_t id, void *vStruct);
参数说明
输入参数
- void **
ttlvHead
:ttlv 节点。 - quint16_t
id
:节点 id。 - void *
vStruct
:节点 value。
- void **
输出参数
- 无。
返回值
- TRUE:执行成功,FALSE:执行失败。
调用示例
void *ttlvHead = NULL;
void *ttlvArrayHead = NULL;
Quos_ttlvAddIdInt(&ttlvArrayHead, 1, 11);
Quos_ttlvAddIdBool(&ttlvArrayHead, 2, FALSE);
Quos_ttlvAddIdFloat(&ttlvArrayHead, 3, 5.7);
Quos_ttlvAddIdStruct(&ttlvHead, 6, ttlvArrayHead);
Quos_ttlvGetNodeType
获取节点数据类型。
函数原型
qbool Quos_ttlvGetNodeType(const void *ttlvNode, Quos_dpDataType_e *type);
参数说明
输入参数
- void **
ttlvNode
:ttlv 节点。
- void **
输出参数
Quos_dpDataType_e
type
:节点数据类型。具体取值见下表:
取值 描述 QUOS_DPDATA_TYPE_BOOL 数据类型 bool QUOS_DPDATA_TYPE_INT 数据类型 int QUOS_DPDATA_TYPE_FLOAT 数据类型 float QUOS_DPDATA_TYPE_TEXT 数据类型 text QUOS_DPDATA_TYPE_STRUCT 数据类型 struct QUOS_DPDATA_TYPE_RAW 数据类型 raw
返回值
- TRUE:执行成功,FALSE:执行失败。
调用示例
void *ttlvHead = NULL;
Quos_dpDataType_e type = 0;
Quos_ttlvAddIdText(&ttlvHead, 3, "hello world");
Quos_ttlvGetNodeType(ttlvHead, &type);
Quos_ttlvGetNodeBool
获取节点数据 bool。
函数原型
qbool Quos_ttlvGetNodeBool(const void *ttlvNode, qbool *value);
参数说明
输入参数
- void **
ttlvNode
:ttlv 节点。
- void **
输出参数
- qbool
value
:节点数据。
- qbool
返回值
- TRUE:执行成功,FALSE:执行失败。
调用示例
void *ttlvHead = NULL;
qbool val = 0;
Quos_ttlvAddIdBool(&ttlvHead, 1, TRUE);
Quos_ttlvGetNodeBool(ttlvHead, &val);
Quos_ttlvGetNodeInt
获取节点数据 int。
函数原型
qbool Quos_ttlvGetNodeInt(const void *ttlvNode, qint64_t *value);
参数说明
输入参数
- void **
ttlvNode
:ttlv 节点。
- void **
输出参数
- qint64_t
value
:节点数据。
- qint64_t
返回值
- TRUE:执行成功,FALSE:执行失败。
调用示例
void *ttlvHead = NULL;
qint64_t val = 0;
Quos_ttlvAddIdInt(&ttlvHead, 2, 23);
Quos_ttlvGetNodeInt(ttlvHead, &val);
Quos_ttlvGetNodeFloat
获取节点数据 float。
函数原型
qbool Quos_ttlvGetNodeFloat(const void *ttlvNode, double *value);
参数说明
输入参数
- void **
ttlvNode
:ttlv 节点。
- void **
输出参数
- double
value
:节点数据。
- double
返回值
- TRUE:执行成功,FALSE:执行失败。
调用示例
void *ttlvHead = NULL;
double val = 0.0;
Quos_ttlvAddIdFloat(&ttlvHead, 4, 18.5);
Quos_ttlvGetNodeFloat(ttlvHead, &val);
Quos_ttlvGetNodeText
获取节点数据 text。
函数原型
quint32_t Quos_ttlvGetNodeText(const void *ttlvNode, char **value)
参数说明
输入参数
- void **
ttlvNode
:ttlv 节点。
- void **
输出参数
- quint8_t **
value
:ttlv 数据。
- quint8_t **
返回值
- 节点数据长度。
调用示例
void *ttlvHead = NULL;
Quos_ttlvAddIdText(&ttlvHead, 3, "hello world");
char *ch = NULL;
Quos_ttlvGetNodeText(ttlvHead, &ch);
Quos_ttlvGetNodeStruct
获取节点数据 struct。
函数原型
void *Quos_ttlvGetNodeStruct(const void *ttlvNode);
参数说明
输入参数
- void **
ttlvNode
:ttlv 节点。
- void **
输出参数
- 无。
返回值
- 节点数据。
调用示例
void *ttlvHead = NULL;
void *ttlvArrayHead = NULL;
Quos_ttlvAddIdInt(&ttlvArrayHead, 1, 11);
Quos_ttlvAddIdBool(&ttlvArrayHead, 2, FALSE);
Quos_ttlvAddIdFloat(&ttlvArrayHead, 3, 5.7);
Quos_ttlvAddIdStruct(&ttlvHead, 6, ttlvArrayHead);
void *st = Quos_ttlvGetNodeStruct(ttlvHead);
Quos_ttlvGetNodeRaw
获取节点数据 raw。
函数原型
quint32_t Quos_ttlvGetNodeRaw(const void *ttlvNode, quint8_t **value);
参数说明
输入参数
- void **
ttlvNode
:ttlv 节点。
- void **
输出参数
- quint8_t **
value
:ttlv 数据。
- quint8_t **
返回值
- 节点数据长度。
调用示例
void *ttlvHead = NULL;
quint8_t *value = NULL;
Quos_ttlvAddIdRaw(&ttlvHead, 5, buf, sizeof(buf));
quint32_t len = Quos_ttlvGetNodeRaw(ttlvHead, &value);
Quos_ttlvGetIdType
获取指定 ID 节点数据类型。
函数原型
qbool Quos_ttlvGetIdType(const void *ttlvHead, quint16_t id, Quos_dpDataType_e *type);
参数说明
输入参数
- void **
ttlvNode
:ttlv 节点。 - quint16_t
id
:ttlv id。
- void **
输出参数
- Quos_dpDataType_e *
type
:ttlv 数据类型。
- Quos_dpDataType_e *
返回值
- TRUE:执行成功,FALSE:执行失败。
调用示例
void *ttlvHead = NULL;
Quos_dpDataType_e type = 0;
Quos_ttlvAddIdText(&ttlvHead, 3, "hello world");
Quos_ttlvGetIdType(ttlvHead, 3, &type);
Quos_ttlvGetIdBool
获取指定 ID 节点数据 bool。
函数原型
qbool Quos_ttlvGetIdBool(const void *ttlvHead, quint16_t id, qbool *value);
参数说明
输入参数
- void **
ttlvNode
:ttlv 节点。 - quint16_t
id
:ttlv id。
- void **
输出参数
- qbool *
value
:ttlv 数据。
- qbool *
返回值
- TRUE:执行成功,FALSE:执行失败。
调用示例
void *ttlvHead = NULL;
qbool value = 0;
Quos_ttlvAddIdBool(&ttlvHead, 1, TRUE);
Quos_ttlvGetIdBool(ttlvHead, 1, &value);
Quos_ttlvGetIdInt
获取指定 ID 节点数据 int。
函数原型
qbool Quos_ttlvGetIdInt(const void *ttlvHead, quint16_t id, qint64_t *value);
参数说明
输入参数
- void **
ttlvNode
:ttlv 节点。 - quint16_t
id
:ttlv id。
- void **
输出参数
- qint64_t *
value
:ttlv 数据。
- qint64_t *
返回值
- TRUE:执行成功,FALSE:执行失败。
调用示例
void *ttlvHead = NULL;
qint64_t value = 0;
Quos_ttlvAddIdInt(&ttlvHead, 2, 23);
Quos_ttlvGetIdInt(ttlvHead, 2, &value);
Quos_ttlvGetIdFloat
获取指定 ID 节点数据 float。
函数原型
qbool Quos_ttlvGetIdFloat(const void *ttlvHead, quint16_t id, double *value);
参数说明
输入参数
- void **
ttlvNode
:ttlv 节点。 - quint16_t
id
:ttlv id。
- void **
输出参数
- double *
value
:ttlv 数据。
- double *
返回值
- TRUE:执行成功,FALSE:执行失败。
调用示例
void *ttlvHead = NULL;
double value = 0.0;
Quos_ttlvAddIdFloat(&ttlvHead, 4, 18.5);
Quos_ttlvGetIdFloat(ttlvHead, 4, &value);
Quos_ttlvGetIdText
获取指定 ID 节点数据 text。
函数原型
quint32_t Quos_ttlvGetIdText(const void *ttlvHead, quint16_t id, char **value);
参数说明
输入参数
- void **
ttlvNode
:ttlv 节点。 - quint16_t
id
:ttlv id。
- void **
输出参数
- quint8_t **
value
:ttlv 数据。
- quint8_t **
返回值
- 数据长度。
调用示例
void *ttlvHead = NULL;
Quos_ttlvAddIdText(&ttlvHead, 3, "hello world");
char *ch = NULL;
Quos_ttlvGetIdText(ttlvHead, 3, &ch);
Quos_ttlvGetIdStruct
获取指定 ID 节点数据 struct。
函数原型
void *Quos_ttlvGetIdStruct(const void *ttlvHead, quint16_t id);
参数说明
输入参数
- void **
ttlvNode
:ttlv 节点。 - quint16_t
id
:ttlv id。
- void **
输出参数
- 无。
返回值
- ttlv 数据。
调用示例
void *ttlvHead = NULL;
void *ttlvArrayHead = NULL;
Quos_ttlvAddIdInt(&ttlvArrayHead, 1, 11);
Quos_ttlvAddIdBool(&ttlvArrayHead, 2, FALSE);
Quos_ttlvAddIdFloat(&ttlvArrayHead, 3, 5.7);
Quos_ttlvAddIdStruct(&ttlvHead, 6, ttlvArrayHead);
void *st = Quos_ttlvGetIdStruct(ttlvHead, 6);
Quos_ttlvGetIdRaw
获取指定 ID 节点数据 raw。
函数原型
quint32_t Quos_ttlvGetIdRaw(const void *ttlvHead, quint16_t id, quint8_t **value);
参数说明
输入参数
- void **
ttlvNode
:ttlv 节点。 - quint16_t
id
:ttlv id。
- void **
输出参数
- quint8_t **
value
:ttlv 数据。
- quint8_t **
返回值
- 数据长度。
调用示例
void *ttlvHead = NULL;
quint8_t *value = NULL;
quint8_t buf[5] = {'a', 'b', 'c', 'd', 'e'};
Quos_ttlvAddIdRaw(&ttlvHead, 5, buf, sizeof(buf));
quint32_t len = Quos_ttlvGetIdRaw(ttlvHead, 5, &value);
Quos_ttlvGetCount
获取节点个数。
函数原型
quint32_t Quos_ttlvGetCount(const void *ttlvHead);
参数说明
输入参数
- void **
ttlvHead
:ttlv 节点。
- void **
输出参数
- 无。
返回值
- 节点个数。
调用示例
void *ttlvHead = NULL;
Quos_ttlvAddIdBool(&ttlvHead, 1, TRUE);
Quos_ttlvAddIdInt(&ttlvHead, 2, 23);
Quos_ttlvAddIdText(&ttlvHead, 3, "hello world");
quint32_t len = Quos_ttlvGetCount(ttlvHead);
Quos_ttlvGetNode
获取节点指针。
函数原型
void *Quos_ttlvGetNode(const void *ttlvHead, quint16_t index, quint16_t *id, Quos_dpDataType_e *type);
参数说明
输入参数
- void **
ttlvHead
:ttlv 节点。 - quint16_t
index
:节点索引。
- void **
输出参数
- quint16_t *
id
:节点 id。 - Quos_dpDataType_e *
type
:节点类型。
- quint16_t *
返回值
- 节点指针。
调用示例
void *ttlvHead = NULL;
quint16_t id = 0;
Quos_dpDataType_e type = 0;
Quos_ttlvAddIdBool(&ttlvHead, 1, TRUE);
void *ptr = Quos_ttlvGetNode(ttlvHead, 0, &id, &type);
Quos_ttlvRemove
删除节点。
函数原型
void Quos_ttlvRemove(void **ttlvHead, quint16_t id);
参数说明
输入参数
- void **
ttlvHead
:ttlv 节点。 - quint16_t
id
:节点 id。
- void **
输出参数
- 无。
返回值
- 无。
调用示例
void *ttlvHead = NULL;
Quos_ttlvAddIdBool(&ttlvHead, 1, TRUE);
Quos_ttlvRemove(&ttlvHead, 1);
Quos_ttlvFree
释放节点。
函数原型
void Quos_ttlvFree(void **ttlvHead);
参数说明
输入参数
- void **
ttlvHead
:ttlv 节点。
- void **
输出参数
- 无。
返回值
- 无。
调用示例
void *ttlvHead = NULL;
Quos_ttlvAddIdBool(&ttlvHead, 1, TRUE);
Quos_ttlvFree(&ttlvHead);
Quos_ttlvUnformat
将字节流转成 ttlv 节点。
函数原型
void *Quos_ttlvUnformat(const quint8_t *buffer, quint32_t len);
参数说明
输入参数
- quint8_t *
buffer
:字节数据。 - quint32_t
len
:字节数据长度。
- quint8_t *
输出参数
- 无。
返回值
- ttlv 节点。
调用示例
void *ttlvHead = Quos_ttlvUnformat(payload, payloadLen);
Quos_ttlvFormat
将 ttlv 节点转成字节流。
函数原型
quint32_t Quos_ttlvFormat(const void *ttlvHead, quint8_t *retBuf);
参数说明
输入参数
- void *
ttlvHead
:ttlv 节点。
- void *
输出参数
- quint8_t
retBuf
:字节数据。
- quint8_t
返回值
- 字节数据长度。
调用示例
void *ttlvHead = NULL;
quint8_t buf[128] = {0};
Quos_ttlvAddIdBool(&ttlvHead, 1, TRUE);
quint32_t len = Quos_ttlvFormat(ttlvHead, buf);
Quos_ttlvFormatLen
将 ttlv 节点转成字节流长度。
函数原型
quint32_t Quos_ttlvFormatLen(const void *ttlvHead);
参数说明
输入参数
- void *
ttlvHead
:ttlv 节点。
- void *
输出参数
- 无。
返回值
- 字节数据长度。
调用示例
void *ttlvHead = NULL;
Quos_ttlvAddIdBool(&ttlvHead, 1, TRUE);
quint32_t len = Quos_ttlvFormatLen(ttlvHead);
Quos_ttlvHeadPrintf
打印 ttlv 内容。
函数原型
void Quos_ttlvHeadPrintf(const void *ttlvHead);
参数说明
输入参数
- void *
ttlvHead
:ttlv 节点。
- void *
输出参数
- 无。
返回值
- 无。
调用示例
void *ttlvHead = NULL;
Quos_ttlvAddIdBool(&ttlvHead, 1, TRUE);
Quos_ttlvHeadPrintf(ttlvHead);
Quos_json2Ttlv
json 转 ttlv。
函数原型
void *Quos_json2Ttlv(const Quos_cjson_t *json);
参数说明
输入参数
- Quos_cjson_t *
json
:json 对象。
- Quos_cjson_t *
输出参数
- 无。
返回值
- ttlv 节点。
调用示例
Quos_cjson_t * js = NULL;
void *ttlvHead = NULL;
js = Quos_cjsonCreateNumber(120);
ttlvHead = Quos_json2Ttlv(js);
Quos_ttlv2Json
ttlv 转 json。
函数原型
Quos_cjson_t *Quos_ttlv2Json(const void *ttlvHead);
参数说明
输入参数
- void *
ttlvHead
:ttlv 节点。
- void *
输出参数
- 无。
返回值
- json 对象。
调用示例
Quos_cjson_t * js = NULL;
void *ttlvHead = NULL;
Quos_ttlvAddIdBool(&ttlvHead, 1, TRUE);
js = Quos_ttlv2Json(ttlvHead);
错误码列表
枚举值 | 十六进制 | 十进制 | 描述 |
---|---|---|---|
OPRT_OK | -0x0000 | -0 | 执行成功 |