Skip to content

网关子设备 相关接口

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

该函数用于注册子设备与网关交互事件回调函数。后续子设备与网关交互事件均通过该回调函数进行通知。

函数原型

c
void Ql_iotConfigSetSubDevEventCB(void (*eventCb))

参数说明

  • 入参回调函数
    • void *  eventCb:子设备连接网关后,发生子设备与网关交互事件时自动调用该回调函数。
      • 函数原型

        c
        typedef void (*eventCb)(quint32_t event, qint32_t errcode, const char *subPk, const char *subDk ,const void *value, quint32_t valLen)
        • 输入参数
          • quint32_t    event:事件标识。详情请参考事件回调描述
          • quint32_t    errcode: 事件码。详情请参考事件回调描述
          • const char *subPk:在平台创建产品时生成的ProductKey。
          • const char *subDk:子设备唯一标识。
          • const void *value:回调内容。详情请参考事件回调描述
          • quint32_t     valLen:回调内容长度。详情请参考事件回调描述

返回值

无。

备注


调用示例

c
Ql_iotConfigSetSubDevEventCB(Ql_iotSubEventCB);

Ql_iotSubDevConn

该函数用于连接子设备至网关或认证子设备。连接/认证结果通过子设备与网关回调事件通知。设置 subDs为 NULL 时,表示认证子设备;指定 subDs 时,表示连接子设备至网关。

函数原型

c
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:子设备保活时间。

返回值

  • True:函数执行成功。
  • False: 函数执行失败。

备注

  • 2.9.0及以上版本支持

调用示例

c
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

该函数用于断开子设备与网关之间的连接。

函数原型

c
qbool Ql_iotSubDevDisconn(const quint8_t *subPk, const quint8_t *subDk)

参数说明

  • 输入参数
    • const quint8_t *  subPk:在平台创建产品时生成的ProductKey。
    • const quint8_t *  subDk:子设备设备唯一标识。

返回值

  • True: 函数执行成功。
  • False: 函数执行失败。

备注

  • 2.9.0及以上版本支持

调用示例

c
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

该函数用于注销子设备。

函数原型

c
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:子设备的设备密钥。

返回值

  • True:函数执行成功。
  • False: 函数执行失败。

备注

  • 2.9.0及以上版本支持

调用示例

c
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替换)。

函数原型

c
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:上报透传数据长度。

返回值

  • True:函数执行成功。
  • False: 函数执行失败。

备注

  • 2.9.0及以上版本支持

调用示例

c
char *subPk;
char *subDk;
Ql_iotSubDevPassTransSend(subPk, subDk, "hello world", HAL_STRLEN("hello world"));

Ql_iotSubDevPassTransSend_ex

该函数用于发送子设备透传数据至平台。

函数原型

c
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:上报透传数据长度。

返回值

  • -1:      函数执行失败。
  • 1~65535: 函数执行成功时上报的消息txid。

备注

  • 2.10.0及以上版本支持

调用示例

c
char *subPk;
char *subDk;
Ql_iotSubDevPassTransSend_ex(subPk, subDk, "hello world", HAL_STRLEN("hello world"));

Ql_iotSubDevTslReport

该函数用于发送子设备物模型数据至平台(建议使用函数Ql_iotSubDevTslReport_ex替换)。

函数原型

c
qbool Ql_iotSubDevTslReport(const char *subPk, const char *subDk, const void *ttlvHead)

参数说明

  • 输入参数
    • const char *  subPk:创建子设备产品生成的 ProductKey。
    • const char *  subDk:子设备设备唯一标识。
    • const void *  ttlvHead:ttlv 数据链表头指针。

返回值

  • True:函数执行成功。
  • False: 函数执行失败。

备注

  • 2.9.0及以上版本支持

调用示例

c
void *ttlvHead = NULL;
char *subPk = NULL;
char *subDk = NULL;
Ql_iotSubDevTslReport(subPk,subDk,ttlvHead);

Ql_iotSubDevTslReport_ex

该函数用于发送子设备物模型数据至平台。

函数原型

c
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 数据链表头指针。

