串口波形小工具-V1.0.3
串口波形小工具-V1.0.3

串口波形小工具-V1.0.3

串口波形小工具用于实时解析串口数据流里边的数据,并实时绘制曲线

最新小工具请参考:https://www.huangrongzhen.ink/?p=2269

介绍

目前通用的串口波形小工具很少,大多数此类工具使用时必须遵循特定的传输协议,不方便。为此特地设计了一款串口波形小工具,用户只需将需要绘制的点简单的打印出来,此小工具会立即捕捉到该点,并绘制出来。目前串口波形小工具已经升级到了 V1.0.3 版本,将来还将继续维护升级。

此串口小工具能实时解析串口数据流里边的数据,并实时绘制曲线,能流畅动态显示上百万个点。此小工具不仅能绘制曲线,还能对捕捉到的数据做实时幅频分析,方便后续开发。

小工具介绍

串口波形小工具界面如下所示,为了方便使用,小工具使用了单页面设计。

串口波形小工具最上边即为波形绘制区。波形绘制区的纵坐标会根据波形数据的最大最小值动态调整,用户无需关心。波形绘制区的横坐标即为波形点数,即显示区最大波形点数,可根据需要修改,可以支持动态显示上百万个点。

波形绘制区下方白色的区域即为 FFT 波形绘制区。此小工具会实时为捕捉到的信号做幅频分析,FFT 的点数和采样率由左侧行输入控件确定,FFT 结果会被归一化处理,最终绘制出来。FFT 波形绘制区的横坐标的单位为 Hz。小工具做 FFT 处理时会计算出信号频率,并同步更新到左侧“信号频率”显示。注意:FFT的波形点数一定要是2的N次幂,如果输入的参数不符合规范,那么软件将会自动调整到最近的合规点数。

点击“打开串口”后,此小工具将捕捉串口数据流里边的数据并实时更新。一旦启动绘制,波形点数、FFT 点数和采样率这几个参数将会被锁定,无法被修改。若是需要修改,请先关闭波形绘制。注意:开始绘制后小工具会清空所有显示,同时将波形点数、FFT 点数和采样率这几个参数保存到“WaveSerialPort.ini”,以便于下次启动时根据用户预设的参数运行。

此小工具支持数据保存,点击“保存波形”按键后,会将波形绘制区数据保存到“wave.csv”,如果波形点数设置为 2048 个点,那么最多保存 2048个点。

FFT 波形绘制区下方白色区域即为交互区域,用于显示用户的打印数据,和向设备发送数据。目前暂不支持 16 进制发送。

用户打开串口后,小工具会每隔 100ms 检验一次串口是否脱落。

如何输出数据

串口波形小工具能实时捕捉串口数据流中的数字,并将其更新到波形显示区。数字以 10 进制形式,可以没有开始符,但一定要有结束符(非数字),可以以逗号、回车换行、空格等非数字字符作为结束符。具体使用如下所示。

printf("123, ");                  //波形值为123,使用逗号和空格分隔
printf("123\r\n");                //波形值为123,使用回车换行分隔
printf("adc = %d\r\n", adc);      //小工具上显示ADC波形
printf("wave1 = %.1f\r\n", wave); //小工具上显示浮点波形

注意:

1、目前只支持10进制数,暂不支持16进制数据。

2、串口数据流中尽量避免使用中文字符。

3、为提高系统稳定性,尽量使用回车换行分隔数据。

错误示范

printf("123");  //绘制波形值 123
printf("456");  //绘制波形值 456

出错原因:数字字符串没有结束符,小工具会将波形值计算为”123456”,即使这两个打印函数相隔很远,也依旧会显示异常。

用户参数

本小工具支持显示用户参数,参数显示在右侧栏,至多可以显示五个不同的参数值,方便用户显示测量结果。

通过命令 “{{index,name}}” 设置参数名显示,其中index为参数序号,从上往下依次为 1~5。name 即为参数名,可以是中英文,推荐尽量使用英文,中文的话必须是 GBK/GB2312 编码格式。

通过命令 “[[index,value]]” 设置参数值显示,同样的index为参数序号,从上往下依次为 1~5。value 即为参数值,是一个字符串,可以是数字或其它的。

printf("{{1,spo2}}\r\n");     //设置参数名显示
printf("[[1,%d]]\r\n", spo2); //设置测量结果显示

注意:参数名会被小工具保存到电脑中,以便于下次启动时自动显示用户预设的参数名,所以设置参数名命令不适合频繁调用。

还需要做的更新

目前此小工具的功能还比较单一,将来还将支持显示多条曲线、可任意伸缩、发送多条指令、可自由切换文本和 16 进制发送等。

版本记录

V1.0.0:初代版本

V1.0.1:添加了FFT显示和自动调节显示区域

V1.0.2:更新了清空按键不会清空对话框的bug,解决了某些时候发送按键按下会关闭串口的bug,添加了波特率范围。

V1.0.3:

a. 删除了波形测量结果

b.删除了“开始绘制”按键

c.增加了用户参数显示功能

d.增加了波特率参数保存功能

工具

源码