当前位置:网站首页>QT串口和CAN数据动态实时显示最后日志
QT串口和CAN数据动态实时显示最后日志
2022-07-30 05:45:00 【透明的光】
前言
从11月20号到12月10号,编写QT的串口和CAN通讯的上位机显示程序,经历20天。整个项目下来,感觉软件方面,特别是面对对象编程方面有了一定的了解,也了解到面对对象编程和面向逻辑编程的区别。整体来说,编程过程区别不是很大:面对对象编程也需要逻辑编程,而逻辑编程不包含对象编程。至于串口和CAN的区别,仅仅是底层硬件的区别,对于上层编程来说,区别并不是很大。
第一部分:对象编程和逻辑编程
(1)语言用法不用:QT基于c++,单片机基于C。前者基于类,后者最多用到结构体。相对来说逻辑编程入门容易,进阶难;对象编程入门难,进阶还算可以。
(2)思路不同:QT基于信号和槽,实时执行,单片机基于循环和中断。
(3)针对对象不同:QT仅仅是制作上位软件,属于外围设备,即发送或接受端;单片机是硬件支持,外围可以是开关、通讯接口、也可以是QT制作的外围显示和信号输入(通讯)。
(4)逻辑不同:QT通过通讯协议下发命令,其命令通过虚拟按键或者逻辑实现。单片机通过初始化硬件接口,其代码通过大循环+中断完成。
两者位置大概如图所示:
第二部分:QT中串口和CAN的区别
(1)函数来源不同:QT中自带串口的函数,CAN的函数需要厂商提供的dll文件。
(2)接收函数效果不同:串口接收函数recvData = mSerial.readAll()将接收到的数据放到recvData 数组中,数组是连续的,即接收100个,数据就放到数组0到99;CAN接收函数ReceiveNum = VCI_Receive(nDeviceType,nDeviceInd,nCANInd,Receive,100,400)是放在Receive数组中,数组仅仅是8个,无论接收多少个都放在数组0到7。
(3)效果不同:排除内在逻辑和外围逻辑问题,串口接收数据并绘图的可靠性低于CAN接收数据并绘图。相同情况下,串口接收会丢点,而CAN接收却不会(观察波形)。在绘图个数较少的情况下,二者并没有明显的差别。
下图为串口接收数据并绘图:
下图为CAN接收数据并绘图
整体来看,二者在数据动态实时显示上并没有本质区别,仅仅在底层传输与处理上有各自的特点。
第三部分:总结
数据显示:串口和CAN的上位软件制作告一段落。整体感觉仅仅制作显示界面的程序并不是太难,只是程序入门比较困难。初步估计短时间内也不会再设计此类项目,编写的代码也将封存,如果有需要用到串口或者CAN的QT程序的小伙伴可以留下自己的邮箱,届时将打包发送。
注:由于小伙伴需要源代码的时间不同,登录邮箱界面太多麻烦,所以建立了一个订阅号,如果有问题或者需要源码,可添加订阅号,留言后会发送源代码或者有任何问题可留言,将积极解决提出的问题。
边栏推荐
- Arthas 命令解析(watch/tt/sc)
- 十六、Kotlin进阶学习:协程详细学习。
- 边境的悍匪—机器学习实战:第一章 机器学习的基础知识
- Dropout原理及作用
- SQL Server Installation Tutorial
- Trust anchor for certification path not found. Exception solution.
- Function functional interface and application
- 【青岛站】SWAT模型高阶应用暨无资料地区建模、不确定分析与气候变化、土地利用对面源污染影响模型改进及案例分析研讨
- 建造者模式(Swift 实现)
- Application of remote sensing, GIS and GPS technology in hydrology, meteorology, disaster, ecology, environment and health
猜你喜欢
SQL Server Installation Tutorial
FPGA解析B码----连载2
Self-augmented Unpaired Image Dehazing via Density and Depth Decomposition program running record
什么是过拟合、欠拟合现象以及如何缓解?
求职准备知识点
protobuf编码及网络通信应用(一)
建造者模式(Swift 实现)
MATLAB怎么在图像中显示nii文件切片信息?
十、Kotlin基础学习:1、延迟加载;2、异常处理;3、使用 throw 主动抛出异常;4、自定义异常;
十六、Kotlin进阶学习:协程详细学习。
随机推荐
Redis 发布/订阅
常用损失函数(一):Focal Loss
Xcode 建立 UIKit 项目(Hello World)
【青岛站】SWAT模型高阶应用暨无资料地区建模、不确定分析与气候变化、土地利用对面源污染影响模型改进及案例分析研讨
Reasons and solutions for Invalid bound statement (not found)
How does MATLAB display nii file slice information in the image?
Atmospheric particulate matter PMF source analysis
【Qingdao Station】High-level application of SWAT model and modeling of areas without data, uncertainty analysis and climate change, improvement of land use surface pollution impact model and case analy
Flood Control Assessment Report Compilation Method and Flood Modelling under the New Guidelines (HEC-RAS)
边境的悍匪—机器学习实战:第十三章 使用TensorFlow加载和预处理数据
Go简单实现协程池
[Getting C language from zero basis - navigation summary]
边境的悍匪—机器学习实战:第十一章 训练深度神经网络
CLUE Model Construction Method, Model Validation and Land Use Change Scenario Prediction
二叉树(一):深度优先遍历与广度优先遍历
SQL Server Installation Tutorial
The application of Meta analysis in the field of ecological environment
Redis 客户端常见异常分析
21. Kotlin Advanced Learning: Implementing Simple Network Access Encapsulation
七、Kotlin基础学习:1、创建类;2、构造函数;3、继承;4、封装;5、抽象类;6、接口;7、嵌套类;8、内部类;9、枚举类