# Real Time Plot **Repository Path**: isletspace/Real-Time-Plot ## Basic Information - **Project Name**: Real Time Plot - **Description**: 基于 PyQt 的串口数据的实时曲线绘制 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-10-15 - **Last Updated**: 2023-08-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目说明 一个用于读取串口数据并可视化显示其实时曲线的程序。 # 注意事项 1. 需要上下位机通信数据和图形刷新频率保持一致。 2. 需要下位机以 .csv 格式输出日志(且以 `,` 作为数据分隔符),否则本程序无法使用。 3. 目前已知的错误是,在 Windows 下使用时会出现明显的串口通信延迟和卡顿现象,暂未解决。 # 文件结构 ```shell ├── data_process.py 数据处理 ├── log.py 日志接口 ├── main.py 主程序 ├── parse_definition.py 参数传递,所有文件共享 `args` └── serial_port.py 串口通信 ``` # 库依赖 本项目的库依赖如下,可以通过 `pip install -r requirements.txt` 来安装依赖库。 | Library | Version | |-----------|---------| | Python | 3.9.12 | | PySide6 | 6.4.0 | | pyqtgraph | 0.13.1 | | pyserial | 3.5 | | numpy | 1.23.1 | | pandas | 1.4.3 | # 串口号 不同平台下的串口号会存在差异,请以实际串口号传入执行参数,下面以 FT232 串口转接器为例: | Platform | Example | |----------|---------| | Windows | `COM13` | | Linux | `ttyUSB0` | | Mac | `tty.usbserial-AB0MAJMU` 或 `cu.***`| 例如,在 Windows 下: ```Powershell python source/main.py --port="COM14" :: 或者使用如下语句,可以修改x轴长度(y轴高度是自动变化的)与数据更新频率 python .\source\main.py --port="COM5" --update_freq=100 --x_axis_length=1000 ``` 在 linux 下: ```shell python source/main.py --port="/dev/ttyUSB0" ``` **注意**:在linux平台下使用串口前,需要提前为串口赋值: ```shell sudo chmod 666 --port="/dev/ttyUSB0" ``` # 执行方法 库安装符合条件时,直接执行 `main.py` 文件即可,可以不填写任何参数(内置默认参数,除了 `port` ),常见如下: ```shell python source/main.py --port="/dev/ttyUSB0" --log_name="202210172021.log" --log_path="log/" ``` # 执行参数 - `--log_name` :日志文件名及文件后缀。如 `20221017.log`,未填写时自动以微秒级时间戳命名。 - `--log_path` :日志存放路径,可以接受相对路径和绝对路径(请注意斜杠的添加)。如 `logfile/`,未填写时自动以 `log/` 作为日志存放路径。 - `--port` :端口号。一般需要检查一下串口通信外设端口号再行填入使用,默认不填将可能导致错误。 - `--boudrate` : 波特率。需要硬件上支持波特率修改,默认情况下为 `115200` 。 - `--x_axis_length` :图形化界面的x轴长度。 - `--update_freq` :图形化界面更新频率。 - `--column` :读取数据列。默认为 `2`(从 `0` 开始计数)。 - `--row`:图形数据起始行数,默认不填(尚未开发完成)。 - `multi_plot_en`:(开发中)多图绘制使能。 - `multi_curve_en`:(开发中)多线绘制使能。 - `--delimiter`:(`.csv`格式)分隔符,默认为 `,` ,可以修改为 `\t`。 - `--sum_en`:数值实时求和使能。 下方为 Mac 系统下的运行命令示意: ```shell python source/main.py --port="/dev/tty.usbserial-AB0MAJMU" --update_freq=100 --x_axis_length=300 --column=10 --sum_en ```