本文介绍使用3.x和2.3.0版本C Link SDK的高级能力时,可能遇到的问题和解决方法。

背景信息

如果您尚未接入物联网平台,推荐使用最新版本的SDK。更多信息,请参见概述

子设备接入时,导致出现“_iotx_linkkit_upstream_sync_callback_list_remove(158): Message Found: 3, Delete It”的原因是什么?

该错误的原因,是由于回调函数中存在阻塞操作,使SDK内部上线子设备的API无法获取指定数据。您可以检查回调函数的设置,避免出现阻塞。

网关离线后,子设备自动离线;为什么网关上线,子设备不能自动上线?

子设备通过网关代理接入物联网平台,当网关离线,子设备会自动离线。

网关和子设备重连机制不同,重新上线方式不同。

  • 网关设备属于直连设备,与物联网平台建立长连接。SDK默认的重连机制,使设备在指定情况下,断连后自动重新连接物联网平台。
  • 通过调用登录和登出接口,子设备实现上下线,不直接与物联网平台建立连接。您需要自行实现子设备的重连,例如:
    1. 在MQTT长连接断开回调中,感知网关设备离线。
    2. 网关设备离线后,子设备离线。
    3. 当网关设备重连成功后,再通过MQTT长连接回调,调用登录接口,异步处理子设备重新上线。

子设备数量大时,为什么上线过程长?

3.x和2.3.0版本的SDK采用单个上线子设备的方法,所以当子设备数量大时,注册或上线子设备会比较慢。

最新版本的SDK支持批量上线子设备,建议您使用该版本的SDK,更多信息,请参见网关与子设备

子设备上线时,出现“The resource count exceeds limit, cur 255, max 255”,该如何解决?

该错误说明子设备的Topic注册达到上限,您可以修改如下两处代码:

  • ./src/protocol/coap/local/CoAPServer.cparam.res_maxcount = 255的值。
  • ./src/protocol/coap/local/CoAPExport.hCoAPInitParam结构体的res_maxcount 类型,修改为unsigned int