Appearance
TTLV Data API
API Overview
Function | Description |
---|---|
Quos_ttlvAddIdBool() | Adds a boolean data node to the TTLV data table. |
Quos_ttlvAddIdInt() | Adds an integer data node to the TTLV data table. |
Quos_ttlvAddIdFloat() | Adds a float data node to the TTLV data table. |
Quos_ttlvAddIdFloatEx() | Adds a float-extended data node to the TTLV data table. |
Quos_ttlvAddIdRaw() | Adds a raw data node to the TTLV data table. |
Quos_ttlvAddIdText() | Adds a text data node to the TTLV data table. |
Quos_ttlvAddIdStruct() | Adds a structure data node to the TTLV data table. |
Quos_ttlvGetNodeType() | Gets the data type of a node. |
Quos_ttlvGetNodeBool() | Gets boolean data from a node. |
Quos_ttlvGetNodeInt() | Gets integer data from a node. |
Quos_ttlvGetNodeFloat() | Gets float data from a node. |
Quos_ttlvGetNodeText() | Gets text data from a node. |
Quos_ttlvGetNodeStruct() | Gets structure data from a node. |
Quos_ttlvGetNodeRaw() | Gets raw data from a node. |
Quos_ttlvGetIdType() | Gets the data type of a node. |
Quos_ttlvGetIdBool() | Gets boolean data from a node. |
Quos_ttlvGetIdInt() | Gets integer data from a node. |
Quos_ttlvGetIdFloat() | Gets float data from a node. |
Quos_ttlvGetIdText() | Gets text data from a node. |
Quos_ttlvGetIdStruct() | Gets structure data from a node. |
Quos_ttlvGetIdRaw() | Gets raw data from a node. |
Quos_ttlvGetCount() | Gets the number of nodes. |
Quos_ttlvGetNode() | Gets the pointer to a node. |
Quos_ttlvRemove() | Deletes node. |
Quos_ttlvFree() | Releases TTLV data table resources. |
Quos_ttlvUnformat() | Converts byte stream to TTLV data table. |
Quos_ttlvFormat() | Converts TTLV data to byte stream data. |
Quos_ttlvFormatLen() | Gets the length of byte stream converted from TTLV object |
Quos_ttlvHeadPrintf() | Prints the TTLV data table. |
Quos_json2Ttlv() | Converts JSON data to TTLV data. |
Quos_ttlv2Json() | Converts TTLV data to JSON data. |
API Description
Quos_ttlvAddIdBool
This function adds a boolean data node to the TTLV data table.
Prototype
c
qbool Quos_ttlvAddIdBool(void **ttlvHead, quint16_t id, qbool value);
Parameter
Input Parameter
- void **
ttlvHead
: TTLV data table. - quint16_t
id
: Node ID. - qbool
value
: Node data.
- void **
Output Parameter
- None
Return Value
- TRUE: Successful execution
- FALSE: Failed execution
Example
c
void *ttlvHead = NULL;
Quos_ttlvAddIdBool(&ttlvHead, 1, TRUE);
Quos_ttlvAddIdInt
This function adds an integer data node to the TTLV data table.
Prototype
c
qbool Quos_ttlvAddIdInt(void **ttlvHead, quint16_t id, qint64_t num);
Parameter
Input Parameter
- void **
ttlvHead
: TTLV data table. - quint16_t
id
: Node ID. - qint64_t
num
: Node data.
- void **
Output Parameter
- None
Return Value
- TRUE: Successful execution
- FALSE: Failed execution
Example
c
void *ttlvHead = NULL;
Quos_ttlvAddIdInt(&ttlvHead, 2, 23);
Quos_ttlvAddIdFloat
This function adds a float data node to the TTLV data table.
Prototype
c
qbool Quos_ttlvAddIdFloat(void **ttlvHead, quint16_t id, double num);
Parameter
Input Parameter
- void **
ttlvHead
: TTLV data table. - quint16_t
id
: Node ID. - double
num
: Node data.
- void **
Output Parameter
- None
Return Value
- TRUE: Successful execution
- FALSE: Failed execution
Example
c
void *ttlvHead = NULL;
Quos_ttlvAddIdFloat(&ttlvHead, 4, 18.5);
Quos_ttlvAddIdFloatEx
This function adds a float-extended data node to the TTLV data table.
Prototype
c
qbool Quos_ttlvAddIdFloatEx(void **ttlvHead, quint16_t id, double value, quint8_t precision);
Parameter
Input Parameter
- void **
ttlvHead
: TTLV data table. - quint16_t
id
: Node ID. - double
value
: Node data. - quint8_t
precision
: Precision of the float value, i.e., number of decimal places.
- void **
Output Parameter
- None
Return Value
- TRUE: Successful execution
- FALSE: Failed execution
Example
c
void *ttlvHead = NULL;
Quos_ttlvAddIdFloatEx(&ttlvHead, 4, 18.5, 1);
Quos_ttlvAddIdRaw
This function adds a raw data node to the TTLV data table.
Prototype
c
qbool Quos_ttlvAddIdRaw(void **ttlvHead, quint16_t id, const quint8_t *data, quint32_t len);
Parameter
Input Parameter
- void **
ttlvHead
: TTLV data table. - quint16_t
id
: Node ID. - quint8_t *
data
: Node data. - quint32_t *
len
:Length of the node data.
- void **
Output Parameter
- None
Return Value
- TRUE: Successful execution
- FALSE: Failed execution
Example
c
void *ttlvHead = NULL;
quint8_t buf[5] = {'a', 'b', 'c', 'd', 'e'};
Quos_ttlvAddIdRaw(&ttlvHead, 5, buf, sizeof(buf));
Quos_ttlvAddIdText
This function adds a text data node to the TTLV data table.
Prototype
c
qbool Quos_ttlvAddIdText(void **ttlvHead, quint16_t id, const char *data);
Parameter
Input Parameter
- void **
ttlvHead
: TTLV data table. - quint16_t
id
: Node ID. - char *
data
: Node data.
- void **
Output Parameter
- None
Return Value
- TRUE: Successful execution
- FALSE: Failed execution
Example
c
void *ttlvHead = NULL;
Quos_ttlvAddIdText(&ttlvHead, 3, "hello world");
Quos_ttlvAddIdStruct
This function adds a structure data node to the TTLV data table.
Prototype
c
qbool Quos_ttlvAddIdStruct(void **ttlvHead, quint16_t id, void *vStruct);
Parameter
Input Parameter
- void **
ttlvHead
: TTLV data table. - quint16_t
id
: Node ID. - void *
vStruct
: Node data.
- void **
Output Parameter
- None
Return Value
- TRUE: Successful execution
- FALSE: Failed execution
Example
c
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
This function gets the data type of a node.
Prototype
c
qbool Quos_ttlvGetNodeType(const void *ttlvNode, Quos_dpDataType_e *type);
Parameter
Input Parameter
void **
ttlvNode
: TTLV data table.Output Parameter
- Quos_dpDataType_e
type
: Node data type.
Value Description QUOS_DPDATA_TYPE_BOOL Boolean QUOS_DPDATA_TYPE_INT Integer QUOS_DPDATA_TYPE_FLOAT Float QUOS_DPDATA_TYPE_TEXTT Text QUOS_DPDATA_TYPE_STRUCT Structure QUOS_DPDATA_TYPE_RAW Raw - Quos_dpDataType_e
Return Value
- TRUE: Successful execution
- FALSE: Failed execution
Example
c
void *ttlvHead = NULL;
Quos_dpDataType_e type = 0;
Quos_ttlvAddIdText(&ttlvHead, 3, "hello world");
Quos_ttlvGetNodeType(ttlvHead, &type);
Quos_ttlvGetNodeBool
This function gets boolean data from a node.
Prototype
c
qbool Quos_ttlvGetNodeBool(const void *ttlvNode, qbool *value);
Parameter
Input Parameter
- void **
ttlvNode
: TTLV node.
- void **
Output Parameter
- qbool
value
: Node data.
- qbool
Return Value
- TRUE: Successful execution
- FALSE: Failed execution
Example
c
void *ttlvHead = NULL;
qbool val = 0;
Quos_ttlvAddIdBool(&ttlvHead, 1, TRUE);
Quos_ttlvGetNodeBool(ttlvHead, &val);
Quos_ttlvGetNodeInt
This function gets integer data from a node.
Prototype
c
qbool Quos_ttlvGetNodeInt(const void *ttlvNode, qint64_t *value);
Parameter
Input Parameter
- void **
ttlvNode
: TTLV node.
- void **
Output Parameter
- qint64_t
value
: Node data.
- qint64_t
Return Value
- TRUE: Successful execution
- FALSE: Failed execution
Example
c
void *ttlvHead = NULL;
qint64_t val = 0;
Quos_ttlvAddIdInt(&ttlvHead, 2, 23);
Quos_ttlvGetNodeInt(ttlvHead, &val);
Quos_ttlvGetNodeFloat
This function gets float data from a node.
Prototype
c
qbool Quos_ttlvGetNodeFloat(const void *ttlvNode, double *value);
Parameter
Input Parameter
- void **
ttlvNode
: TTLV node.
- void **
Output Parameter
- double
value
: Node data.
- double
Return Value
- TRUE: Successful execution
- FALSE: Failed execution
Example
c
void *ttlvHead = NULL;
double val = 0.0;
Quos_ttlvAddIdFloat(&ttlvHead, 4, 18.5);
Quos_ttlvGetNodeFloat(ttlvHead, &val);
Quos_ttlvGetNodeText
This function gets text data from a node.
Prototype
c
quint32_t Quos_ttlvGetNodeText(const void *ttlvNode, char **value)
Parameter
Input Parameter
- void **
ttlvNode
: TTLV node.
- void **
Output Parameter
- quint8_t **
value
: Node data.
- quint8_t **
Return Value
- Length of the node data.
Example
c
void *ttlvHead = NULL;
Quos_ttlvAddIdText(&ttlvHead, 3, "hello world");
char *ch = NULL;
Quos_ttlvGetNodeText(ttlvHead, &ch);
Quos_ttlvGetNodeStruct
This function gets structure data from a node.
Prototype
c
void *Quos_ttlvGetNodeStruct(const void *ttlvNode);
Parameter
Input Parameter
- void **
ttlvNode
: TTLV node.
- void **
Output Parameter
- None
Return Value
- Node data.
Example
c
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
This function gets raw data from a node.
Prototype
c
quint32_t Quos_ttlvGetNodeRaw(const void *ttlvNode, quint8_t **value);
Parameter
Input Parameter
- void **
ttlvNode
: TTLV node.
- void **
Output Parameter
- quint8_t **
value
: Node data.
- quint8_t **
Return Value
- Length of the node data.
Example
c
void *ttlvHead = NULL;
quint8_t *value = NULL;
Quos_ttlvAddIdRaw(&ttlvHead, 5, buf, sizeof(buf));
quint32_t len = Quos_ttlvGetNodeRaw(ttlvHead, &value);
Quos_ttlvGetIdType
This function gets the data type of a node.
Prototype
c
qbool Quos_ttlvGetIdType(const void *ttlvHead, quint16_t id, Quos_dpDataType_e *type);
Parameter
Input Parameter
- void **
ttlvNode
: TTLV node. - quint16_t
id
: Node ID.
- void **
Output Parameter
- Quos_dpDataType_e *
type
: Node data type.
- Quos_dpDataType_e *
Return Value
- TRUE: Successful execution
- FALSE: Failed execution
Example
c
void *ttlvHead = NULL;
Quos_dpDataType_e type = 0;
Quos_ttlvAddIdText(&ttlvHead, 3, "hello world");
Quos_ttlvGetIdType(ttlvHead, 3, &type);
Quos_ttlvGetIdBool
This function gets boolean data from a node.
Prototype
c
qbool Quos_ttlvGetIdBool(const void *ttlvHead, quint16_t id, qbool *value);
Parameter
Input Parameter
- void **
ttlvNode
: TTLV node. - quint16_t
id
: Node ID.
- void **
Output Parameter
- qbool *
value
: Node data.
- qbool *
Return Value
- TRUE: Successful execution
- FALSE: Failed execution
Example
c
void *ttlvHead = NULL;
qbool value = 0;
Quos_ttlvAddIdBool(&ttlvHead, 1, TRUE);
Quos_ttlvGetIdBool(ttlvHead, 1, &value);
Quos_ttlvGetIdInt
This function gets integer data from a node.
Prototype
c
qbool Quos_ttlvGetIdInt(const void *ttlvHead, quint16_t id, qint64_t *value);
Parameter
Input Parameter
- void **
ttlvNode
: TTLV node. - quint16_t
id
: Node ID.
- void **
Output Parameter
- qint64_t *
value
: Node data.
- qint64_t *
Return Value
- TRUE: Successful execution
- FALSE: Failed execution
Example
c
void *ttlvHead = NULL;
qint64_t value = 0;
Quos_ttlvAddIdInt(&ttlvHead, 2, 23);
Quos_ttlvGetIdInt(ttlvHead, 2, &value);
Quos_ttlvGetIdFloat
This function gets float data from a node.
Prototype
c
qbool Quos_ttlvGetIdFloat(const void *ttlvHead, quint16_t id, double *value);
Parameter
Input Parameter
- void **
ttlvNode
: TTLV node. - quint16_t
id
: Node ID.
- void **
Output Parameter
- double *
value
: Node data.
- double *
Return Value
- TRUE: Successful execution
- FALSE: Failed execution
Example
c
void *ttlvHead = NULL;
double value = 0.0;
Quos_ttlvAddIdFloat(&ttlvHead, 4, 18.5);
Quos_ttlvGetIdFloat(ttlvHead, 4, &value);
Quos_ttlvGetIdText
This function gets text data from a node.
Prototype
c
quint32_t Quos_ttlvGetIdText(const void *ttlvHead, quint16_t id, char **value);
Parameter
Input Parameter
- void **
ttlvNode
: TTLV node. - quint16_t
id
: Node ID.
- void **
Output Parameter
- quint8_t **
value
: Node data.
- quint8_t **
Return Value
- Length of the node data.
Example
c
void *ttlvHead = NULL;
Quos_ttlvAddIdText(&ttlvHead, 3, "hello world");
char *ch = NULL;
Quos_ttlvGetIdText(ttlvHead, 3, &ch);
Quos_ttlvGetIdStruct
This function gets structure data from a node.
Prototype
c
void *Quos_ttlvGetIdStruct(const void *ttlvHead, quint16_t id);
Parameter
Input Parameter
- void **
ttlvNode
: TTLV node. - quint16_t
id
: Node ID.
- void **
Output Parameter
- None
Return Value
- Node data.
Example
c
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
This function gets raw data from a node.
Prototype
c
quint32_t Quos_ttlvGetIdRaw(const void *ttlvHead, quint16_t id, quint8_t **value);
Parameter
Input Parameter
- void **
ttlvNode
: TTLV node. - quint16_t
id
: Node ID.
- void **
Output Parameter
- quint8_t **
value
: Node data.
- quint8_t **
Return Value
- Length of the node data.
Example
c
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
This function gets the number of nodes.
Prototype
c
quint32_t Quos_ttlvGetCount(const void *ttlvHead);
Parameter
Input Parameter
- void **
ttlvHead
: TTLV data table.
- void **
Output Parameter
- None
Return Value
- The number of nodes.
Example
c
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
This function gets the pointer to a node.
Prototype
c
void *Quos_ttlvGetNode(const void *ttlvHead, quint16_t index, quint16_t *id, Quos_dpDataType_e *type);
Parameter
Input Parameter
- void **
ttlvHead
: TTLV data table. - quint16_t
index
: Node index.
- void **
Output Parameter
- quint16_t *
id
: Node ID. - Quos_dpDataType_e *
type
: Node type.
- quint16_t *
Return Value
- Pointer to a node.
Example
c
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
This function deletes node.
Prototype
c
void Quos_ttlvRemove(void **ttlvHead, quint16_t id);
Parameter
Input Parameter
- void **
ttlvHead
: TTLV data table. - quint16_t
id
: Node ID.
- void **
Output Parameter
- None
Return Value
- None
Example
c
void *ttlvHead = NULL;
Quos_ttlvAddIdBool(&ttlvHead, 1, TRUE);
Quos_ttlvRemove(&ttlvHead, 1);
Quos_ttlvFree
This function releases TTLV data table resources.
Prototype
c
void Quos_ttlvFree(void **ttlvHead);
Parameter
Input Parameter
- void **
ttlvHead
: TTLV data table.
- void **
Output Parameter
- None
Return Value
- None
Example
c
void *ttlvHead = NULL;
Quos_ttlvAddIdBool(&ttlvHead, 1, TRUE);
Quos_ttlvFree(&ttlvHead);
Quos_ttlvUnformat
This function converts byte stream to TTLV data table.
Prototype
c
void *Quos_ttlvUnformat(const quint8_t *buffer, quint32_t len);
Parameter
Input Parameter
- quint8_t *
buffer
: Byte stream data. - quint32_t
len
: Length of the byte stream data.
- quint8_t *
Output Parameter
- None
Return Value
- TTLV data table.
Example
c
void *ttlvHead = Quos_ttlvUnformat(payload, payloadLen);
Quos_ttlvFormat
This function converts TTLV data to byte stream data.
Prototype
c
quint32_t Quos_ttlvFormat(const void *ttlvHead, quint8_t *retBuf);
Parameter
Input Parameter
- void *
ttlvHead
: TTLV data table.
- void *
Output Parameter
- quint8_t
retBuf
: Byte stream data.
- quint8_t
Return Value
- Length of the byte stream data.
Example
c
void *ttlvHead = NULL;
quint8_t buf[128] = {0};
Quos_ttlvAddIdBool(&ttlvHead, 1, TRUE);
quint32_t len = Quos_ttlvFormat(ttlvHead, buf);
Quos_ttlvFormatLen
This function gets the length of byte stream data converted from TTLV data.
Prototype
c
quint32_t Quos_ttlvFormatLen(const void *ttlvHead);
Parameter
Input Parameter
- void *
ttlvHead
: TTLV data table.
- void *
Output Parameter
- None
Return Value
- Length of the byte stream data.
Example
c
void *ttlvHead = NULL;
Quos_ttlvAddIdBool(&ttlvHead, 1, TRUE);
quint32_t len = Quos_ttlvFormatLen(ttlvHead);
Quos_ttlvHeadPrintf
This function prints the TTLV data table.
Prototype
c
void Quos_ttlvHeadPrintf(const void *ttlvHead);
Parameter
Input Parameter
- void *
ttlvHead
: TTLV data table.
- void *
Output Parameter
- None
Return Value
- None
Example
c
void *ttlvHead = NULL;
Quos_ttlvAddIdBool(&ttlvHead, 1, TRUE);
Quos_ttlvHeadPrintf(ttlvHead);
Quos_json2Ttlv
This function converts JSON data to TTLV data.
Prototype
c
void *Quos_json2Ttlv(const Quos_cjson_t *json);
Parameter
Input Parameter
- Quos_cjson_t *
json
: JSON data.
- Quos_cjson_t *
Output Parameter
- None
Return Value
- TTLV data.
Example
c
Quos_cjson_t * js = NULL;
void *ttlvHead = NULL;
js = Quos_cjsonCreateNumber(120);
ttlvHead = Quos_json2Ttlv(js);
Quos_ttlv2Json
This function converts TTLV data to JSON data.
Prototype
c
Quos_cjson_t *Quos_ttlv2Json(const void *ttlvHead);
Parameter
Input Parameter
- void *
ttlvHead
: TTLV data.
- void *
Output Parameter
- None
Return Value
- JSON data.
Example
c
Quos_cjson_t * js = NULL;
void *ttlvHead = NULL;
Quos_ttlvAddIdBool(&ttlvHead, 1, TRUE);
js = Quos_ttlv2Json(ttlvHead);
Error Code List
Enumeration Value | Hexadecimal | Decimal | Description |
---|---|---|---|
OPRT_OK | -0x0000 | -0 | Successful execution. |