模拟量串口采集模块(Qt编写控件属性设计器7-串口采集)

Posted

篇首语:贵有恒,何必三更起、五更眠、最无益,只怕一日曝、十日寒。本文由小常识网(cha138.com)小编为大家整理,主要介绍了模拟量串口采集模块(Qt编写控件属性设计器7-串口采集)相关的知识,希望对你有一定的参考价值。

模拟量串口采集模块(Qt编写控件属性设计器7-串口采集)

一、前言

数据源是组态软件的核心灵魂,少了数据源,组态就是个花架子没卵用,一般数据源有三种方式获取,串口、网络、数据库,至于数据规则是什么,这个用户自己指定,本设计器全部采用第一个字节作为数据来演示。

串口通信在大量的工业控制领域用的最多,就因为稳定两个字,长期霸占了几十年的通信规则,现在还有大量的工业控制设备使用的就是串口通信,Qt5以后封装了串口通信的类,不过据说不大好用,也不大稳定,本人在早期的Qt版本比如Qt5.3时代用过几次,是有点莫名其妙的问题,后面索性就不在用自带的了,而是用的第三方开源的qextserialport,主要还是因为本人做过的硬件设备上面大量的还是Qt4.8的Qt版本,没法用Qt5,还没升级到Qt5可能也是考虑到稳定性的原因。

二、实现的功能

1. 自动加载插件文件中的所有控件生成列表,默认自带的控件超过120个。

2. 拖曳到画布自动生成对应的控件,所见即所得。

3. 右侧中文属性栏,改变对应的属性立即应用到对应选中控件,直观简洁,非常适合小白使用。

4. 独创属性栏文字翻译映射机制,效率极高,可以非常方便拓展其他语言的属性栏。

5. 所有控件的属性自动提取并显示在右侧属性栏,包括枚举值下拉框等。

6. 支持手动选择插件文件,外部导入插件文件。

7. 可以将当前画布的所有控件配置信息导出到xml文件。

8. 可以手动选择xml文件打开控件布局,自动根据xml文件加载控件。

9. 可拉动滑动条、勾选模拟数据复选框、文本框输入,三种方式来生成数据应用所有控件。

10. 控件支持八个方位拉动调整大小,自适应任意分辨率,可键盘上下左右微调位置。

11. 打通了串口采集、网络采集、数据库采集三种方式设置数据。

12. 代码极其精简,注释非常详细,可以作为组态的雏形,自行拓展更多的功能。

13. 纯Qt编写,支持任意Qt版本+任意编译器+任意系统。

三、效果图

四、核心代码

void frmData::initServer() //实例化串口类,绑定信号槽 com = new QextSerialPort(QextSerialPort::EventDriven, this); connect(com, SIGNAL(readyRead()), this, SLOT(readDataCom())); //实例化网络通信客户端类,绑定信号槽 tcpClient = new QTcpSocket(this); connect(tcpClient, SIGNAL(readyRead()), this, SLOT(readDataClient())); //实例化网络通信服务端类,绑定信号槽 tcpSocket = NULL; tcpServer = new QTcpServer(this); connect(tcpServer, SIGNAL(newConnection()), this, SLOT(newConnection())); //开启定时器读取数据库采集数据 timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(readDataDb())); timer->setInterval(1000);void frmData::on_btnOpenCom_clicked() if (ui->btnOpenCom->text() == "打开")  com->setPortName(App::PortName); bool ok = com->open(QIODevice::ReadWrite); if (ok)  com->setBaudRate((BaudRateType)App::BaudRate); setEnable(ui->btnOpenCom, false); ui->btnOpenCom->setText("关闭");   else  com->close(); setEnable(ui->btnOpenCom, true); ui->btnOpenCom->setText("打开"); void frmData::readDataCom() QByteArray data = com->readAll(); if (data.length() <= 0)  return;  //默认取第一个字节解析,可以自行更改 quint8 value = data.at(0); ui->txtValue->setText(QString::number(value)); append(1, data.toHex());

五、控件介绍

1. 超过150个精美控件,涵盖了各种仪表盘、进度条、进度球、指南针、曲线图、标尺、温度计、导航条、导航栏,flatui、高亮按钮、滑动选择器、农历等。远超qwt集成的控件数量。

2. 每个类都可以独立成一个单独的控件,零耦合,每个控件一个头文件和一个实现文件,不依赖其他文件,方便单个控件以源码形式集成到项目中,较少代码量。qwt的控件类环环相扣,高度耦合,想要使用其中一个控件,必须包含所有的代码。

3. 全部纯Qt编写,QWidget+QPainter绘制,支持Qt4.6到Qt5.12的任何Qt版本,支持mingw、msvc、gcc等编译器,支持任意操作系统比如windows+linux+mac+嵌入式linux等,不乱码,可直接集成到Qt Creator中,和自带的控件一样使用,大部分效果只要设置几个属性即可,极为方便。

4. 每个控件都有一个对应的单独的包含该控件源码的DEMO,方便参考使用。同时还提供一个所有控件使用的集成的DEMO。

