# VoltageReaderApp VoltageReaderApp 是一个基于 PyQt5 和 pyqtgraph 的电压监控应用程序。它可以通过串口读取电压数据,并实时绘制曲线。用户可以选择显示原始值或计算值,并将数据保存为 Excel 文件。 ## 功能 - 选择串口和波特率 - 开始和停止读取数据 - 自动跟随最新数据 - 显示原始值或计算值 - 保存数据为 Excel 文件 - 加载数据并显示 ## 安装 ### 先决条件 - Python 3.x - PyQt5 - pyqtgraph - pandas - openpyxl - pyserial ### 安装步骤 1. 克隆此仓库到本地: ```bash http://gitea.qutcmrt.top/Robofish/pyqt_monitor.git cd VoltageReaderApp ``` 2. 安装所需的 Python 包: ```bash pip install pyqt5 pyqtgraph pandas openpyxl pyserial ``` ## 使用 1. 运行应用程序: ```bash python src/monitor.py ``` 2. 在应用程序界面中,选择串口和波特率,然后点击“连接”按钮。 3. 点击“开始读取”按钮开始读取数据。点击“停止读取”按钮停止读取数据。 4. 使用“自动跟随”按钮开启或关闭自动跟随最新数据。 5. 使用“显示原始值”按钮切换显示原始值或计算值。 6. 点击“保存数据”按钮将数据保存为 Excel 文件。 7. 点击“加载数据”按钮加载之前保存的数据并显示。 ## 代码结构 ```plaintext 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): 加载数据并显示。