跳到主要内容

系统架构

适合谁需要理解 RTKHUB、STRHUB、EPHUB、SCRHUB 和离线工具关系的读者。
你会看到数据源如何进入 RTKHUB,以及 Web、API、结果文件和日志如何输出。
阅读建议先看组件关系图,再根据部署形态选择单机、内网或工具链部署。
备注

RTKHUB 的目标不是替代所有 GNSS 工具,而是把实时解算、状态监控、流转发、星历汇集、脚本任务和 Web 管理放在一个轻量入口里。对于大型业务系统,建议通过 REST API 集成,而不是直接读取内部数据库。

RTKHUB 是围绕 RTKLIB demo5 构建的多网络 RTK 监控与运维平台。

组件关系​

RTKHUB 工具链架构图

核心模块​

信息

各模块职责明确、边界清晰:RTKHUB 主程序负责解算与 Web 服务,STRHUB 负责数据流转发,EPHUB 负责星历汇集与分发,SCRHUB 负责脚本任务调度,RNX2RTKP/RNX2RTCM 负责离线处理与测试回放。

模块职责常见使用者
RTKHUB 主程序加载测网配置、启动基线解算、提供 Web/API/日志运维人员、开发集成
Web 控制台展示实时状态、图表、地图、用户管理、Web 终端运维人员
SQLite保存用户、权限、任务、系统设置和审计信息系统内部
CivetWeb内嵌 HTTP 服务,默认端口 5426浏览器、API 客户端
yyjson高性能 JSON 序列化/反序列化库,用于 API 响应构建和配置解析系统内部
STRHUB接收、复制、转发 GNSS 数据流数据流管理员
EPHUB汇集广播星历、去重、缓存、周期重播与多路分发数据流管理员、RTK 解算
SCRHUB管理脚本任务、定时执行巡检或备份运维人员
RNX2RTKP批量后处理 RINEX 数据数据处理人员
RNX2RTCM将 RINEX 转为 RTCM 数据流测试与回放场景

数据流​

  1. 数据源通过 tcpcli、ntripcli、serial 或 file 接入。
  2. RTKHUB 按 rtkhub.list 把基线归入不同测网。
  3. 每条基线加载对应 RTKLIB 配置文件并独立解算。
  4. EPHUB 从多个 NTRIP/RTCM3 输入流抽取广播星历,经过去重、缓存和质量控制后,通过 TCP Server 或 NTRIP Server 输出,为 RTK 解算提供稳定星历数据。
  5. 解算状态通过内存状态、日志、结果文件、Web 页面和 API 暴露。
  6. 运维人员可以通过 Web 控制台或 API 启停基线、查看图表、拉取日志。

部署形态​

提示

根据规模选择部署方式:小规模验证用单机试运行,真实测网用内网生产部署,需要数据分发或批处理时用工具链部署。

单机试运行​

适合验证配置、演示功能和小规模测网:

rtkhub.exe
conf/
result/
logs/

内网生产部署​

推荐用于真实测网:

  • RTKHUB 运行在内网 Windows Server。
  • Web 端口只对运维网段开放。
  • 数据源与结果目录放在稳定磁盘。
  • 定期备份 conf/、SQLite 数据库、logs/ 和 result/。
  • 如需公网访问,通过反向代理或 VPN 暴露,不建议直接开放 5426。

工具链部署​

当需要数据分发或批处理时,可以把工具拆分到不同目录或机器:

  • STRHUB 负责接入外部 NTRIP/TCP/串口源并转发。
  • EPHUB 负责从多路输入汇集广播星历,经去重和质量控制后分发给 RTKHUB 或远程 caster。
  • RTKHUB 只消费稳定后的数据流。
  • SCRHUB 定时执行巡检、归档、压缩、结果上传。
  • RNX2RTKP / RNX2RTCM 用于离线处理和测试回放。

目录建议​

D:\rtkhub\
├─ rtkhub.exe
├─ conf\
│ ├─ rtkhub.list
│ └─ XANet\
├─ data\
├─ result\
├─ logs\
├─ backup\
├─ ephub\
└─ tools\
├─ strhub\
├─ rnx2rtkp\
└─ rnx2rtcm\

