- 最新动态
- 功能总览
- 服务公告
- 计费说明
- 产品介绍
- 快速入门
- 用户指南
- 最佳实践
- 开发指南
-
API参考
- 应用侧API参考
- 设备侧MQTT/MQTTS接口参考
- 设备侧HTTPS接口参考
- 设备侧LwM2M接口参考
- 安全隧道WebSocket接口参考
- 模组AT指令参考
- 修订记录
- SDK参考
- 场景代码示例
-
常见问题
- 热门问题
-
方案咨询
- 连接IoT平台的业务场景有哪些?
- 设备管理服务和设备接入服务合一后的差异点是什么?
- IAM子用户或子项目是否可以开通物联网平台服务?
- 物联网平台支持在华为云的哪些区域开通?
- 华为是否提供模组/硬件终端/应用软件等?
- IAM用户访问API提示没有权限?(是否区分版本?)
- 创建规则或者设置资源文件存储时候提示赋予Security Administrator权限
- 物联网平台设置默认资源空间的规则是什么?
- 设备接入服务如何获取设备数据?
- 物联网平台的资源空间和设备可以无限创建吗?
- 物联网平台支持批量注册设备吗?
- 物联网平台对应用侧和设备侧在开发或使用时有限制吗?
- 物联网平台支持的DTLS加密算法有哪些?
- 物联网平台支持二进制大小端模式切换吗?
- 什么是NB-IoT?
- 物联网平台支持的硬件架构和使用的相关组件有哪些?
- 如何获取平台接入地址?
- 设备集成相关问题
- 设备侧SDK相关问题
- 设备发放相关问题
- LWM2M/CoAP接入相关问题
- MQTT接入相关问题
- 泛协议接入相关问题
- 物模型相关问题
- 消息通信相关问题
- 订阅推送相关问题
- 编解码插件相关问题
- OTA升级相关问题
- 应用集成相关问题
- 实例管理相关问题
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
设备侧SDK相关问题
IoT Device SDK C启动失败?
C版SDK启动失败一般是openssl、paho库文件编译失败、或者没有使用export LD_LIBRARY_PATH=./lib/加载库文件。可参考IoT Device SDK(C)使用指南中的“准备工作”。
IoT Device SDK Java启动失败?
IoT Device SDK Java启动失败一般是未安装JDK(需1.8及以上),或者未安装Maven。
Java SDK中有多个demo,该参考哪一个demo?
直连设备建议参考“device_demo”(包含bootstrap设备发放功能);如果是普通网关,或者是泛协议接入网关对子设备进行管理,请参考“gateway_demo”。
C版 SDK中有多个demo,该参考哪一个demo?
C版SDK中的demo是分不同场景的,直连设备建议参考“device_demo”;如果需要集成boostrap发放功能,请参考“bootstrap_demo”;如果是普通网关,或者是泛协议接入网关,请参考“gateway_demo”。
C版 SDK连接时返回错误码4是什么意思?
返回错误码4是账号名或者密码输入有误。其他连接失败时返回的错误码请参考MQTTAsyn.h头文件中的错误码描述。
如何下载IoT Link Studio?
在资源获取页面,设备开发资源中下载IoT lIink Studio。
IoT Device SDK 和IoT Device SDK Tiny有什么区别?
相比于IoT Device SDK,Tiny版本更加轻量,适用于内存以及磁盘空间更小的设备,且一般很少挂载子设备,在编译中没有使用动态链接库,代码提供了操作系统抽象层,可适配多种OS,例如FreeRTOS、linux、NovaOS、ucos_ii、OpenHarmony LiteOS-M等;除MQTT(S)还支持LwM2M,CoAP协议,Tiny使用的mbedtls加密,IoT Device SDK C采用的openssl加密。详细请参考IoT Device SDK介绍。
IoT Device SDK C Tiny相关问题
LiteOS操作系统层面相关技术问题解答。
请移步LiteOS社区。
- 日志中出现诸如mqtt_imp_init: ###please implement mqtt by yourself####此类问题。
首先检查编译架构中对于__attribute__ ((weak))函数的支持性,如果不支持,建议将这些函数全部注释掉;如果出现link_tcpip_imp_init:###please implement this function by yourself####,建议检查是否实现网络层的适配。
- 在使用SDK时发现某些任务执行顺序与任务优先级顺序不符?
SDK中默认使用的优先级从大到小依次为0-31,用户可根据不同的操作系统自行调整相应任务的优先级。
- SDK移植流程主要包括哪些步骤?
移植过程主要包括操作系统注册到OSAL层以及TCPIP注册到SAL层,同时可以根据需求进行模块化裁剪,详见开发指南。
- 使用MQTT协议对接华为云时,返回错误码2
具体日志如下所示
图1 MQTT链接错误提示该问题为网络错误,首先建议用户检查开发板是否已经联网成功,如果网络联通,建议检查所要对接网络的IP地址或域名以及端口号是否正确,如linux环境下,可以ping所要对接的网络地址查看是否ping通。
- 客户在对接华为云时,出现网络断连接后,在恢复网络时设备没有自动重连。
图2 断链没有重连日志提示
日志中可见PAHO已经退出,设备已经与平台断开连接,主动下线。建议客户修改SDK目录中的network\mqtt\paho_mqtt\port\paho_mqtt_port.c文件中的函数__loop_entry()中的休眠时间1ms调大至100ms,具体为:osal_task_sleep(100),查看是否可以自动重连。
- 使用MQTTS对接华为云时,流程卡死在topic订阅阶段,参考日志如下所示。
图3 流程卡死topic订阅日志提示
请将iot_config.h文件中的宏CONFIG_PAHO_LOOPTIMEOUT调整为1000。
- 开发板使用MQTT对接华为云成功,但切换到MQTTS时对接失败
可能是开发板内存不足导致,建议测试下开发板剩余内存,建议内存尽量大于60K,如在OpenHarmony L0设备中可以调用接口LOS_MemPoolSizeGet(m_aucSysMem0)获取总内存,LOS_MemTotalUsedGet(m_aucSysMem0)获取已使用内存,做差即可获取到剩余内存,如果移植了shell也可以通过free指令获取到当前内存情况。
- 采用MQTT对接华为云的正确日志如下所示,应如何解读?
图4 MQTT正常建链日志提示
日志中第3、4行是MQTT协议对接华为云必现日志,若使用MQTTS则会出现第2行日志;如果使用适配sal的tcpip协议则会出现第1行日志;若相应日志没有打印,建议根据文件link_main.c找到对应功能的初始化函数所对应的宏,之后在iotlink_config.h中检查对应的宏是否打开。
- 设备断电之后在IoTDA平台仍然可以看到设备在线?
如果设备没有主动断链通知平台下线,则设备下线时间与代码中的MQTT心跳时间lifetime相关,为1.5倍的心跳时间,在MQTT建立连接时,连接参数中对lifetime进行设置即可。
- 目前已经移植了IoT Device SDK Tiny(附代码)的设备清单
详见移植设备清单列表。
IoT Device SDK Java 上报数据报错“Too many publishes in progress”?
该问题一般是并发消息过高导致,可以通过调大MqttConnection.java中的 "MAX_FLIGHT_COUNT" 参数解决。