# LTM_Monitor
**Repository Path**: hewusheng/LTM_Monitor
## Basic Information
- **Project Name**: LTM_Monitor
- **Description**: LTM_Monitor 是一款基于Qt6开发的上位机监控调试软件,支持串口通讯、动态曲线显示、在线PID调参、CSV格式数据导出等功能。
- **Primary Language**: Unknown
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2026-04-24
- **Last Updated**: 2026-04-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# LTM_Monitor – 基于Qt6的上位机监控调试软件
基于 **Qt 6** 开发的上位机监控调试软件,支持串口通讯、动态曲线显示、在线PID调参、CSV数据导出等功能。
## 安装包
安装包 **LTM_Monitor_Installer.exe** 在 **bin** 文件夹下,双击即可启动安装。
## 软件界面
主界面 - 串口通讯、实时曲线显示、数据记录
> 以上截图来自实际运行环境,界面可能因版本更新略有差异。
---
## 通讯协议移植
本项目定义了一套轻量级的**通讯协议**,用于上位机与下位机(如单片机)之间的数据交换。协议设计简洁,易于移植到各种嵌入式平台。
协议源码位于 **`example/protocol/`** 目录,采用纯 C 语言实现,无额外依赖,可直接集成到 ARM Cortex-M 等平台。
同时,我们在 **`example/stm32f103/`** 目录下提供了一个完整的 **STM32F103 开发板移植示例**,包含:
- 串口收发驱动适配
- 协议数据帧的封装与解析
- 与上位机联调的演示代码
如果你需要将通讯协议移植到其他单片机(如 GD32、ESP32 等),可参考该示例进行适配。具体使用方法请直接阅读示例工程中的源码注释。
---
## 系统要求
- **操作系统**:Windows 10 / 11(64位)
- **编译器**:MinGW-w64(与 Qt 6 配套版本)
- **Qt 版本**:6.2 或更高(推荐 6.5.11)
- **CMake**:3.19 或更高
- **Python**:3.6 或更高(用于构建脚本)
---
## 依赖安装(详细步骤)
以下步骤确保你的环境能够**直接编译成功**。
### 1. 安装 Qt 6(MinGW 版本)
1. 从 [Qt 官网](https://www.qt.io/download) 下载在线安装器(或使用离线包)。
2. 安装时选择 **Qt 6.5.11**(或更高),并勾选以下组件:
- `Qt 6.5.11` → `MinGW 64-bit`(包含 Qt Core, Widgets, Charts, SerialPort)
- `Qt 6.5.11` → `Qt Charts`
- `Qt 6.5.11` → `Qt SerialPort`
- `Developer and Designer Tools` → `MinGW 11.2.0`(或匹配的 MinGW 工具链)
3. 记录 Qt 安装路径(例如 `D:\Qt\6.5.11\mingw_64`),后续配置需要。
### 2. 安装 CMake
1. 访问 [CMake 官网](https://cmake.org/download/) 下载 Windows 安装包(`.msi` 或 `.exe`)。
2. 安装时勾选 **“Add CMake to the system PATH for all users”**。
### 3. 安装 Python 3
1. 从 [Python 官网](https://www.python.org/downloads/) 下载 Python 3.6 或更高版本安装包。
2. 安装时**务必勾选** “Add Python to PATH”。
### 4. 检查 MinGW 编译器路径
Qt 安装的 MinGW 位于 `D:\Qt\Tools\mingw1120_64\bin`(版本号可能不同)。
确保该目录已添加至系统环境变量 `PATH` 中(通常 Qt 安装器会自动添加,可手动检查)。
### 5. 验证环境
打开命令提示符,执行以下命令,确认各工具可用:
```bash
cmake --version # 应显示 3.19 或更高
python --version # 应显示 3.6 或更高
gcc --version # 应显示 Qt 自带的 MinGW gcc 版本
```
如果 `gcc` 未找到,请检查 MinGW 路径是否在 PATH 中。
---
## 快速构建与安装
本项目提供了 Python 脚本 `script.py`,可以一键完成配置、编译、运行或安装。
### 1. 项目目录结构(关键部分)
```
LTM_Monitor/
├── example/ # 示例工程(通讯协议移植参考)
│ ├── protocol/ # 通讯协议实现(C语言)
│ └── stm32f103/ # STM32F103开发板移植示例
├── src/
│ ├── modules/ # 动态库模块
│ │ ├── chart/ # 图表动态库(提供实时曲线功能)
│ │ ├── serial/ # 串口通讯动态库
│ │ └── record/ # 数据记录动态库(数据库与日志系统)
│ ├── ui_widgets/
│ │ ├── chart_dialog/ # 图表设置对话框
│ │ └── main_window/ # 主窗口
│ └── application/
│ └── main.cpp # 主程序入口
├── CMakeLists.txt
├── script.py # 构建辅助脚本
└── README.md
```
### 2. 配置脚本(可选)
打开 `script.py`,可根据实际情况修改以下变量(通常无需改动):
```python
PROJECT_NAME = "LTM_Monitor" # 可执行文件名
QT_PREFIX_PATH = "D:/Qt/6.5.11/mingw_64" # Qt 安装路径
INSTALL_DIR = "D:/LTM_Project" # 安装目录
BUILD_DIR = "build" # 临时构建目录
```
### 3. 使用脚本
在项目根目录打开命令提示符,执行:
| 命令 | 说明 |
|------|------|
| `python script.py -b` | 仅构建 Debug 版本(不运行) |
| `python script.py -D` | 构建并运行 Debug 版本(带控制台,方便调试) |
| `python script.py -R` | 构建并运行 Release 版本(无控制台) |
| `python script.py -i` | 构建并安装到 `INSTALL_DIR`(Release 版本,自动复制所有依赖) |
| `python script.py -c` | 清理构建目录 |
> **注意**:首次运行会自动进行 CMake 配置和编译,请确保网络通畅(如果 CMake 需要下载依赖)。
### 4. 手动构建(不使用 Python)
如果不希望使用 Python 脚本,可以手动执行 CMake 命令:
```bash
# 进入项目根目录
cd LTM_Monitor
# 创建并进入构建目录
mkdir build && cd build
# 配置(Release 版本)
cmake -G "MinGW Makefiles" -DCMAKE_PREFIX_PATH=D:/Qt/6.5.11/mingw_64 -DCMAKE_BUILD_TYPE=Release ..
# 编译
cmake --build .
# 安装到指定目录(可选)
cmake --install . --prefix D:/LTM_Project
```
安装后,需要手动将 Qt 运行时 DLL 复制到安装目录的 `bin` 下(可参考 `script.py` 中的 `run_install` 函数)。
---
## 安装后的运行
安装完成后,在 `INSTALL_DIR/bin` 目录下会生成:
- `LTM_Monitor.exe` 主程序
- 所有依赖的动态库(`libchart.dll`, `libserial.dll`, `librecord.dll` 等)
- Qt 运行库(`Qt6Core.dll`, `Qt6Charts.dll`, `Qt6SerialPort.dll` 等)
- 平台插件(`platforms/qwindows.dll`)
直接双击 `LTM_Monitor.exe` 即可运行,无需额外配置环境变量。
---
## 常见问题
### 1. 编译时报“找不到 Qt6Charts”或“无法打开 Qt6::Charts”
- 检查 Qt 安装时是否勾选了 **Qt Charts** 模块。
- 确认 `CMAKE_PREFIX_PATH` 正确指向 Qt 的 MinGW 安装目录(例如 `D:/Qt/6.5.11/mingw_64`)。
### 2. 编译时报“找不到 Qt6SerialPort”
- 检查 Qt 安装时是否勾选了 **Qt SerialPort** 模块。
### 3. 运行时提示“缺少 Qt6OpenGLWidgets.dll”或“缺少串口驱动”
- 使用 `python script.py -i` 安装时,脚本已自动复制所需 Qt DLL。如果手动安装,请自行将这些文件放入 `bin` 目录。
### 4. 控制台窗口一闪而过
- 如果运行 `LTM_Monitor.exe` 时出现控制台窗口,说明当前是 Debug 版本或未设置 `WIN32` 子系统。请使用 `script.py -R` 构建 Release 版本。
### 5. 如何更换程序图标?
- 在 `src/application/` 目录下放置 `app.ico`,并在该目录的 `CMakeLists.txt` 中添加资源文件(参考 Qt 文档)。
### 6. Python 脚本执行报错“cmake 不是内部或外部命令”
- 请确保 CMake 已安装并添加到系统 PATH 中,重启命令提示符。
---
## 项目结构说明
| 目录 | 内容 |
|------|------|
| `example/protocol` | 通讯协议 C 源码(平台无关) |
| `example/stm32f103` | STM32F103 移植示例工程 |
| `src/modules/chart` | 图表动态库(提供实时曲线功能) |
| `src/modules/serial` | 串口通讯动态库(封装 QtSerialPort)|
| `src/modules/record` | 数据记录动态库(数据库、日志系统)|
| `src/ui_widgets/chart_dialog` | 图表设置对话框 |
| `src/ui_widgets/main_window` | 主窗口 |
| `src/application/main.cpp` | 主程序入口,链接上述模块 |
| `script.py` | 一键构建、运行、安装的辅助脚本 |
---
## 许可证
本项目基于 **GNU General Public License (GPL)** 开源,详细条款请见项目中的 `LICENSE` 文件。
```