5. 每个控件的源代码都有详细中文注释,都按照统一设计规范编写,方便学习自定义控件的编写。

6. 每个控件默认配色和demo对应的配色都非常精美。

7. 超过130个可见控件,6个不可见控件。

8. 部分控件提供多种样式风格选择,多种指示器样式选择。

9. 所有控件自适应窗体拉伸变化。

10. 集成自定义控件属性设计器,支持拖曳设计,所见即所得,支持导入导出xml格式。

11. 自带activex控件demo,所有控件可以直接运行在ie浏览器中。

12. 集成fontawesome图形字体+阿里巴巴iconfont收藏的几百个图形字体,享受图形字体带来的乐趣。

13. 所有控件最后生成一个动态库文件(dll或者so等),可以直接集成到qtcreator中拖曳设计使用。

14. 目前已经有qml版本,后期会考虑出pyqt版本,如果用户需求量很大的话。

15. 自定义控件插件开放动态库使用(永久免费),无任何后门和限制,请放心使用。

16. 目前已提供26个版本的dll,其中包括了qt5.12.3 msvc2017 32+64 mingw 32+64 的。

17. 不定期增加控件和完善控件,不定期更新SDK,欢迎各位提出建议,谢谢!

18. Qt入门书籍推荐霍亚飞的《Qt Creator快速入门》《Qt5编程入门》,Qt进阶书籍推荐官方的《C++ GUI Qt4编程》。

19. 强烈推荐程序员自我修养和规划系列书《大话程序员》《程序员的成长课》《解忧程序员》,受益匪浅,受益终生!

相关参考

温度模拟试验机(苏州7寸串口屏厂家:盐雾测试机触摸屏实际温度设定)

盐雾测试机是一种主要利用盐雾试验设备所创造的人工模拟盐雾环境条件来考核产品或金属材料耐腐蚀性能的环境试验。采用自动/手动加水系统,具有水位不足时能自动补充水位之功能,试验不中断。水位不足警示确保使用安...

开发指纹模块(基于STM32 MCU和串口TFT LCD模块的指纹识别)

文章来源:CNXSoftware中文站注:这是在STONE技术公司工作的Amy的一篇客座文章,STONE技术公司是一家专门从事工业液晶显示模块的公司。2019年11月,我计划开发一个指纹门锁项目。当我选择好指纹识别模块时,项目就被暂停了。不...

物联网无线通讯模块(这款多功能旗舰无线串口模块,你可以完全信任它)

成都泽耀科技A39模块可谓是集多功能、高稳定性、安全性、灵活性等优势于一身,它可以保证无线数据在各种环境和传输方式下,都能有效的抵达目标,自动纠错、数据加密、适应各种恶劣环境,同时它也拥有着相当低的功耗,...

物联网无线通讯模块(这款多功能旗舰无线串口模块,你可以完全信任它)

成都泽耀科技A39模块可谓是集多功能、高稳定性、安全性、灵活性等优势于一身,它可以保证无线数据在各种环境和传输方式下,都能有效的抵达目标,自动纠错、数据加密、适应各种恶劣环境,同时它也拥有着相当低的功耗,...

杭州有塑料焊接加工厂吗(杭州43寸串口屏供应:超声波塑料焊接机控制面板进行画面制作)

超声波塑料焊接机是超声波塑料焊接设备在塑料焊接领域研发设计的焊接设备,业内简称为超声波塑焊机。超声波焊接设备是熔接熟塑性塑料制品的高科技技术。各种熟塑性胶件均可使用超声波熔接处理,在焊接塑料制品时,既...

开关量传感器(如何实现开关量输入与继电器输出联动功能RS485串口通讯)

一.首先准备一台YX-DIDO-004、一台4路开关量传感器二.将开关量传感器、YX-DIDO-004、被控制设备连接在一起,如下图;三.配置串口参数及DI、DO联动指令四.当开关量传感器输入触发后,DO进行联动关停或者启动被控制设备。

模拟量采集模块作用(老化测试架常用模拟量输入输出模块)

...社会影响,因此需求数据监测系统。而监测系统需要配套模拟量输入输出模块用来采集模拟量信号及输出模拟量信号达到监测数据的作用。主要对数据监测系统上位机通讯进行了通讯和实现,并对老化测试架的性能进行了测试,下...

模拟量无线(Plc工控数据模拟量采集模块介绍)

Plc工控数据模拟量采集模块:数据传输的方式可以分为两种,即有线传输和无线传输,使用有线通信方式的数据采集被称为有线数据采集,同样的使用无线通信方式的数据采集被称为无线数据采集。无线数据采集是现代信息通信...

热电偶采集模块(基于集智达R-8188和R-8018模块的钢化炉采集传输系统方案)

...;PLC作为上位主机,完成工艺流程和温度控制;R-8188作为串口通讯控制器,实

热电偶采集模块(基于集智达R-8188和R-8018模块的钢化炉采集传输系统方案)

...;PLC作为上位主机,完成工艺流程和温度控制;R-8188作为串口通讯控制器,实