网关子设备 相关接口
API 列表
函数 | 说明 |
---|---|
Ql_iotConfigSetSubDevEventCB() | 注册子设备与网关交互事件回调处理函数 |
Ql_iotSubDevConn() | 连接子设备至网关或认证子设备 |
Ql_iotSubDevDisconn() | 断开子设备与网关之间的连接 |
Ql_iotSubDevPassTransSend() | 发送子设备透传数据至平台 |
Ql_iotSubDevPassTransSend_ex() | 发送子设备透传数据至平台 |
Ql_iotSubDevTslReport() | 发送子设备物模型数据至平台 |
Ql_iotSubDevTslReport_ex() | 发送子设备物模型数据至平台 |
Ql_iotSubDevTslAck() | 回复平台向子设备请求的物模型数据 |
Ql_iotSubDevDeauth() | 注销子设备 |
Ql_iotSubDevHTB() | 刷新子设备与网关最后进行交互的时间 |
Ql_iotGwDevInfoReport() | 子设备信息上报 |
Ql_iotGwDevOtaReq() | 子设备 OTA 请求 |
Ql_iotGwDevOtaUpdate() | 子设备 OTA 升级配置 |
Ql_iotGwDevOtaRead() | 子设备 OTA 固件读取 |
Ql_iotGwDevLocReport() | 子设备定位信息上报 |
API接口详情
Ql_iotConfigSetSubDevEventCB
该函数用于注册子设备与网关交互事件回调函数。后续子设备与网关交互事件均通过该回调函数进行通知。
函数原型
void Ql_iotConfigSetSubDevEventCB(void (*eventCb))
参数说明
- 入参回调函数
- void *
eventCb
:子设备连接网关后,发生子设备与网关交互事件时自动调用该回调函数。函数原型
ctypedef void (*eventCb)(quint32_t event, qint32_t errcode, const char *subPk, const char *subDk ,const void *value, quint32_t valLen)
- void *
返回值
无。
备注
- 2.10.0及以上版本支持
响应码、回调内容、回调内容长度详情参考网关子设备回调事件。
调用示例
Ql_iotConfigSetSubDevEventCB(Ql_iotSubEventCB);
Ql_iotSubDevConn
该函数用于连接子设备至网关或认证子设备。连接/认证结果通过子设备与网关回调事件通知。设置 subDs为 NULL 时,表示认证子设备;指定 subDs 时,表示连接子设备至网关。
函数原型
qbool Ql_iotSubDevConn(const char *subPk, const char *subPs, const char *subDk, const char *subDs, quint8_t sessionType, quint16_t keepalive)
参数说明
- 输入参数
- const char *
subPk
:创建子设备产品生成的 ProductKey。 - const char *
subPs
:创建子设备产品生成的 ProductSecret。 - const char *
subDk
:子设备设备唯一标识。 - const char *
subDs
:子设备的设备密钥。 - quint8_t
sessionType
:子设备使用加密方式。0
: 不加密。1
: 加密。
- quint16_t
keepalive
:子设备保活时间。
- const char *
返回值
True
:函数执行成功。False
: 函数执行失败。
备注
- 2.9.0及以上版本支持
调用示例
mp_buffer_info_t pro_keyinfo = {0};
mp_buffer_info_t pro_secretinfo = {0};
mp_buffer_info_t dev_keyinfo = {0};
mp_buffer_info_t dev_secretinfo = {0};
int session_type_val;
int keepalive_val;
qbool ret = Ql_iotSubDevConn((const char *)pro_keyinfo.buf, (const char *)pro_secretinfo.buf, (const char *)dev_keyinfo.buf, (const char *)dev_secretinfo.buf, session_type_val, keepalive_val);
Ql_iotSubDevDisconn
该函数用于断开子设备与网关之间的连接。
函数原型
qbool Ql_iotSubDevDisconn(const quint8_t *subPk, const quint8_t *subDk)
参数说明
- 输入参数
- const quint8_t *
subPk
:在平台创建产品时生成的ProductKey。 - const quint8_t *
subDk
:子设备设备唯一标识。
- const quint8_t *
返回值
True
: 函数执行成功。False
: 函数执行失败。
备注
- 2.9.0及以上版本支持
调用示例
mp_buffer_info_t pro_key = {0};
mp_buffer_info_t dev_key = {0};
qbool ret = Ql_iotSubDevDisconn((const char *)pro_key.buf, (const char *)dev_key.buf);
Ql_iotSubDevDeauth
该函数用于注销子设备。
函数原型
qbool Ql_iotSubDevDeauth(const char *subPk, const char *subPs, const char *subDk, const char *subDs)
参数说明
- 输入参数
- const char *
subPk
:创建子设备产品生成的 ProductKey。 - const char *
subPs
:创建子设备产品生成的 ProductSecret。 - const char *
subDk
:子设备唯一标识。 - const char *
subDs
:子设备的设备密钥。
- const char *
返回值
True
:函数执行成功。False
: 函数执行失败。
备注
- 2.9.0及以上版本支持
调用示例
mp_buffer_info_t pro_key = {0};
mp_buffer_info_t pro_secret = {0};
mp_buffer_info_t dev_key = {0};
mp_buffer_info_t dev_secret = {0};
qbool ret = Ql_iotSubDevDeauth((const char *)pro_key.buf, (const char *)pro_secret.buf, (const char *)dev_key.buf, (const char *)dev_secret.buf);
Ql_iotSubDevPassTransSend
该函数用于发送子设备透传数据至平台(建议使用函数Ql_iotSubDevPassTransSend_ex替换)。
函数原型
qbool Ql_iotSubDevPassTransSend(const quint8_t *subPk, const quint8_t *subDk, quint8_t *payload, quint16_t payloadlen)
参数说明
- 输入参数
- const quint8_t *
subPk
:创建子设备产品生成的 ProductKey。 - const quint8_t *
subDk
:子设备设备唯一标识。 - quint8_t *
payload
:上报透传数据指针。 - quint16_t *
payloadlen
:上报透传数据长度。
- const quint8_t *
返回值
True
:函数执行成功。False
: 函数执行失败。
备注
- 2.9.0及以上版本支持
调用示例
char *subPk;
char *subDk;
Ql_iotSubDevPassTransSend(subPk, subDk, "hello world", HAL_STRLEN("hello world"));
Ql_iotSubDevPassTransSend_ex
该函数用于发送子设备透传数据至平台。
函数原型
qint32_t Ql_iotSubDevPassTransSend_ex(const quint8_t *subPk, const quint8_t *subDk, quint8_t *payload, quint16_t payloadlen)
参数说明
- 输入参数
- const quint8_t *
subPk
:创建子设备产品生成的 ProductKey。 - const quint8_t *
subDk
:子设备设备唯一标识。 - quint8_t *
payload
:上报透传数据指针。 - quint16_t *
payloadlen
:上报透传数据长度。
- const quint8_t *
返回值
-1
: 函数执行失败。1~65535
: 函数执行成功时上报的消息txid。
备注
- 2.10.0及以上版本支持
调用示例
char *subPk;
char *subDk;
Ql_iotSubDevPassTransSend_ex(subPk, subDk, "hello world", HAL_STRLEN("hello world"));
Ql_iotSubDevTslReport
该函数用于发送子设备物模型数据至平台(建议使用函数Ql_iotSubDevTslReport_ex替换)。
函数原型
qbool Ql_iotSubDevTslReport(const char *subPk, const char *subDk, const void *ttlvHead)
参数说明
- 输入参数
- const char *
subPk
:创建子设备产品生成的 ProductKey。 - const char *
subDk
:子设备设备唯一标识。 - const void *
ttlvHead
:ttlv 数据链表头指针。
- const char *
返回值
True
:函数执行成功。False
: 函数执行失败。
备注
- 2.9.0及以上版本支持
调用示例
void *ttlvHead = NULL;
char *subPk = NULL;
char *subDk = NULL;
Ql_iotSubDevTslReport(subPk,subDk,ttlvHead);
Ql_iotSubDevTslReport_ex
该函数用于发送子设备物模型数据至平台。
函数原型
qint32_t Ql_iotSubDevTslReport_ex(const char *subPk, const char *subDk, const void *ttlvHead)
参数说明
- 输入参数
- const char *
subPk
:创建子设备产品生成的 ProductKey。 - const char *
subDk
:子设备设备唯一标识。 - const void *
ttlvHead
:ttlv 数据链表头指针。
- const char *
返回值
-1
: 函数执行失败。1~65535
: 函数执行成功时上报的消息txid。
备注
- 2.9.0及以上版本支持
调用示例
void *ttlvHead = NULL;
char *subPk = NULL;
char *subDk = NULL;
Ql_iotSubDevTslReport_ex(subPk,subDk,ttlvHead);
Ql_iotSubDevTslAck
该函数用于回复平台向子设备请求的物模型数据。
函数原型
qbool Ql_iotSubDevTslAck(const char *subPk, const char *subDk, quint16_t PkgID, const void *ttlv Head)
参数说明
- 输入参数
- const char *
subPk
:创建子设备产品生成的 ProductKey。 - const char *
subDk
:子设备设备唯一标识。 - quint16_t
PkgID
:ttlv 回复包 id,该 id 需要通过事件通知获取。 - const void *
ttlvHead
:ttlv数据链表头指针。
- const char *
返回值
True
: 函数执行成功。False
: 函数执行失败。
备注
- 2.9.0及以上版本支持
调用示例
char *subPk = NULL;
char *subDk = NULL;
quint16_t PkgID ;
void *ttlvHead = NULL;
Ql_iotSubDevTslAck(subPk, subDk, PkgID, ttlvHead);
Ql_iotTtlvFree(&ttlvHead);
Ql_iotSubDevHTB
该函数用于刷新子设备与网关最后进行交互的时间。
函数原型
qbool Ql_iotSubDevHTB(const char *subPk, const char *subDk)
参数说明
- 输入参数
- const char *
subPk
:创建子设备产品生成的 ProductKey。 - const char *
subDk
:子设备设备唯一标识。
- const char *
返回值
True
:函数执行成功。False
: 函数执行失败。
备注
- 2.9.0及以上版本支持
调用示例
mp_buffer_info_t pro_key = {0};
mp_buffer_info_t dev_key = {0};
qbool ret = Ql_iotSubDevHTB((const char *)pro_key.buf, (const char *)dev_key.buf);
Ql_iotGwDevInfoReport
该函数用于上报子设备信息。
函数原型
qbool Ql_iotGwDevInfoReport(const char *subPk, const char *subDk, const char *subVer)
参数说明
- 输入参数
- const char *
subPk
:创建子设备产品生成的 ProductKey。 - const char *
subDk
:子设备设备唯一标识。 - const char *
subVer
:子设备版本号。
- const char *
返回值
True
:函数执行成功。False
: 函数执行失败。
备注
- 2.19.0及以上版本支持
调用示例
qbool ret = Ql_iotGwDevInfoReport("p1112k","12345678");
Ql_iotGwDevOtaReq
该函数用于子设备向平台进行OTA请求。
函数原型
qbool Ql_iotGwDevOtaReq(const char *subPk,const char *subDk,const char *subVer, quint8_t mode)
参数说明
- 输入参数
- const char *
subPk
:创建子设备产品生成的 ProductKey。 - const char *
subDk
:子设备设备唯一标识。 - const char *
subVer
:子设备版本号。 - quint8_t
mode
:子设备通信模式。0
:不需要sha256信息,也不需要URL外发1
:携带sha256信息,但不需要URL外发2
:不需要sha256信息,但需要URL外发3
:携带sha256信息,且需要URL外发
- const char *
返回值
True
:函数执行成功。False
: 函数执行失败。
备注
- 2.19.0及以上版本支持
调用示例
qbool ret = Ql_iotGwDevOtaReq("p1112k","12345678","1_0_0",0);
Ql_iotGwDevOtaUpdate
该函数用于子设备OTA升级时配置参数。
函数原型
qbool Ql_iotGwDevOtaUpdate(const char *subPk, const char *subDk, const char *subVer, quint8_t action)
参数说明
- 输入参数
- const char *
subPk
:创建子设备产品生成的 ProductKey。 - const char *
subDk
:子设备设备唯一标识。 - const char *
subVer
:子设备版本号。 - quint8_t
action
:子设备OTA行为配置。0
- 拒绝升级1
- 确认升级3
- 上报更新状态为“升级中”4
- 上报更新状态为“升级成功”5
- 上报更新状态为“升级失败”
- const char *
返回值
True
:函数执行成功。False
: 函数执行失败。
备注
- 2.19.0及以上版本支持
调用示例
qbool ret = Ql_iotGwDevOtaUpdate("p1112k","12345678","1_0_0",1);
Ql_iotGwDevOtaRead
该函数用于子设备根据平台下发的url链接下载相应固件数据并传输至用户。
函数原型
qint32_t Ql_iotGwDevOtaRead(const char *subPk, const char *subDk, quint32_t startAddr, quint16_t size, quint8_t *buff)
参数说明
- 输入参数
- const char *
subPk
:创建子设备产品生成的 ProductKey。 - const char *
subDk
:子设备设备唯一标识。 - const char *
startAddr
:读取OTA固件的起始地址。 - quint8_t
size
:当前次读取固件的最大长度。 - quint8_t
buff
:当前次读取固件的缓存指针。
- const char *
返回值
备注
- 2.19.0及以上版本支持
调用示例
quint8_t buff[1024] = {0};
qbool ret = Ql_iotGwDevOtaRead("p1112k","12345678",0,1024,buff);
Ql_iotGwDevLocReport
该函数用于子设备根据平台下发的url链接下载相应固件数据并传输至用户。
函数原型
qbool Ql_iotGwDevLocReport(const char *subPk, const char *subDk,const void *ttlvHead)
参数说明
- 输入参数
- const char *
subPk
:创建子设备产品生成的 ProductKey。 - const char *
subDk
:子设备设备唯一标识。 - const char *
ttlvHead
:定位信息的ttlv格式。
- const char *
返回值
True
:函数执行成功。False
: 函数执行失败。
备注
- 2.19.0及以上版本支持
调用示例
void *ttlvHead = NULL;
Ql_iotTtlvIdAddString(&ttlvHead,0,"$GPGGA,042523.0,3413.610533,N,10854.063257,E,1,05,2.6,438.5,M,-28.0,M,,*78");
qbool ret = Ql_iotGwDevLocReport("p1112k","12345678",ttlvHead);
Ql_iotTtlvFree(&ttlvHead);