QT移植腾讯云C-SDK结合实现OTA更新

简介: QT移植腾讯云C-SDK结合实现OTA更新

腾讯云C-SDK是一套能够帮助开发者快速对接腾讯云Iot Explorer平台的一套跨平台通讯架构,整体框架如下所示:

640.png

640.png

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

640.png

然后在C-SDK所在目录下用VSCODE(官方用的是Visual Studio)打开,然后为VSCODE装好cmake环境(具体百度):

640.png

然后修改CMakeList.txt,主要做两件事情:


  • 1、打开代码抽取功能
  • 2、将编译工具链修改为Window环境

640.png

   最后点击Build实现代码抽取,如下图所示,然后会在SDK的output目录下生成抽取的代码:640.png

接下来创建一个QT工程,然后将C SDK包含进来:

640.png

   在添加完相应的文件到QT中后编译会产生报错,如下图,注释重定义代码再重新编译:

640.png

   除此之外,编译还会有大量的警告产生,这是由于C++11和C之间编译规则的原因导致,可以忽略。

640.png

   另外,在移植OTA的过程中发现此处由于没有添加'\0'而在QT的mingw环境下引发越界的Bug(此处感谢腾讯云许鹏虎许老师的热心和耐心支持,必须五星好评!)。

640.png

添加腾讯云三元组(产品ID、设备名称、设备密钥)

640.png

然后在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的环境下,尽请期待!


演示效果:


往期精彩

嵌入式开发常用软件工具收集


一套极简的MQTT使用接口EasyMqttClient


保姆级快速搭建一套Linux环境下的MQTT开发程序模版


开发者成长激励计划-基于TencentOS Tiny FDM 3D打印机云控制系统方案

目录
相关文章
|
29天前
|
安全 编译器 Linux
精伦安全模块-身份证读卡器对接-Qt调用SDK
精伦安全模块-身份证读卡器对接-Qt调用SDK
32 0
|
编解码 开发工具
Hi3516开发笔记(九):在QtCreator开发环境中引入海思sdk的bsp包,运行显示Qt界面
Hi3516开发笔记(九):在QtCreator开发环境中引入海思sdk的bsp包,运行显示Qt界面
Hi3516开发笔记(九):在QtCreator开发环境中引入海思sdk的bsp包,运行显示Qt界面
|
编译器 Linux API
QT应用编程: 基于mdk-sdk开发视频播放器
QT应用编程: 基于mdk-sdk开发视频播放器
488 0
QT应用编程: 基于mdk-sdk开发视频播放器
|
对象存储 C语言 编译器
Qt 连接阿里云oss的c语言SDK
这段时间利用Qt连接阿里的OSS一直没有成功,网上发现这个帖子https://www.cnblogs.com/huoqs/p/6407249.html中有详细的解释,按照他的操作步步骤来基本没有问题。
13438 0
|
Unix 开发工具 Windows
|
开发工具
QT解决could not resolve sdk path for 'macosx10.8'
这时由于QT for Mac中qdevice.pri文件的配置问题。我现在使用的是OS X10.10,所以需要到如下路径找到qdevice.pri文件。
1553 0
|
2月前
|
网络协议 C++
C++ Qt开发:QTcpSocket网络通信组件
`QTcpSocket`和`QTcpServer`是Qt中用于实现基于TCP(Transmission Control Protocol)通信的两个关键类。TCP是一种面向连接的协议,它提供可靠的、双向的、面向字节流的通信。这两个类允许Qt应用程序在网络上建立客户端和服务器之间的连接。Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用`QTcpSocket`组件实现基于TCP的网络通信功能。
38 8
C++ Qt开发:QTcpSocket网络通信组件
|
2天前
|
开发框架 编译器 C++
Qt:一个强大的跨平台C++应用程序开发框架
Qt:一个强大的跨平台C++应用程序开发框架
8 1
|
2天前
|
开发框架 Linux C++
Qt:强大的跨平台C++应用程序开发框架
Qt:强大的跨平台C++应用程序开发框架
12 3

推荐镜像

更多