RTK Manager 是一个基于 Flutter 开发的跨平台应用程序,主要用于 RTK (Real-Time Kinematic) 配置管理和串口调试。
- 多标签页支持:支持同时打开多个串口进行调试,主串口常驻,可动态添加/关闭新的串口标签页。
- 全局保存:一键开启或停止所有连接串口的数据保存到本地文件中。
- 串口配置:支持常见的波特率设置 (9600 - 921600),自适应流控。
- 数据收发与解析:
- 实时显示串口接收数据(支持 ASCII 原生显示与 HEX 显示模式)。
- 支持自定义指令发送。
- 内置 IMU 数据解析:支持特定二进制协议下的 IMU/GNSS 数据解析(温度、加速度、角速度、欧拉角、四元数等),并进行实时自适应换行的高效显示。
- 底层性能优化:动态合并高频串口数据并由独立解析器处理,配合原生 Flutter Widget,降低高频 UI 刷新造成的卡顿。
- NTRIP 客户端:内置标准 NTRIP 协议支持,可连接千寻、六分等 CORS 账号获取差分数据。
- 智能配置:
- 支持配置 NTRIP Caster 的 IP、端口、用户名和密码。
- 一键获取挂载点:自动拉取源节点列表并支持下拉选择。
- 断点续传:支持断线、弱网环境下的自动重连机制。
- 数据路由:
- 多路分发:支持将接收到的 RTCM 差分数据同时转发到多个串口。
- 数据记录:支持将原始 RTCM 数据流实时保存到本地文件,便于后续回放分析。
- 状态监控:实时日志记录连接状态、鉴权结果及数据吞吐。
- 地图集成:集成 高德地图 瓦片,支持缩放、平移操作。
- 实时轨迹:
- 解析主串口
$PPPSOL格式的高精度定位结果。 - 坐标转换:内置 WGS84 到 GCJ-02 (国测局坐标) 转换算法,解决地图偏移问题。
- 状态着色:根据定位状态绘制不同颜色的轨迹点(粉色 SPP / 蓝色 PPP / 红色 预测)。
- 解析主串口
- 悬浮仪表盘:
- 实时显示 UTC 时间、定位状态。
- 显示 3D 速度、3D 定位精度、3D 速度精度。
- 实时监视 DOP 值 (DOP1/DOP2/DOP3)。
- 跟随模式:支持自动锁定最新定位点,确保视角始终跟随移动目标。
- 自定义窗口:采用轻量化、现代化的自定义窗口标题栏(BitsDojo Window),带有逼真的 macOS 风格红黄绿操作按钮。
- 响应式布局:侧边栏抽屉式导航,适配低分辨率屏幕(支持 800x480 及 400x300 小屏模式)。
- Flutter SDK: ^3.8.1
- Dart SDK: >=3.3.0 <4.0.0
本项目使用了以下主要开源库:
flutter_libserialport: 跨平台串口通信flutter_map&latlong2: 地图渲染与地理计算window_manager: 桌面端窗口环境适配与定制(全面兼容 Linux 等)file_picker: 系统文件交互path_provider: 本地路径管理
- 环境准备:确保本地已安装 Flutter 开发环境及 C++ 编译工具链(Windows 下需安装 Visual Studio)。
- 获取代码:
git clone https://github.com/YourRepo/rtkmanager.git
- 安装依赖:
flutter pub get
- 运行项目(桌面端):
flutter run -d windows # 或 linux / macos - 编译与部署(树莓派 flutter-pi 环境):
确保已全局激活
flutterpi_tool:在项目根目录进行编译(以 64 位 Raspberry Pi 3B+ 为例):flutter pub global activate flutterpi_tool
编译完成后,将生成的flutterpi_tool build --arch=arm64 --cpu=pi3 --release
build/flutter-pi/pi3-64文件夹复制到树莓派中,在树莓派终端使用以下命令运行:flutter-pi /home/pi/rtkmanager_app/flutter-pi/pi3-64
- Flutter 版本兼容性:截至 2026/4/13,
flutterpi_tool目前仅支持 Flutter 3.38 版本,尚未支持 3.41 版本,开发或编译时请注意使用兼容的 SDK 版本。 - Linux 环境依赖:在 Linux(包含树莓派
flutter-pi)环境下运行前,必须先安装系统底层的串口驱动库,否则运行会崩溃或提示failed to load dynamic library libserialport.so。请运行以下命令安装:sudo apt-get update sudo apt-get install libserialport0 libserialport-dev
- 串口权限:在 Linux 下由于硬件权限限制,普通用户无法直接读取串口。请将当前用户加入
dialout组以获取永久读写权限(执行sudo usermod -a -G dialout $USER然后重启系统生效)。 - 地图加载:地图瓦片加载依赖网络连接,请确保设备已连接互联网。
- SupremeLyre
- 1.0.0+1