01 开源项目简介
SerialTool是用Python编写的用于串口通信开发、调试与验证的一个工具。
可以用来处理UART、RS232、RS422等串行通信协议。
项目在 GitHub 上开源,基于 GPL-3.0 协议发布。
该工具的主要作用非常明确,并不是普通的串口助手,而是可以用来检验数据格式、检测协议逻辑、维护调试设置的一个完整的工具。
02 几个核心亮点
数据验证也不再是靠人的眼睛来完成的工作
传统上使用的串口调试工具接收到的数据是一堆十六进制或者ASCII字符,需要你自己去判断这些数据是否正确。
Serial Tool 可以对数据字段进行实时校验,在配置中可以设定每一个数据字段所期望的值。
工具在接收到数据的时候会自动进行比较,不满足要求的部分会被标记出来。
这对于开发自定义协议特别有用,以前要写代码才能验证的逻辑,现在在界面里配置一下就能跑。

② 序列生成器:把测试流程自动化
在调试串口通信的时候,常常要按照一定的顺序发送一串数据,并且中间要加上延时和重复次数。
Serial Tool 有一个序列发生器可以将多个数据块、延迟和重复次数组合成一个测试序列,并且可以一次运行完成。
测试流程不用每次手动敲命令,也不用写临时脚本。
这个功能在验证设备响应逻辑时特别实用,比如测试设备对不同命令的处理顺序、超时重发机制等。

③ 配置管理:调试环境不用每次重建
串口调试参数很多:波特率、数据位、停止位、校验位等,并且还有各种各样的自定义数据格式设置。
每次调试都得重新设置一次,非常费时。
Serial Tool 可以将现在的设置保存为一个文件,在下一次启动的时候自动加载。
不同项目的调试配置可以分开管理,切换项目时不用重新配置。
这个功能看起来简单,但在实际开发中能省不少重复劳动。

④ 数据类型支持:整数、HEX、ASCII、字符串都能处理
可以对各种类型的数据进行展示与传输,包括整数、十六进制、ASCII字符以及字符串等。
可以根据协议的需求来选择相应的格式,并且不需要在不同的工具间进行切换。
日志窗口也支持自定义显示格式,方便查看和对比数据。
03 怎么用
SerialTool 是用 Python 写的,它的安装方法也很简单。
在命令行执行。
python -m pip install serial_tool@ git+https://github.com/damogranlabs/serial-tool
安装好之后就可以直接运行serial_tool命令启动。
如果你习惯用 pipx 管理工具,也可以用 pipx 安装。
工具提供了图形界面,配置项都有对应的界面控件,不需要写配置文件或命令行参数。

串口设置也很简单,只要点击“配置”按钮就会出现一个通信对话框用来设置波特率、数据位、停止位等参数。

04 适合谁用
经常调试串口设备的工程师可以重点关注一下这个工具。
不管是UART、RS232还是RS422,在进行通信调试、协议验证和数据处理的时候都可以用到它。
如果自己在开发串口协议的时候,需要频繁地发送测试命令、查看返回的数据、不断验证逻辑的话,那么它就会比传统的串口助手方便得多。
如果是只连接设备发送一些指令的话,普通的串口助手就足够了。
05 写在最后
Serial Tool 将串口调试由“能收能发”提升到可以进行验证、管理和复用。
注意:
目前只支持串口通信,不涉及网络协议。
界面是图形化的,没有命令行版本。
有需要的朋友可以安装试试。
开源地址:https://github.com/damogranlabs/serial-tool