By TheQt Company Anu Linjamki


当下工业 4.0 和 IIoT 带来了一系列新的挑战。将会有越来越多的在线设备生成更多的数据,这反过来会导致应用更加的复杂。 整个环境将会以更快的速度发生变化,包括设备状态、基础设施、应用复杂度和开发过程。为了应对这种挑战,设计师针对未来的 IoT 提出了一种新的通用框架设计。

Infrastructure design of future IoT

凭借这种设计,Qt 和 Toradex 活跃于 HMI 和 边缘设备/控制器领域。Qt 的优势诸如跨平台、用户体验、丰富的库文件和工具可以被自由得发挥。

The Qt Company 注意到开发智能设备以及 HMI对扩展性、协作性和性能需求的这些挑战。在工业自动化领域实现的方法不一而足,但是创建一种新的软件能够适合各种尺寸的设备、跨平台并且能够动态更新和维护,这确实是十分关键的。

1). 硬件选型关系重大

不久前,The Qt Company 发布了一系列的文章讨论设备的快速启动。根据应用的使用场景,您必须要考虑启动时间、应用优化、软件栈优化,当然还有硬件的选型。

硬件选型和硬件架构,即使在采用相同的 CPU 也会对最后启动时间产生巨大的影响。在一个简洁、明了的对比测试中,Toradex 的计算机模块的启动时间比对手明显快 19%(294ms)。这种差距来自与 Toradex 模块更快的上电速度以及内核能够更早的访问 eMMC 从而获得更快的启动时间。

 

2). Qt 应用的结构是什么?

Software architecture for Qt-based industrial application

基于 Qt 的行业应用软件结构

./ 应用: 基础软件,包括您公司特有的方案 - 控制特殊硬件或者加密您独特算法的库文件

./ UX: 您应用和用户之间的桥梁。由您的团队采用强大的 Qt 框架开发

./ 第三方组件: 软件库、数据库或者协议栈 - 您的应用所依赖的软件,但是并不需要您公司自己开发

./ Qt 运行库: Qt 的 UI 组件,包含大量支持的功能和库文件

./ C++ 运行库: C++ 编译器提供的运行组件和库文件

./ 操作系统: 您硬件的接口。取决于您的需求,这可能是桌面操作系统、Linux 衍生版本或者 RTOS

Qt forAutomation 综合多种技术,被设计专门解决众多通用的行业需求。开发人员可以选择所需的自动化协议、虚拟键盘、图表、标签视图、国际化(多语言)、免安装的多客户端访问的远程界面以及配置工具。

除此之外,Qt for Automation 囊括针对一些通用问题的技术 - 在广泛分布网络中安全和可靠地管理目标和设备:

 

3). QtMQTT 将远程信息导入到云端

QtMQTT 是一个客户端实例,可以用于开发设备发送数据,以及接收和管理数据的监控方案。QtMQTT 并不专注于代理功能。一个值得提起的要点是,相比与其他方案 QtMQTT 能够完全合规。其支持协议的 3.1 和 3.1.1 等级、QoS 所有等级、认证、SSL 连接和 Last Will。至于安全方面,QtMQTT 通过两种途径实现:在建立连接是使用用户名和密码认证以及使用 SSL/TLS 作为连接通道。这同样十分易于扩展,你可以采用基于 QIODevice 或者 QAbstractSocket 的其他传输方法。这意味着你可以创建自己的传输机制,在建立连接之前发送到 QMqttClient。有一个实例演示如何借助websockets 使用 MQTT,Qt 为 websockets 提供一个独立的模块。由于不同的收发数据方式,QWebsocket 并不是基于 QAbstractSocket。然而,有很详细的规范关于如何使用 websocket推送 MQTT 数据(以二进制形式发送、必须在一个数据报中等)。因此可以创建一个很简单的类。在 QtMQTT 模块实例中可以找到规范说明。

综上所述,由于 QtMQTT 的小体积、低耗能、紧凑的数据包、高效的单点/多点信息发布,使其成为 IoT 应用的理想选择。最后,QtMQTT 没有外部的依赖关系,您无需顾虑。

Qt World Summit 上 MQTT 介绍视频请点击这里。

4). 智能家居变得更加简单