返回值

  • -1:      函数执行失败。
  • 1~65535: 函数执行成功时上报的消息txid。

备注

  • 2.9.0及以上版本支持

调用示例

c
void *ttlvHead = NULL;
char *subPk = NULL;
char *subDk = NULL;
Ql_iotSubDevTslReport_ex(subPk,subDk,ttlvHead);

Ql_iotSubDevTslAck

该函数用于回复平台向子设备请求的物模型数据。

函数原型

c
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数据链表头指针。

返回值

  • True: 函数执行成功。
  • False: 函数执行失败。

备注

  • 2.9.0及以上版本支持

调用示例

c
char *subPk = NULL;
char *subDk = NULL;
quint16_t PkgID ;
void *ttlvHead = NULL;
Ql_iotSubDevTslAck(subPk, subDk, PkgID, ttlvHead);
Ql_iotTtlvFree(&ttlvHead);

Ql_iotSubDevHTB

该函数用于刷新子设备与网关最后进行交互的时间。

函数原型

c
qbool Ql_iotSubDevHTB(const char *subPk, const char *subDk)

参数说明

  • 输入参数
    • const char *  subPk:创建子设备产品生成的 ProductKey。
    • const char *  subDk:子设备设备唯一标识。

返回值

  • True:函数执行成功。
  • False: 函数执行失败。

备注

  • 2.9.0及以上版本支持

调用示例

c
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

该函数用于上报子设备信息。

函数原型

c
qbool Ql_iotGwDevInfoReport(const char *subPk, const char *subDk, const char *subVer)

参数说明

  • 输入参数
    • const char *subPk:创建子设备产品生成的 ProductKey。
    • const char *subDk:子设备设备唯一标识。
    • const char *subVer:子设备版本号。

返回值

  • True:函数执行成功。
  • False: 函数执行失败。

备注

  • 2.19.0及以上版本支持

调用示例

c
qbool ret = Ql_iotGwDevInfoReport("p1112k","12345678");

 

Ql_iotGwDevOtaReq

该函数用于子设备向平台进行OTA请求。

函数原型

c
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外发

返回值

  • True:函数执行成功。
  • False: 函数执行失败。

备注

  • 2.19.0及以上版本支持

调用示例

c
qbool ret = Ql_iotGwDevOtaReq("p1112k","12345678","1_0_0",0);


 

Ql_iotGwDevOtaUpdate

该函数用于子设备OTA升级时配置参数。

函数原型

c
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_taction:子设备OTA行为配置。
      • 0- 拒绝升级
      • 1- 确认升级
      • 3- 上报更新状态为“升级中”
      • 4- 上报更新状态为“升级成功”
      • 5- 上报更新状态为“升级失败”

返回值

  • True:函数执行成功。
  • False: 函数执行失败。

备注

  • 2.19.0及以上版本支持

调用示例

c
qbool ret = Ql_iotGwDevOtaUpdate("p1112k","12345678","1_0_0",1);

 

Ql_iotGwDevOtaRead

该函数用于子设备根据平台下发的url链接下载相应固件数据并传输至用户。

函数原型

c
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_tsize:当前次读取固件的最大长度。
    • quint8_tbuff:当前次读取固件的缓存指针。

返回值

备注

  • 2.19.0及以上版本支持

调用示例

c
quint8_t buff[1024] = {0};
qbool ret = Ql_iotGwDevOtaRead("p1112k","12345678",0,1024,buff);

 

Ql_iotGwDevLocReport

该函数用于子设备根据平台下发的url链接下载相应固件数据并传输至用户。

函数原型

c
qbool Ql_iotGwDevLocReport(const char *subPk, const char *subDk,const void *ttlvHead)

参数说明

  • 输入参数
    • const char *subPk:创建子设备产品生成的 ProductKey。
    • const char *subDk:子设备设备唯一标识。
    • const char *ttlvHead:定位信息的ttlv格式。

返回值

  • True:函数执行成功。
  • False: 函数执行失败。

备注

  • 2.19.0及以上版本支持

调用示例

c
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);