## UCloud IOT SDK for rt-thread Package ## 1 介绍 UCloud IOT SDK for rt-thread Package 是基于[UCloud设备端C-SDK](https://github.com/ucloud/ucloud-iot-device-sdk-c)在RThread环境开发的软件包,用于连接uiot-core物联网平台 ### 1.1 SDK架构图 ![](https://uiot.cn-sh2.ufileos.com/sdk%E6%9E%B6%E6%9E%84%E5%9B%BE.png) ### 1.2 目录结构 | 名称 | 说明 | | ---- | ---- | | docs | 说明文档 | | ports | 移植文件目录 | | samples | 示例文件目录 | | uiot | UCloud设备端C-SDK | | LICENSE | 许可证文件 | | README.md | 软件包使用说明 | | SConscript | RT-Thread 默认的构建脚本 | ### 1.3 许可证 许可协议Apache 2.0。 ### 1.4 依赖 Ota功能需要fal软件包 [ ] fal: Flash Abstraction Layer implement. Manage flash device and partition. ---> Tls功能需要mbedtls软件包 [ ] mbedtls: An portable and flexible SSL/TLS library ---- ## 2 如何打开软件包 menuconfig配置 - RT-Thread env开发工具中使用 `menuconfig` 软件包,配置产品及设备信息, 路径如下: ``` RT-Thread online packages ---> IoT - internet of things ---> IoT Cloud ---> [ ] ucloud_iot_sdk: Ucloud iot sdk for uiot-core platform. ---> --- ucloud_iot_sdk: Ucloud iot sdk for uiot-core platform Ucloud Device Config ---> [ ] Enable Mqtt Link uiot-core Platform [ ] Enable Http Link uiot-core Platform [ ] Enable Ucloud Debug Version (latest) ---> ``` ## 3 软件包的使用 根据产品需求选择合适的应用示例修改新增业务逻辑,也可新增例程编写新的业务逻辑。 ``` --- ucloud_iot_sdk: Ucloud iot sdk for uiot-core platform. Ucloud Device Config ---> [*] Enable Mqtt Link uiot-core Platform [ ] Enable Ucloud Mqtt Sample [ ] Enable Ucloud Mqtt Dynamic Auth Sample [*] Enable Http Link uiot-core Platform [ ] Enable Ucloud Http Publish Sample [ ] Enable Ucloud Http Upload File Sample [*] Enable Shadow [ ] Enable Ucloud Shadow Sample [*] Enable Dev Model [ ] Enable Ucloud Dev Model Sample [*] Enable Ota [ ] Enable Ucloud Ota Sample -*- Enable Tls [ ] Enable Ucloud Debug Version (latest) ---> ``` - 选项说明 `Ucloud Device Config `:填写当前设备认证要素,当认证模式为动态认证时,设备密钥可以不填写 `Enable Mqtt Link uiot-core Platform`:使能MQTT连接云平台功能。 `Enable Ucloud Mqtt Sample`:使能静态注册mqtt和注册成功后收发消息的案例 `Enable Ucloud Mqtt Dynamic Auth Sample`: 使能动态注册mqtt和注册成功后收发消息的案例 `Enable Http Link uiot-core Platform`:使能HTTP连接云平台功能,包括使用https上传消息和上传文件,只支持https,勾选会关联选中mbedTLS软件包。 `Enable Ucloud Http Publish Sample`:使能使用https向云平台上传消息的案例 `Enable Ucloud Http Upload File Sample`: 使能使用https向云平台上传一段buffer在云端保存成文件的案例 `Enable Shadow`:使能设备影子功能 `Enable Ucloud Shadow Sample`:使能设备影子的案例 `Enable Dev Model`:使能物模型功能 `Enable Ucloud Dev Model Sample`:使能物模型的案例 `Enable Ota`:使能远程升级版本的功能,若使能由于要使用flash的分区功能进行ota升级,会关联选中fal软件包。 `Enable Ucloud Ota Sample`:使能远程升级版本的案例 `Enable TLS`: 是否使能TLS,若使能,则会关联选中mbedTLS软件包。 `Enable Ucloud Debug`: 使能调试打印输出 `Version (latest) --->`:选择软件包的版本 - 使用 `pkgs --update` 命令下载需要使用的软件包 ### 2.2 编译及运行 1. 使用命令 scons --target=xxx 输出对应的工程,编译 2. 打开生成的工程,编译下载到设备中 ### 2.3 运行demo程序 系统启动后,在 MSH 中使用命令执行,以mqtt_sample为例: 启动案例:mqtt_test_example start 终止案例:mqtt_test_example stop 执行输出: msh />mqtt_test_example start establish tcp connection with server(host='mqtt-cn-sh2.iot.ucloud.cn', port=[1883]) msh />success to establish tcp, fd=4 Cloud Device Construct Successsubscribe success, packet-id=2 publish success, packet-id=3 Receive Message With topicName:/fahnimwwvph259ag/3um7h4fdiigf2yyh/upload/event, payload:{"test": "0"} publish success, packet-id=4 Receive Message With topicName:/fahnimwwvph259ag/3um7h4fdiigf2yyh/upload/event, payload:{"test": "1"} publish success, packet-id=5 Receive Message With topicName:/fahnimwwvph259ag/3um7h4fdiigf2yyh/upload/event, payload:{"test": "2"} publish success, packet-id=6 Receive Message With topicName:/fahnimwwvph259ag/3um7h4fdiigf2yyh/upload/event, payload:{"test": "3"} publish success, packet-id=7 Receive Message With topicName:/fahnimwwvph259ag/3um7h4fdiigf2yyh/upload/event, payload:{"test": "4"} publish success, packet-id=8 Receive Message With topicName:/fahnimwwvph259ag/3um7h4fdiigf2yyh/upload/event, payload:{"test": "5"} publish success, packet-id=9 Receive Message With topicName:/fahnimwwvph259ag/3um7h4fdiigf2yyh/upload/event, payload:{"test": "6"} publish success, packet-id=10 Receive Message With topicName:/fahnimwwvph259ag/3um7h4fdiigf2yyh/upload/event, payload:{"test": "7"} publish success, packet-id=11 Receive Message With topicName:/fahnimwwvph259ag/3um7h4fdiigf2yyh/upload/event, payload:{"test": "8"} publish success, packet-id=12 Receive Message With topicName:/fahnimwwvph259ag/3um7h4fdiigf2yyh/upload/event, payload:{"test": "9"}