Skip to content

Repository files navigation

RTK Manager

RTK Manager 是一个基于 Flutter 开发的跨平台应用程序,主要用于 RTK (Real-Time Kinematic) 配置管理和串口调试。

功能特性

1. 串口调试助手

  • 多标签页支持:支持同时打开多个串口进行调试,主串口常驻,可动态添加/关闭新的串口标签页。
  • 全局保存:一键开启或停止所有连接串口的数据保存到本地文件中。
  • 串口配置:支持常见的波特率设置 (9600 - 921600),自适应流控。
  • 数据收发与解析
    • 实时显示串口接收数据(支持 ASCII 原生显示与 HEX 显示模式)。
    • 支持自定义指令发送。
    • 内置 IMU 数据解析:支持特定二进制协议下的 IMU/GNSS 数据解析(温度、加速度、角速度、欧拉角、四元数等),并进行实时自适应换行的高效显示。
    • 底层性能优化:动态合并高频串口数据并由独立解析器处理,配合原生 Flutter Widget,降低高频 UI 刷新造成的卡顿。

2. RTK 配置 (NTRIP Client)

  • NTRIP 客户端:内置标准 NTRIP 协议支持,可连接千寻、六分等 CORS 账号获取差分数据。
  • 智能配置
    • 支持配置 NTRIP Caster 的 IP、端口、用户名和密码。
    • 一键获取挂载点:自动拉取源节点列表并支持下拉选择。
  • 断点续传:支持断线、弱网环境下的自动重连机制。
  • 数据路由
    • 多路分发:支持将接收到的 RTCM 差分数据同时转发到多个串口。
    • 数据记录:支持将原始 RTCM 数据流实时保存到本地文件,便于后续回放分析。
  • 状态监控:实时日志记录连接状态、鉴权结果及数据吞吐。

3. 定位结果可视化

  • 地图集成:集成 高德地图 瓦片,支持缩放、平移操作。
  • 实时轨迹
    • 解析主串口 $PPPSOL 格式的高精度定位结果。
    • 坐标转换:内置 WGS84 到 GCJ-02 (国测局坐标) 转换算法,解决地图偏移问题。
    • 状态着色:根据定位状态绘制不同颜色的轨迹点(粉色 SPP / 蓝色 PPP / 红色 预测)。
  • 悬浮仪表盘
    • 实时显示 UTC 时间、定位状态。
    • 显示 3D 速度、3D 定位精度、3D 速度精度。
    • 实时监视 DOP 值 (DOP1/DOP2/DOP3)。
  • 跟随模式:支持自动锁定最新定位点,确保视角始终跟随移动目标。

UI / 交互

  • 自定义窗口:采用轻量化、现代化的自定义窗口标题栏(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: 本地路径管理

安装与运行

  1. 环境准备:确保本地已安装 Flutter 开发环境及 C++ 编译工具链(Windows 下需安装 Visual Studio)。
  2. 获取代码
    git clone https://github.com/YourRepo/rtkmanager.git
  3. 安装依赖
    flutter pub get
  4. 运行项目(桌面端)
    flutter run -d windows  # 或 linux / macos
  5. 编译与部署(树莓派 flutter-pi 环境): 确保已全局激活 flutterpi_tool
    flutter pub global activate flutterpi_tool
    在项目根目录进行编译(以 64 位 Raspberry Pi 3B+ 为例):
    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

About

A GUI for my multi-sensor fusion positioning devices.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages