在工控这个行业,串口和TCP通信调试,算是日常工作里两样完全躲不开的事情。
能真正把调试效率给提上去的工具,还真不多见。大部分要么只认某几种固定的协议。
想加协议要自己上手写代码去扩展。
今天在 Gitee 刷到一个叫 fdport项目,看起来有点意思。
它是一款能自动解析协议的通用上位机。
一般的上位机工具,大多也就停留在简单地收个数据、发个数据的层面。
但换成fdport的话,情况就不一样了。
你可以配置一套任意的协议格式,它会自动帮你把数据解析好、自动回复指令,还能实时把曲线给你画出来。
它把协议解析这活,从写代码直接变成了填配置。
对那些经常需要跟串口、TCP设备打交道的开发者来说,这个功能能省下大把时间。
支持串口、TCP服务器、TCP客户端这三种通信方式。
你可以依据手头设备的具体类型,来挑选最合适的通信方式。
不管是串口调试,还是做TCP服务器的监听,又或者是去连接一个TCP客户端,靠这一个工具就全都能给办妥了。
协议配置是可视化的,双击一下就能新增协议。
传统上位机之所以麻烦,一般是被固定的协议给框死了,灵活性不够。
fdport直接把协议配置这部分做成了一个可视化的界面。
每一条协议,你都可以去定义它的帧头、长度、命令、数据内容和校验这些字段。
当有数据进来,软件就会按照你排好的协议顺序,一条一条地去匹配,找到对应的那一个之后,就自动切入解析流程。
举例说你手里有这么一段协议:
帧头 | 尺寸 | 命令 | 命令本末 | 校验 |
55 aa | 0x0c | 0x01 | 名称 | 数据 |
这样做的好处是你只要在界面上把这些字段填好。软件就能自己去解析收到的数据了:
55 AA 0C 01 E8 AE BE E5 A4 87 00 2D 9D以前要写上几十行代码才能跑通的解析逻辑,现在填几个参数就搞定,效率是直接翻着倍往上涨的。
新增一条协议,也是件很简单的事。
在空白行上双击一下,就能添加新协议,把参数填好之后保存就行了。
协议编辑的界面,清晰又直观。
每个字段都可以拆开单独配置。支持多种数据类型以及不同的校验方式。
自动回复功能,收到特定协议就会自动把回复发出去。
你可以在发送命令的那个区域里,把回复规则给配置好。一旦收到特定的协议,软件便会自动把对应的回复命令给发送出去。
回复命令里头的参数变量,可以自动代入那些,已经被解析出来的值。
比方说,设备那边发来一条“设置名字”的指令,你就可以把回复命令配上,让它自动带上这个名字。
这样一来。调试设备的时候,你就不需要每次都手动去敲回复命令,软件自己就帮你搞定了。
参数计算功能,支持用运算符来做自动计算。
假如你的协议里头有绑定了字符串的参数。可以在绑定的时候把运算符也加进去。
比如填上“ID+2”,那么系统就会自动把ID加上2的结果算出来。
曲线绘制功能,能让你实时观察到数据变化的趋势。
把接收参数里的图像选项给勾上,当这个参数被匹配上的时候,图形区域里就会对应生成一条曲线。
你可以用鼠标左键去拖动来放大曲线。用右键来缩小,滚动中间的滚轮还能往回翻看历史的数据记录。
碰上那种需要观察数据变化趋势的场景,像温度监控或者压力监测,这个功能就显得尤其有用。
支持加载Python脚本,让它的扩展能力变得更强。
你可以利用Python来给软件扩展功能,像去实现一套更复杂的数据处理逻辑,或者跟别的系统完成对接。
这么设计,使得软件整体的扩展性变得更强,不至于轻易就被那些固定的功能给限制死。
配置和数据都能保存下来,方便以后复用。
配置文件支持导出和导入,这样在不同项目之间做切换就很方便。数据也可以存成文件,便于事后做继续的剖析。
这些功能说起来都很基础,但对于我们实际要干的活儿来说,都相当实用。
看到这儿,想装上试试了?
下载之后,先确认一下SunnyUI.dll和SunnyUI.Common.dll 这两个文件是不是跟fdport.exe在同一个目录下。
然后就能运行了。
项目还给出了测试用的配置文件,你可以把 bin/Release/test/ 目录下那个 service.myPort 和 client.myPort 的配置给导进去,快速看一下效果。
装好之后,开启软件,选好通信方式,把协议格式配置好,再点击连接。
在发送框里敲入数据。点一下发送,解析出来的结果和自动回复就能看见了。
要是想体验协议配置的功能,就去点“协议配置->接收协议”,在空白行上双击一下就能新增协议,把参数填好之后保存就可以了。
感兴趣的朋友,可以抓紧去试一试。
开源地址:https://gitee.com/brand_zhou/fdport 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!