Ntripcaster 是测绘领域GNSS相关的服务器软件,服务于差分GNSS测量、RTK测量等高精度测量测绘。

这里开源一个基于 libev,用 C 实现的简单 ntripcaster 服务器。

Ntripcaster 是基于 Ntrip协议 的 broker 程序,给 Ntrip Client 传输所请求的 GNSS 差分数据,接受来自 Ntrip Server 产生的差分数据来源。网络图例如下:

1
2
3
4
|--------|          |--------|         |--------|
| Ntrip  | <------> | Ntrip  | <------ | Ntrip  |
| Client |          | Caster |         | Source |
|--------|          |--------|         |--------|

libev 是一个 C 实现的跨平台事件库,支持 IO、定时器、文件状态监控等等,特别适合用来写网络服务程序,其接口也简洁好用。

简单实现的 Ntripcaster 源码: https://github.com/lazytinker/ntripcaster

预编译的二进制可执行文件(linux/windows):https://github.com/lazytinker/ntripcaster_bin

目前支持的功能:

  1. 支持 Ntrip 1.0 协议,支持动态源列表(source tables)。
  2. 支持 linux 和 windows(MinGW 编译)。
  3. 支持用户名密码验证,支持多用户、多源单独密码管控。
  4. 至此后同用户客户端多连接。

目前不支持的功能:

  1. VRS虚拟站。
  2. 根据客户端GGA提供最近站差分数据。
  3. 动态用户名密码增减支持。

除了 VRS,其他功能添加也比较简单,只不过暂时没有什么动力去完善,编写这个程序主要还是为了 libev 的练手。有什么问题,可以与我联系

(完)