# GPSTools **Repository Path**: Mikelucis/gpstools ## Basic Information - **Project Name**: GPSTools - **Description**: NMEA-0183协议解析 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-20 - **Last Updated**: 2025-09-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GPS工具 - NMEA-0183解析器 一个基于Qt6的GPS数据解析应用程序,支持从串口接收和解析NMEA-0183格式的GPS数据。 ## 功能特性 ### 🛰️ GPS数据解析 - **NMEA-0183协议支持**: 解析GGA、RMC、GSA等常见NMEA语句 - **实时数据显示**: 显示纬度、经度、海拔、速度、航向等GPS信息 - **卫星信息**: 显示可见卫星数量和定位质量 - **时间戳**: 显示GPS时间信息 - **数据验证**: 自动验证NMEA校验和,确保数据完整性 ### 📡 串口通信 - **自动串口检测**: 自动扫描并列出可用串口设备 - **多波特率支持**: 支持9600、19200、38400、57600、115200等常用波特率 - **实时连接状态**: 显示串口连接状态和错误信息 - **数据统计**: 统计接收到的NMEA消息数量 ### 🎨 用户界面 - **现代化UI**: 基于Qt Quick的现代化用户界面 - **实时状态指示**: 可视化GPS定位状态和连接状态 - **响应式布局**: 自适应窗口大小的界面布局 - **状态栏**: 显示当前状态和连接信息 ## 系统要求 - Windows 10/11 - Qt 6.8.1 或更高版本 - 支持NMEA-0183协议的GPS设备 - 可用的串口连接 ## 编译和运行 ### 使用Qt Creator 1. 打开Qt Creator 2. 打开项目文件 `CMakeLists.txt` 3. 配置构建套件(推荐使用Qt 6.8.1 LLVM MinGW 64-bit) 4. 点击"构建"按钮编译项目 5. 点击"运行"按钮启动应用程序 ### 使用命令行 ```bash # 进入项目目录 cd GPSTools # 使用已配置的构建目录 cd build/build-GPSTools-Desktop_Qt_6_8_1_llvm_mingw_64_bit-Debug # 编译项目 ninja # 运行应用程序 ./appGPSTools.exe ``` ## 使用说明 ### 1. 连接GPS设备 1. 将GPS设备通过串口连接到计算机 2. 启动应用程序 3. 在"串口连接"区域选择正确的串口 4. 选择合适的波特率(通常为9600或4800) 5. 点击"连接"按钮 ### 2. 查看GPS数据 连接成功后,应用程序将自动接收和解析NMEA数据: - **状态指示器**: 绿色表示GPS定位有效,红色表示信号无效 - **坐标信息**: 显示当前纬度和经度(十进制度数格式) - **海拔高度**: 显示海拔高度(米) - **运动信息**: 显示速度(公里/小时和节)和航向角度 - **卫星信息**: 显示可见卫星数量和定位质量 - **时间信息**: 显示GPS时间戳 - **统计信息**: 显示接收到的NMEA消息数量 ### 3. 状态监控 - **状态栏**: 底部状态栏显示当前操作状态和连接信息 - **错误处理**: 自动检测和报告串口错误、解析错误等问题 - **连接指示**: 实时显示串口连接状态 ## 支持的NMEA语句 | 语句类型 | 描述 | 支持的字段 | |---------|------|-----------| | GGA | 全球定位系统定位数据 | 时间、坐标、定位质量、卫星数量、海拔 | | RMC | 推荐最小航行信息 | 时间、日期、坐标、速度、航向、状态 | | GSA | GPS精度因子和有效卫星 | 定位模式、定位类型 | ## 项目结构 ``` GPSTools/ ├── CMakeLists.txt # CMake构建配置 ├── main.cpp # 应用程序入口 ├── Main.qml # 主界面QML文件 ├── nmeaparser.h/.cpp # NMEA解析器类 ├── serialportmanager.h/.cpp # 串口管理器类 ├── gpscontroller.h/.cpp # GPS控制器类(QML桥梁) └── README.md # 项目说明文档 ``` ## 技术特点 ### 架构设计 - **模块化设计**: 分离串口通信、数据解析和用户界面 - **信号槽机制**: 使用Qt信号槽实现组件间通信 - **QML集成**: 通过Q_PROPERTY和Q_INVOKABLE实现C++与QML交互 ### 数据处理 - **缓冲区管理**: 智能处理串口数据缓冲和行分割 - **错误处理**: 完善的错误检测和恢复机制 - **数据验证**: NMEA校验和验证确保数据完整性 ### 用户体验 - **实时更新**: 数据变化时自动更新界面显示 - **状态反馈**: 清晰的状态指示和错误提示 - **操作简便**: 简单直观的操作流程 ## 故障排除 ### 常见问题 1. **无法找到串口设备** - 检查GPS设备是否正确连接 - 确认设备驱动程序已安装 - 点击"刷新"按钮更新串口列表 2. **连接失败** - 检查串口是否被其他程序占用 - 确认波特率设置正确 - 检查串口权限 3. **无GPS数据** - 确认GPS设备已获得卫星信号 - 检查NMEA数据输出是否启用 - 验证波特率和数据格式设置 4. **数据解析错误** - 检查NMEA数据格式是否标准 - 确认校验和计算正确 - 查看错误日志获取详细信息 ## 开发信息 - **开发语言**: C++ / QML - **框架版本**: Qt 6.8.1 - **构建系统**: CMake + Ninja - **编译器**: LLVM MinGW 64-bit - **协议支持**: NMEA-0183 ## 许可证 本项目采用开源许可证,详情请参考项目许可证文件。 --- **注意**: 使用本应用程序时,请确保GPS设备配置正确,并且串口连接稳定。如遇到问题,请检查设备连接和配置设置。