KNX 凭借其编程和安装控制 PC 软件,成为智能家居和建筑协议(https://www.knx.org)的欧洲领导者。KNX 关注大多数雄性勃勃的初创企业,他们制定的标准无所不在,并众多厂商支持。KNX 面临长期的挑战是,难于开发和部署客户端应用。QtKnx 是 Qt 为 Automation 提供一部分库,提供开源和商业部署策略,填补了一些公司为智能建筑提供定制化 UI 的空白。它支持集成不同的功能(例如语言识别)和技术(蓝牙低能耗技术)。

首先,QtKNX 可以被用于开发能够发现KNX 服务并在服务器端控制和管理安装的 KNX 客户端。在 Qt World Summit 2017 的演示中,Qt 展示了如何使用 KNX 作为控制面板和设备之间的通信协议来控制您家里的电灯。

Qt World Summit 2017 上 QtKNX 演示视频请点击这里。

该开发仍在继续,我们很期待后续的新功能!

 

5). 针对无显示界面的 WebGL Streaming

QtWebGL Streaming 运行在浏览器中对 Qt Quick 应用实现专有、无损的远程连接(非镜像)。当远程应用使用新的平台插件运行时,应用会创建一个轻量级的 web 服务器。当用户连接到应用,在服务器和客户端之间打开一个基于 QWebSocketServer 的 web socket 连接。在远端电脑上运行的应用会将所有 GL 调用串化为二进制数据,并通过 websocket 连接发送。本地浏览器发送事件(鼠标、触摸或者键盘)到远端应用,从而实现用户的操作。甚至支持 6 指的多点触摸功能。

WebGL 并非 Qt for Automation 的专属部分,也适用于 Qt for Device Creation 和应用开发。只是 WebGL 在 Automation 和 IIoT 应用场景中更加突出其有点。

Qt World Summit 2017 上 Qt WebGL Streaming 视频介绍请点击这里。

6). Qt for Automation 以及云端集成

Qt 最近发布和微软合作,针对工业自动化领域,简化 Microsoft Azure Cloud Platform 和 Services 集成到工业物联网 IIoT。(https://www1.qt.io/qt-news/qt-company-collaborates-microsoft-simplify-cloud-connectivity-industrial-automation)

Qt 在诸多展会中演示了 Qt 应用可以容易地使用 MicrosoftAzure service。通过我们合作伙伴,我们可以在不同的平台上支持 Qt for Automation。其中的一个案例是在日本横滨举办的 EmbeddedTechnology 2017 上, Qt 充电桩 (EVSE) 采用了基于 NXP/Freescalei.MX 6 SoC 的 Toradex Colibri iMX6 计算机模块 。Qt 为 Toradex 模块提供现成的Boot2Qt 软件。这就可以使您能够非常容易地上手。使用这种组合,客户可以优化性能以及针对不同的使用类型创建可伸缩的软件。

Qt electric charging station demo

Qt 充电桩 (EVSE) 演示


7). 集成支持 Toradex 模块

Toradex 和 Qt 联手在 Toradex 模块上优化 Qt。这包括例如优化针对没有 3D GPU 的低功耗模块上 2D 渲染性能、1.2秒冷启动时间等。

另一个方面的合作是开发体验。现成的 Boot2Qt 软件适用于大多数 Toradex 模块,您可以使用 ToradexEasy Installer 一键安装 Boot2Qt。

Toradex 的扩展能力能够精确满足您对于性能的要求。模块使用的 SoC 包括 Nvidia 和 NXP 的 i.MX 6、i.MX 7以及新的 i.MX 8。


8). 如何开始

Qt for Automation 在 Qt 5.10 中提供。访问https://www.qt.io/qt-in-automation/ 开始使用。了解如何在 Toradex 模块上使用 Qt 请访问 https://developer.toradex.com/knowledge-base/getting-started-with-qt

Qt for Automation 介绍相关推荐

  1. Qt插件机制介绍及实现

    Qt插件机制介绍及实现 创建应用程序主窗口 创建Qt项目 编辑项目文件ImageView.pro mainwindow.cpp main.cpp mainwindow.cpp 编译运行 插件接口 实现 ...

  2. Qt的简单介绍和安装

    目录 Qt的介绍 Qt的优点 Qt的安装 Qt的介绍 Qt是一个跨平台的C++图形用户界面应用程序框架,它为应用程序开发者提供图形界面所需的所有功能. 它是完全面向对象的,很容易扩展,并且允许真正的组 ...

  3. Qt状态机框架介绍(二)

    前言 上一篇博客中已经介绍了Qt状态机的基础概念和用法,文章在这里,接下来继续介绍Qt状态机的使用. 历史状态的保存和恢复 前一个示例中,我们通过一个按钮中断状态机,在此基础上,如果我们中断状态机过后 ...

  4. 【Qt教程】Qt常用部件介绍

    这里先给大家介绍 Designer(界面设计器)中例举的常用部件,以便对 Qt 的部件有一定认识,其具体用法后面再作介绍. 布局管理组(Layouts) 空间间隔组(弹簧)(Spacers) 按钮组( ...

  5. Qt的简单介绍,发展和由来

    一.Qt的介绍 1. Qt是图形用户界面程序框架,也可以称作Qt库,能做界面的还有MFC(只能在windows下使用),GTK+ 2. Qt的由来和发展 1. Qt的历史: Qt是1991年奇趣科技公 ...

  6. QT:QObject 简单介绍

    QObject 是所有Qt对象的基类. QObject 是Qt模块的核心.它的最主要特征是关于对象间无缝通信的机制:信号与槽. 使用connect()建立信号到槽的连接,使用disconnect()销 ...

  7. Qt Quick 3D介绍:Qt Quick的高级3D API

    目录 我们的目标是什么?为什么提出另一个3D解决方案? 统一图形技术 直观易用的API Qt Quick的统一工具 一流的素材优化管道 跨平台性能和兼容性 Qt Quick 3D到底是什么? 您能用Q ...

  8. 从Qt 4到Qt 5(二)Qt 5框架介绍

    导语 上一节已经安装好Qt 5.2,并将一个Qt 4程序迁移到了Qt 5上.其中我们讲到Qt 5中QApplication类已经不在QtGui模块中了,而且所有的Qt 5图形界面程序都必须在.pro项 ...

  9. QT编程核心技术介绍

    第二章 Qt编程核心技术 Qt/X11与Qt/Embedded版本的Qt类库,尽管类的底层实现有一些细微区别,但类的声明及方法函数是一样的,对于编写Qt应用程序的编程者来说,几乎不需要关心这些区别,使 ...

最新文章

  1. C#/.Net判断是否为周末/节假日
  2. mybatis对mapper.xml的解析(三)
  3. IEEE Access latex 图片caption无法换行的问题
  4. Android攻城狮Gallery和ImageSwitcher制作图片浏览器
  5. 如何在MFC线程中使用控件的成员变量和函数
  6. notepad++ tcl_TCL科技前三季度净利20亿元,投资并购超200亿元
  7. 前端:JS/37/canvas对象(画布对象),用canvas对象(画布)画一些基本的图像
  8. jquery中prop()和attr()的使用
  9. form:errors path 不显示出错信息_视觉激光雷达信息融合与联合标定
  10. 机器学习基础(二十六)—— 将 SVM 推广到多类问题
  11. banner图/轮播图----html
  12. Visio-Cisco-华为-IBM网络设备官方模板
  13. 【无机纳米材料科研制图——OriginLab 0208】Origin拟合SERS拉曼光谱
  14. html画excel表格边框,设置Excel表格和单元格的边框和底纹 html表格单元格边框
  15. ABP-引入SqlSugar-简单版
  16. 读书笔记 - 《上帝的跳蚤》
  17. bigemap中下载边界_BIGEMAP地图下载软件-BIGEMAP地图下载器下载v19.2.0.0-西西软件下载...
  18. Mac必备效率软件|Alfred的基础使用教程
  19. python发邮件附件_python 发送带附件的邮件
  20. 水泥cement或英语caement水泥

热门文章

  1. 新媒体运营之如此微信养号不易封
  2. 交通规划辅助决策系统构建及佛山实践
  3. 上海市2019年公务员录用考试笔试合格人员笔试成绩(B类)
  4. 4.8 Best-First Search最佳优先搜索
  5. 主流App开屏广告一夜消失!满屏找“跳过”的时代快结束了
  6. C++:实现量化Everest Option埃弗勒斯峰型测试实例
  7. Python爬取笑话存储在mysql里
  8. 网站推荐及个性化桌面软件推荐
  9. python无法正常启动0xc000007b_(完美解决)应用程序无法正常启动(0xc000007b),请单击确定关闭应用程序的解决方案_来者即是客,我们共同成长-CSDN博客...
  10. 资产知识之双倍余额法