src | ||
README.md |
VoltageReaderApp
VoltageReaderApp 是一个基于 PyQt5 和 pyqtgraph 的电压监控应用程序。它可以通过串口读取电压数据,并实时绘制曲线。用户可以选择显示原始值或计算值,并将数据保存为 Excel 文件。
功能
- 选择串口和波特率
- 开始和停止读取数据
- 自动跟随最新数据
- 显示原始值或计算值
- 保存数据为 Excel 文件
- 加载数据并显示
安装
先决条件
- Python 3.x
- PyQt5
- pyqtgraph
- pandas
- openpyxl
- pyserial
安装步骤
-
克隆此仓库到本地:
http://gitea.qutcmrt.top/Robofish/pyqt_monitor.git cd VoltageReaderApp
-
安装所需的 Python 包:
pip install pyqt5 pyqtgraph pandas openpyxl pyserial
使用
-
运行应用程序:
python src/monitor.py
-
在应用程序界面中,选择串口和波特率,然后点击“连接”按钮。
-
点击“开始读取”按钮开始读取数据。点击“停止读取”按钮停止读取数据。
-
使用“自动跟随”按钮开启或关闭自动跟随最新数据。
-
使用“显示原始值”按钮切换显示原始值或计算值。
-
点击“保存数据”按钮将数据保存为 Excel 文件。
-
点击“加载数据”按钮加载之前保存的数据并显示。
代码结构
VoltageReaderApp
├── __init__(self) # 初始化应用程序,设置 UI 和变量
├── initUI(self) # 初始化用户界面
│ ├── setup_port_group(self, layout) # 设置串口选择部分的 UI
│ ├── setup_action_group(self, layout) # 设置操作部分的 UI
│ ├── setup_channel_group(self, layout) # 设置通道选择部分的 UI
│ └── setup_plot_widget(self, layout) # 设置绘图窗口
├── update_ports(self) # 更新串口列表
├── connect_serial(self) # 连接到选定的串口
├── start_reading(self) # 开始从串口读取数据
├── stop_reading(self) # 停止从串口读取数据
├── read_data(self) # 从串口读取数据并处理
├── update_plot(self) # 更新绘图窗口
├── toggle_curve_visibility(self, state, index) # 切换曲线的可见性
├── toggle_auto_follow(self) # 切换自动跟随功能
├── toggle_show_raw(self) # 切换显示原始值或计算值
├── save_data(self) # 保存数据到 Excel 文件
└── load_data(self) # 从 Excel 文件加载数据
代码说明
monitor.py
monitor.py 文件包含 VoltageReaderApp 类的实现。以下是主要方法的说明:
- init(self): 初始化应用程序,设置 UI 和变量。
- initUI(self): 初始化用户界面。
- setup_port_group(self, layout): 设置串口选择部分的 UI。
- setup_action_group(self, layout): 设置操作按钮部分的 UI。
- setup_channel_group(self, layout): 设置通道选择部分的 UI。
- setup_plot_widget(self, layout): 设置绘图部分的 UI。
- update_ports(self): 更新串口列表。
- connect_serial(self): 连接到选择的串口。
- start_reading(self): 开始读取数据。
- stop_reading(self): 停止读取数据。
- read_data(self): 从串口读取数据并处理。
- update_plot(self): 更新绘图。
- toggle_curve_visibility(self, state, index): 切换通道曲线的可见性。
- toggle_auto_follow(self): 切换自动跟随功能。
- toggle_show_raw(self): 切换显示原始值或计算值。
- save_data(self): 保存数据为 Excel 文件。
- load_data(self): 加载数据并显示。