一.前言 在编写这个项目的过程中,有个得到客户夸赞的小功能就是,设备按钮双击,在离线的时候是双击重连设备,在线的时候是双击弹出具体详情界面,回控设备,参数设置等.在modbus设备通信过程中,设定了超时次数,如果该节点的设备连着(记住是连着,如果是第一次没回,第二次没回,第三次回了,要重置计数变量,而不是总计3次)超过3次(可设定)没有收到返回的数据,则认为是离线,下次轮询的时候自动跳过该设备,这样可以大大加快轮训速度,在很多设备的时候,难免会遇到部分线路不通了,这样系统自动过滤掉该部分设备,实…
一.前言 记录清理功能,在数据量很小的情况下,用不上,如果数据量大了的话,长年累月存储的,那就显得极其重要了,好比视频监控中的NVR存储的视频一样,一般来说存储个60天,那超过60天怎办呢,擦除早期的数据用来存储最近的数据即可.在这个气体安全管理系统中,数据量长年累月也是很大的,一般来说一个节点默认每分钟存储一个数据,如果100个节点(这个应该是保守的数量,据说应用的好多个现场有500个左右的节点,至于如何突破的modbus255个节点的限制,后面的文章会单独讲解),一天下来就是1006024=…
一.前言 数据导出一般指导出到excel表格,可能有部分用户还需要导出到pdf,因为pdf基本上不可编辑,防止用户重新编辑导出的数据,excel可能绝大部分用过电脑的人都知道,广为流行,主要就是微软的office软件和金山的wps软件,所以只要涉及到导出数据的软件,基本上默认都是导出到excel,以便领导或者其他非软件专业人士打开看数据,或者二次分析数据,Qt中没有数据导出到excel相关的类,有一些第三方开源的比如qtxlsx.libxls等,很多初学者首先选择的是用qaxobject来调用e…
自从把Qt样式表葵花宝典这个pdf文件看完以后,将所有的qss内容都轮了一遍,还写了个皮肤生成器工具,https://blog.csdn.net/feiyangqingyun/article/details/56875924自从爱上了Qt的样式,基本上任何界面,用qss+qpainter都能搞定.自从把qpainter全部研究了一遍以后,写了个自定义控件大全,https://blog.csdn.net/feiyangqingyun/article/details/53443488以前没有写过顶部…
一.前言 作为一个管理系统,数据库肯定是不可或缺的,Qt内置的sqlite数据库已经是够用的,而且本人亲测数据量能支持亿级别,而不是像网上很多人说的千万级别,我模拟过一亿多条数据,依然能够很好的查询,而且还是在一张表哦,不过单文件好大,2G多,性能上相对于几百万条,肯定要差,但是这种亿级别的情况还是很少的啦,也是建议存储到千万级别就可以的,超过的就做自动清理早期数据. 为了兼容性和拓展性,本系统除了支持默认的sqlite数据库以外,还支持mysql数据库,至于sql server数据库,Post…
一.前言 通信协议解析是整个系统的核心灵魂,绝大部分人做软硬件通信开发,第一步估计就是写demo将协议解析好,然后再慢慢写整个界面和操作流程等,在工业控制领域,modbus协议应用还是非常广泛的,这个系统用的也是modbus协议,采用此协议可以方便的用一些第三方的组态软件接入,兼容性更强,modbus只是个协议规约标准,至于使用串口还是网络还是其他,都由厂家自行具体实现,一般正常来说,使用modbus协议的系统支持255个设备在同一个网络上进行通信,而且大部分都会采用485半双工的机制,挨个轮询…
一.前言 整体框架包括两个部分,一部分是UI界面框架,比如一级二级导航菜单按钮整体布局等,一部分是项目框架,上一篇文章说的是项目框架,这一篇文章来说界面框架,Qt做界面非常快速和高效,尤其是提供了可视化的界面设计,所见即所得,和大部分的开发环境类似,比如宇宙第一的VS,古老的VB,当年超级牛逼的dephi等,都是提供了可视化的所见即所得界面设计器,拖拖控件搞定,然后再去写对应的事件代码,最后编译打包发布. Qt基本上是超大型一站式GUI超市框架,你要的各种控件都有,比如按钮.标签.文本框.下拉框…
一.前言 说到项目框架,也叫代码框架,其实是非常重要的,随着编程经验的增加,相信每个程序员都会有一个自己的习惯的项目框架,这个东西跟建房子一样,先把架子搭好,然后挨个往里边填充内容,据说牛逼的架构师都是负责搭建好框架,然后安排手下的人负责编写具体的业务逻辑代码,最多再写点核心算法,一般来说至少要5年以上工作经验的牛人才有这个实力.框架搭建得好,有事半功倍的效果,搭建框架的时候就已经在考虑后期的拓展了. 我一般写Qt项目的框架,都喜欢用pri文件进行管理,pri是个好东西,其实就是个文本文件,专门…
一.前言 Qt的跨平台特性是非常厉害的,本来作为C++来说,跨平台的特性比JAVA还要好,只不过学习难度更大,所以大家更理解的跨平台是JAVA,Qt的跨平台特性是我见过的所有开发环境和语言中最厉害的,据说现在还能跑在部分MCU单片机上,本来Qt的发家起步就是在linux系统上,嵌入式linux上应用比较多,只不过最近十年来,由于安卓的迅猛发展,逐步被蚕食了一些市场,还剩一些跑安卓卡爆了的配置很低的硬件上,这些场景非Qt莫属了,完全能够胜任,个人跑过最低配置的是128MB内存256MB存储的硬件,…
一.前言 模拟工具在一些涉及到硬件通信的程序中特别有用,也特别需要,回顾这十年来做过的项目,95%的项目都是软硬件交互的,貌似软硬件结合的项目更有生命力一些,纯软件的或者纯硬件的,并没有那么好控制,如果是软硬件结合的,就算硬件不挣钱,还可以通过控制软件部分和服务来挣钱,而如果软件免费的话,那就必须买硬件,必须跑在这个硬件上才能最好的发挥软件效果,这样软件免费靠硬件挣钱的例子,也不少,这些年接触过形形色色几十家公司,都是类似的情况,软硬结合加上服务,这三者搭配的产品,生命力最强,可以走的更远. 回…