QT移植腾讯云C-SDK结合实现OTA更新
Posted Engineer-Bruce_Yang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT移植腾讯云C-SDK结合实现OTA更新相关的知识,希望对你有一定的参考价值。
点击上方“嵌入式应用研究院”,选择“置顶/星标公众号”
干货福利,第一时间送达!
来源 | 嵌入式应用研究院
整理&排版 | 嵌入式应用研究院
腾讯云C-SDK
是一套能够帮助开发者快速对接腾讯云Iot Explorer
平台的一套跨平台通讯架构,整体框架如下所示:
SDK 编译方式说明 C-SDK 支持三种编译方式:
cmake 方式
Makefile 方式
代码抽取方式
编译方式以及编译配置选项的详细说明请参考docs目录文档C-SDK_Build
编译环境及配置选项说明,参考如下文档:
https://github.com/TencentCloud/tencentcloud-iot-explorer-sdk-embedded-c/blob/master/docs/C-SDK_Build%E7%BC%96%E8%AF%91%E7%8E%AF%E5%A2%83%E5%8F%8A%E9%85%8D%E7%BD%AE%E9%80%89%E9%A1%B9%E8%AF%B4%E6%98%8E.md
接下来,我将来演示一下如何将QT与腾讯云C-SDK进行结合:
从平台通过git clone
拉取代码:
git clone https://github.com/TencentCloud/tencentcloud-iot-explorer-sdk-embedded-c.git
然后在C-SDK
所在目录下用VSCODE
(官方用的是Visual Studio
)打开,然后为VSCODE
装好cmake
环境(具体百度):
然后修改CMakeList.txt
,主要做两件事情:
1、打开代码抽取功能
2、将编译工具链修改为Window环境
最后点击Build
实现代码抽取,如下图所示,然后会在SDK的output
目录下生成抽取的代码:
接下来创建一个QT工程,然后将C SDK包含进来:
在添加完相应的文件到QT中后编译会产生报错,如下图,注释重定义代码再重新编译:
除此之外,编译还会有大量的警告产生,这是由于C++11和C之间编译规则的原因导致,可以忽略。
另外,在移植OTA的过程中发现此处由于没有添加'\\0'而在QT的mingw环境下引发越界的Bug(此处感谢腾讯云许鹏虎许老师的热心和耐心支持,必须五星好评!)。
添加腾讯云三元组(产品ID、设备名称、设备密钥)
然后在QT的pro文件中添加:
#添加代码抽取的C SDK路径
INCLUDEPATH += ../qcloud_iot_c_sdk/include
INCLUDEPATH += ../qcloud_iot_c_sdk/include/exports
INCLUDEPATH += ../qcloud_iot_c_sdk/sdk_src/internal_inc
#包含网络库、线程库等,以支持CSDK在QT下的编译环境
win32
LIBS += -luser32
LIBS += -lpthread libwsock32 libws2_32
接下来,创建一个QT线程,然后将C SDK目录下example中的OTA更新例程进行修改,具体工程详见Github仓库:
https://github.com/Yangyuanxin/tencentcloud-iot-explorer-sdk-embedded-c
目前已经推送到我fork的仓库中,并且已经向官方提出了PR,后续大家可以基于QT开发环境愉快的玩耍啦!接下来,我将实现QT上位机支持腾讯云数据模板收发、文件上传和下载、酷狗音乐对接、腾讯连连对接等功能,并移植到嵌入式Linux的环境下,尽请期待!
演示效果:
往期精彩
开发者成长激励计划-基于TencentOS Tiny FDM 3D打印机云控制系统方案
觉得本次分享的文章对您有帮助,随手点[在看]
并转发分享,也是对我的支持。
以上是关于QT移植腾讯云C-SDK结合实现OTA更新的主要内容,如果未能解决你的问题,请参考以下文章
STM32+ESP8266(ESP-12F)实现在线OTA升级(腾讯云物联网)
STM32+ESP8266(ESP-12F)实现在线OTA升级(腾讯云物联网)
STM32+ESP8266(ESP-12F)实现在线OTA升级(腾讯云物联网)