# 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
    ```

## 主界面

![主界面](doc\主界面.png)

## 使用

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 文件加载数据
```
