【Qt串口波形绘图】基于QCustomPlot的串口波形绘图上位机,源码开放

之前写了一款串口调试上位机,有很大的功能欠缺,整体感觉十分不爽。这次在原有基础上进行了优化,并且增加了协议帧捕获功能,使用QCustomPlot进行波形绘图的功能,可应用于实时动态绘图。(直男审美,实在不懂UI设计,望吐槽时嘴下留情)

GitHub源码仓库:源码下载

 

波形界面展示:

左侧是绘图区,右侧为控制区。最大可以显示20条曲线,可对波形、散点、背景、坐标进行设置。

绘图散点功能展示:

右侧 曲线/散点设置 的功能,依次为:隐藏/显示、颜色选择、加粗显示、值显示、线连接方式、散点形状。

每条曲线的颜色、线连接方式、散点形状均可调。线连接方式包括:点、线左对齐、右对齐、居中对齐、平行y轴的高线。

自发自收,波形绘图测试:

百万字节绘图测试:

百万字节接收绘图测试:CPU占用率保持在20%左右(7代i5四核四线程),内存占用随历史接收的增加而增加。

协议帧格式介绍:

协议帧兼容匿名四轴调试上位机,在mainwindow.h中修改宏定义可自定义帧头、功能字。

每帧数据包含 N条绘图波形的一个点,类型为int16,每输入一帧便会在波形界面中绘制出N个点,并且X轴显示坐标加1。连续不断发送便可实时动态绘图。

固定帧头 3A 3B,用于帧起始位置的识别。(默认3A 3B,可在代码中修改)

功能字 01,意义为波形绘图,暂时只定义了这一个有效功能字。

有效字的总字节长度范围为 2~40,只能为偶数,对应着 1~20条曲线。

单个有效字的字节长度为 2Byte,int16类型,由于计算机存储数据时使用补码,手动计算需要转换为补码。

校验和为此帧前面所有数据的累加,取末位的1字节,做校验和。校验比对正确则进行绘图,不正确则误码数量加1。

例1,包含2条波形:

3A 3B 01 04 FF 38 13 14 D8(16进制显示)
3A 3B 01 04 FF 38 13 14 D8
固定帧头 功能字 有效字的总长度,4 第1有效字,-200的补码 第2有效字,4884的补码 校验和

例2,包含20条波形:

3A 3B 01 28 00 C8 01 90 02 58 03 20 03 E8 04 B0 05 78 06 40 07 08 07 D0 FF 38 FE 70 FD A8 FC E0 FC 18 FB 50 FA 88 F9 C0 F8 F8 F8 30 94(16进制显示)
3A 3B 01 28 00 C8 01 90 02 58 03 20 03 E8 04 B0 05 78 06 40 07 08 07 D0 FF 38 FE 70 FD A8 FC E0 FC 18 FB 50 FA 88 F9 C0 F8 F8 F8 30 94
固定帧头 功能字 有效字的总长度,40 200的补码 400 600 800 1000 1200 1400 1600 1800 2000 -200 -400 -600 -800 -1000 -1200 -1400 -1600 -1800 -2000 校验和

补码计算器:补码在线计算

详细功能介绍:

自动扫描可用串口端口,同时显示端口硬件信息(无须再查看设备管理器,方便选择),波特率可手动输入。

发送/接收字节、速率统计、帧统计、误码统计。

接收区每2000字节强制换行,避免一行的内容太多,导致CPU占用过高从而卡顿,已测试过累计千万字节不卡顿。(仅仅是在接收显示里加换行,实际的真实数据不受影响)

支持中文收发,默认GB2312编码,如需Unicode/UTF8/UTF16需要更改代码。(单片机中文编码大多使用GB2312,占用空间小)

收/发区,无缝16进制转换,GB2312中文不乱码。输入框可作为转换框,无须在计算后重复输入。

增加帧捕获功能,用户可自定义修改两字节的帧头,帧协议兼容匿名四轴调试上位机。

增加捕获帧调试界面,方便调试。

波形绘图最多可显示20条曲线。曲线连接方式,颜色、散点形状可任意设置。可隐藏,可加粗显示。

曲线连接方式支持:点、线连接、左台阶、右台阶、居中台阶、纵值绘图。

波形散点形状支持:x形、+形、空心圆、实心圆、矩形、菱形、星形、正三角、倒三角、x框、+框、x圆、+圆、和平。

动态绘图支持: X轴自动跟随、Y轴范围自适应。

图页显示范围可在右下角手动输入调整。

支持滚轮Y轴缩放、左键拖拽、单击曲线加粗显示,不支持拖拽缩放。

未完善功能:

(对体验影响不大,更新要等到猴年马月了)

曲线值显示。跟随鼠标显示,波形名称显示。

QSetting记录用户设置。

波形名称可点击修改。

保存数据为txt/excel。

GitHub源码仓库:源码下载

猜你喜欢

转载自blog.csdn.net/Mark_md/article/details/109995490
今日推荐