一个串口/socket的数据助手,支持折线图波形绘制功能。
使用界面如下:
配置窗口如下:
如果不需要进行功能扩展,只需要使用dist
目录下的内容即可。
在启动前需要对config/config.yaml
进行配置想要绘制的折线图数目等内容。
数据保存按钮所保存的数据在/dist/data_save
下, 数据以csv
的格式保存。
个人觉得自己写上位机最大的好处就是数据协议可以定义的特别随意且简单,毕竟在上位机调试肯定比在下位机调试方便许多。
本项目的协议代码位于 protocol.py
模块内(目前只抽离了uart
的部分,socket
部分没有弄), 其中包含了帧格式以及数据解析协议的函数分别为:
app_data_processor
: 数据帧格式定义app_data_handler
: 数据处理以及绘图展示功能代码
大家可以根据自己的使用需求进行修改即可完成相关绘图或者数据显示的内容,就可以完成自己想要绘制的折线图内容了。
目前直接使用的
aioserial
的readline
函数完成数据的接收,因此下位机只要是遵循默认串口帧格式发送的数据都可以接收到。
- 测试过的一个数据帧格式
# 下位机使用的形式进行数据发送,以空格作为数据的分隔符
<data1> <data2> <data3> <data4>\r\n # 其中data可以是float也可以是int类型
暂无应用层协议,大家需要的可以自定义
例如:
规定发送帧 # 0.123
表示设定下位机中某一个参数为0.123
规定接收帧 a 1.1 2.2 3.3
表示曲线1的数据帧 b 1.1 2.2 3.3
表示曲线2的数据帧
个人依照具体的应用场景灵活定义与使用。
如需要进行二次开发才需要安装此环境
由于代码中使用到 asyncio
最好使用python3.7
及以上的python版本。
- 安装依赖
pip install -r requirements.txt