扩展边界​

RTKHUB 适合做测网运行监控和轻量控制。对于大型业务系统,建议通过 REST API 集成,而不是直接读取内部数据库。这样升级 RTKHUB 时,外部系统只需要保持 API 协议稳定。

完整项目结构​

rtkhub/
├── archive/ 历史版本归档
├── conf/ 网络与通道配置文件
├── database/ 运行时 SQLite 数据库(用户库、审计库、SCRHUB 任务库自动生成)
├── doc/ 用户手册(STRHUB、RNX2RTCM)
├── logs/ RTKLIB 调试与运行日志(按配置生成)
├── public/ Web 前端静态资源
│ ├── css/ 页面样式、设计令牌与通用 UI 原语
│ │ ├── tokens.css 全局颜色、阴影、圆角、间距令牌
│ │ ├── ui.css 通用按钮、卡片、徽标、空状态、工具栏和表单控件
│ │ └── ephub.css EPHUB 管理页面样式
│ ├── js/ 前端模块(app、monitor、admin、scrhub、auth 等)
│ │ └── ephub.js EPHUB 前端逻辑与状态轮询
│ ├── vendor/ 本地依赖(ECharts、Leaflet)
│ ├── ephub.html EPHUB 独立管理入口
│ └── monitor.html STRHUB 独立管理入口
├── script/ SCRHUB 可扫描和执行的脚本目录
├── src/
│ ├── 3rdparty/ CivetWeb、SQLite、SHA-256、yyjson 等第三方 C 源码
│ ├── main/ RTKHUB 控制台与 RTK 管理逻辑
│ ├── rtklib/ RTKLIB 核心源码
│ ├── scrhub/ SCRHUB 任务管理、脚本扫描、执行日志 API
│ ├── terminal/ 虚拟终端支持
│ └── web_server/ 嵌入式 HTTP 服务器与 Web API 桥接
├── util/ 实用工具(diffeph、dumpssr、geniono 等)
│ └── ephub/ EPHUB 后端源码
├── tools/ 开发与验证工具
│ ├── check-css-tokens.js CSS typography 令牌检查脚本
│ └── verify_ephub_fixes.ps1 EPHUB 安全修复验证脚本
├── ephub/ EPHUB Visual Studio 工程
├── rnx2rtcm/ RNX2RTCM Visual Studio 工程
├── rnx2rtkp/ RNX2RTKP Visual Studio 工程
├── strhub/ STRHUB Visual Studio 工程
├── CMakeLists.txt CMake 构建配置
├── rtkhub.sln Visual Studio 解决方案
└── rtkhub.vcxproj Visual Studio 项目文件

技术栈​

后端技术​

技术说明
核心语言C/C++(C99 标准)
GNSS 引擎RTKLIB demo5(RTK 定位核心)
HTTP 服务器CivetWeb(嵌入式 Web 服务器)
数据库SQLite 3(用户认证与会话管理)
JSON 库yyjson(高性能 JSON 读写)
线程安全Windows CRITICAL_SECTION / Linux pthread_mutex

前端技术​

技术说明
核心语言原生 JavaScript(ES6+,零框架依赖)
HTTP 请求Fetch API(无 jQuery)
图表库ECharts 5.x(实时曲线、卫星图)
地图库Leaflet 1.x(网络分布可视化)
图表库(STRHUB)ECharts 5.x(流转发吞吐量图表)
样式原生 CSS3,基于 tokens.css 与 ui.css 统一按钮、卡片、徽标、空状态、工具栏和表单控件

构建工具​

工具说明
Visual Studio 2022主要构建方式(Windows)
CMake 3.15+跨平台构建支持
Git版本控制

支持的 GNSS 系统​

系统标识国家/地区
GPSG美国
GLONASSR俄罗斯
GalileoE欧盟
BDS/北斗C中国
QZSSJ日本
NavIC/IRNSSI印度

支持的数据格式​

格式说明
RINEX2.x / 3.x(观测值、导航电文)
RTCM2.x / 3.x(实时数据流)
NTRIP1.0 / 2.0(网络差分数据)
精密产品SP3、CLK、ERP、DCB、TEC、ION