Skip to content

设备连接 相关接口

API 列表

函数说明
Qth_devInit()QthSDK 初始化
Qth_devStart()开始连接 IoT平台
Qth_devReset()设备重置
Qth_devRemove()设备移除
Qth_devGetStatus()获取设备状态

API 详情

Qth_devInit

QthSDK 初始化,会自动调用各个业务组件初始化函数,在使用 QthSDK API 前必须先进行初始化。

函数原型

c
oprt_ret Qth_devInit();

参数说明

  • 输入参数

    • 无。
  • 输出参数

    • 无。
  • 返回值

    • 成功:返回 OPRT_OK
    • 失败:返回其它值,请参考 错误码列表

调用示例

c
oprt_ret ret = OPRT_OK;

ret = Qth_devInit();
if (OPRT_OK != ret)
{
    Quos_logPrintf(APPS_OPEN, LL_ERR, "sdk init error");
}

Qth_devStart

发起 IoT平台连接,应在发起连接前进行相关配置(如产品信息配置等)。发起连接后,如果有 wifi 配网信息,则自动连接路由器并连接 IoT平台;如果没有 wifi 配网信息,则进入配网状态。

函数原型

c
oprt_ret Qth_devStart();

参数说明

  • 输入参数

    • 无。
  • 输出参数

    • 无。
  • 返回值

    • 成功:返回 OPRT_OK
    • 失败:返回其它值,请参考 错误码列表

调用示例

c
oprt_ret ret = OPRT_OK;

Qth_devInit();
/* 配置服务器、产品等信息... */
ret = Qth_devStart();
if (OPRT_OK != ret)
{
    Quos_logPrintf(APPS_OPEN, LL_ERR, "sdk start error");
}

Qth_devReset

设备重置,调用该 API 后将清除 WIFI 信息,设备将重启,然后进入配网状态;在重新连上 IoT平台后将导致用户绑定信息和设备密钥被重置。

函数原型

c
oprt_ret Qth_devReset();

参数说明

  • 输入参数

    • 无。
  • 输出参数

    • 无。
  • 返回值

    • 成功:返回 OPRT_OK
    • 失败:返回其它值,请参考 错误码列表

调用示例

c
oprt_ret ret = OPRT_OK;

ret = Qth_devReset();
if (OPRT_OK != ret)
{
    Quos_logPrintf(APPS_OPEN, LL_ERR, "dev reset error");
}

Qth_devRemove

设备移除,调用该 API 后将清除 WIFI 信息,自动进入配网状态。

函数原型

c
oprt_ret Qth_devRemove();

参数说明

  • 输入参数

    • 无。
  • 输出参数

    • 无。
  • 返回值

    • 成功:返回 OPRT_OK
    • 失败:返回其它值,请参考 错误码列表

调用示例

c
oprt_ret ret = OPRT_OK;

ret = Qth_devRemove();
if (OPRT_OK != ret)
{
    Quos_logPrintf(APPS_OPEN, LL_ERR, "dev remove error");
}

Qth_devGetStatus

获取设备状态。

函数原型

c
oprt_ret Qth_devGetStatus(Qth_devStatus_e *status);

参数说明

  • 输入参数

    • 无。
  • 输出参数

    • Qth_devStatus_estatus:设备状态。
      • 具体取值见下表:
        取值描述
        QTH_DEV_STATUS_SLIENT静默状态,不开启蓝牙广播
        QTH_DEV_STATUS_NETCFG配网状态,开启蓝牙广播
        QTH_DEV_STATUS_NETCFGED已配网状态
        QTH_DEV_STATUS_CONNECTED_ROUTE已连上路由器状态
        QTH_DEV_STATUS_CONNECTED_DMP已连上 IoT平台状态
  • 返回值

    • 成功:返回 OPRT_OK
    • 失败:返回其它值,请参考 错误码列表

调用示例

c
oprt_ret ret = OPRT_OK;
Qth_devStatus_e status;

ret = Qth_devGetStatus(&status);
if (OPRT_OK != ret)
{
    Quos_logPrintf(APPS_OPEN, LL_ERR, "get dev connect status error");
}

错误码列表

枚举值十六进制十进制描述
OPRT_OK-0x0000-0执行成功
OPRT_COM_ERROR-0x0001-1通用错误
OPRT_INVALID_PARM-0x0002-2无效的入参
OPRT_MALLOC_FAILED-0x0003-3内存分配失败
OPRT_NOT_SUPPORTED-0x0004-4不支持
OPRT_NOT_FOUND-0x0005-5没有找到对象
OPRT_INDEX_OUT_OF_BOUND-0x0006-6索引越界
OPRT_EXCEED_UPPER_LIMIT-0x0007-7超过上限
OPRT_NOT_EXIST-0x0008-8不存在
OPRT_QTH_DMP_SERVER_ERROR-0x1700-5888调用其他微服务接口网络错误
OPRT_QTH_DMP_SEND_NOT_ALLOW-0x1701-5889设备消息被限制
OPRT_QTH_DMP_AUTH_NOT_ALLOW-0x1702-5890设备不能激活
OPRT_QTH_DMP_AUTH_ALREADY-0x1703-5891设备已认证
OPRT_QTH_DMP_PK_NOT_FOUND-0x1704-5892通过 PK 没有查到产品信息
OPRT_QTH_DMP_PAYLOAD_INVALID-0x1705-5893密码解析错误
OPRT_QTH_DMP_SIGN_ERROR-0x1706-5894Sign 错误
OPRT_QTH_DMP_RAND_ILLEGAL-0x1707-5895Rand 不符合规则
OPRT_QTH_DMP_MISMATCH-0x1708-5896参数传入的 DK,PK 与数据库存储的 DK,PK 不一致
OPRT_QTH_DMP_DK_ILLEGAL-0x1709-5897DK 不符合规则
OPRT_QTH_DMP_FLAG_ILLEGAL-0x170a-5898Flag 不符合规则
OPRT_QTH_DMP_CLIENTID_ERROR-0x170b-5899ClientId 规则和 Password 不匹配
OPRT_QTH_DMP_DS_ERROR-0x170c-5900设备的 DS 错误
OPRT_QTH_DMP_DK_NOT_FOUND-0x170d-5901没查到设备信息
OPRT_QTH_DMP_SUB_RELATED-0x170e-5902网关与子设备没有关联关系
OPRT_QTH_DMP_SUB_CONNECT_ALREADY-0x170f-5903子设备重复登录
OPRT_QTH_DMP_DEV_OFFLINE-0x1710-5904设备不在线
OPRT_QTH_DMP_UNKNOWN_ERROR-0x1711-5905未知错误
OPRT_QTH_DEV_GET_CONFIG_FAILED-0x1100-4352获取配置失败
OPRT_QTH_DEV_NOT_AUTH-0x1101-4353设备未认证
OPRT_QTH_DEV_CONN_FAILED-0x1102-4354设备连接失败
OPRT_QTH_DEV_RESET_FAILED-0x1103-4355设备重置失败
OPRT_QTH_DEV_REMOVE_FAILED-0x1104-4356设备移除失败
OPRT_QTH_DEV_ALREADY_CONNECTED-0x1105-4357设备已连接
OPRT_QTH_DEV_RESET_ABNORMAL-0x1106-4358设备重置异常(一机一密设备收到了新的设备密钥)