纸飞机串口工具介绍
纸飞机一款性能强劲且专业的串口/网络/HID调试助手,具有多窗口绘图、关键字高亮、数据分窗和数据过滤等众多功能,可以极大的方便嵌入式开发人员的调试过程。
本文介绍CUSTOM自定义万能文本协议。
软件下载
下载链接:https://io.comassistant.cn/
绘图教程:https://www.bilibili.com/video/BV1E3411E7vu
功能演示:https://www.bilibili.com/video/BV1df4y1k71h
CUSTOM协议介绍
协议如名,CUSTOM协议具有极强的自定义性和广泛适应性,可以对绝大部分的文本数据进行绘图,几乎可认为是万能文本协议。
您只需要充分理解以下几句话,就可以理解CUSTOM协议的工作原理,并快速上手:
- CUSTOM协议提取包含关键词的每一行数据
- CUSTOM协议从每一行数据中提取全部数字
- 您需要指定哪些数字作为X轴,哪些数字作为Y轴
所以说,对于用户只需要两个步骤:指定关键词以及指定XY轴是哪些。
在大部分常见场景,我们甚至可以忽略关键词和X轴。接下来,我带大家演示几种常见的用法
绘图演示(Demo_A)
我们先看一个简单的日志数据作为一个例子
<0.1s>adcChannel1 rawValue 11 value 11.5v
<0.2s>adcChannel1 rawValue 12 value 12.5v
<0.3s>adcChannel1 rawValue 13 value 13.5v
<0.4s>adcChannel1 rawValue 14 value 14.5v
可以看出这是一组非常规律的日志,<0.xs>是一个递增的时间戳,每次增加0.1秒,通道1的ADC模块采集到的原始数据从11增加到14,对应转换后的数据是11.5~14.5v。现在我们需要把rawValue和value的数据绘制成曲线。
现在重新回忆一下CUSTOM协议的介绍:
- CUSTOM协议提取包含关键词的一行数据:关键词的选择指导思想是能唯一的筛选出我们需要的数据,比如value,因为所有我们需要的数据行都包含由于这个单词,但这个日志比较特殊,每一行数据我们都需要,所以不需要筛选,这样可以将关键词留空,纸飞机默认提取所有的数据行。
- CUSTOM协议从每一行数据中提取全部数字:以第一行为例,全部数字包括0.1、1、11、11.5
- 您需要指定哪些数字作为X轴,哪些数字作为Y轴:结合第二步,我们只需要第三、第四列的数据,也就是11、11.5,抛弃第一、二列数据
接下来,打开绘图器,并选择CUSTOM协议
软件会有一个交互弹窗页面
点击OK后,我们便可以把这组示例数据发送给纸飞机,纸飞机在收到数据后会自动绘图
绘图演示(Demo_B)
在上一节demo的基础上,我们并多加一个ADC通道2的数据
<0.1s>adcChannel1 rawValue 11 value 11.5v
<0.2s>adcChannel2 rawValue 12 value 12.5v
<0.3s>adcChannel1 rawValue 13 value 13.5v
<0.4s>adcChannel2 rawValue 14 value 14.5v
<0.5s>adcChannel1 rawValue 15 value 15.5v
<0.6s>adcChannel2 rawValue 16 value 16.5v
<0.7s>adcChannel1 rawValue 17 value 17.5v
<0.8s>adcChannel2 rawValue 18 value 18.5v
我们想看通道1和通道2的数据,并使用demo中的时间戳作为X轴。
此时,只需要在关键词中输入Channel1|Channel2,指定X轴使用第一列的数据即可,配置如下
(备注:如果只需要看通道1的数据,关键词填入Channel1即可)
绘图结果如下
相比与前面的例子,本节额外引入了关键词、关键词的正则匹配、指定X轴3个新的概念供读者理解。
其他:
- 对于标准时间格式数据,比如20:08:00.123会被提取为3列数据20、08、00.123
- adc0channel1中的0也会被提取为1个数字
- 从前面的例子可以发现,CUSTOM协议建议只使用1个关键词,如果关键词有多个,利用正则匹配也能支持多窗口绘图但是要求不同关键词的行都具有相同的格式特征,就是在减少适用范围。