[488] | 1 | ----------------------------------------------------------------------
|
---|
| 2 | ntripserver
|
---|
| 3 | ----------------------------------------------------------------------
|
---|
| 4 |
|
---|
[8784] | 5 | (c) German Federal Agency for Cartography and Geodesy (BKG), 2002-2019
|
---|
[488] | 6 |
|
---|
| 7 |
|
---|
[1777] | 8 | Files in ntripserver.zip
|
---|
[488] | 9 | ------------------------
|
---|
| 10 | - makefile: preconfigured makefile for convenient installation
|
---|
| 11 | - ntripserver.c: c source file
|
---|
| 12 | - README: Readme file for the ntripserver program
|
---|
| 13 |
|
---|
| 14 |
|
---|
| 15 | NTRIP
|
---|
| 16 | -----
|
---|
| 17 | The ntripserver is a HTTP client based on "Networked Transport of
|
---|
| 18 | RTCM via Internet Protocol" (NTRIP). This is an application-level
|
---|
| 19 | protocol streaming Global Navigation Satellite System (GNSS) data
|
---|
[548] | 20 | over the Internet.
|
---|
| 21 | NTRIP Version 1.0 is a generic, stateless protocol based on the
|
---|
| 22 | Hypertext Transfer Protocol HTTP/1.1. The HTTP objects are
|
---|
[488] | 23 | enhanced to GNSS data streams.
|
---|
| 24 |
|
---|
[548] | 25 | The primary motivation for NTRIP Version 2.0 is to develop a fully
|
---|
| 26 | HTTP-compatible Internet protocol standard that would work with proxy
|
---|
| 27 | servers and to add an optional data transport via UDP. Hence, one
|
---|
| 28 | NTRIP Version 2.0 transport approach is still based on HTTP1.1 on top
|
---|
| 29 | of TCP. The second NTRIP Version 2.0 transport approach is based on
|
---|
| 30 | both, the Internet Standard Protocol RTSP (Real Time Streaming Protocol)
|
---|
| 31 | for stream control on top of TCP and the Internet Standard Protocol RTP
|
---|
| 32 | (Real Time Transport Protocol) for data transport on top of
|
---|
| 33 | connectionless UDP.
|
---|
| 34 |
|
---|
[488] | 35 | NTRIP is designed for disseminating differential correction data
|
---|
| 36 | (e.g in the RTCM-104 format) or other kinds of GNSS streaming data to
|
---|
| 37 | stationary or mobile users over the Internet, allowing simultaneous
|
---|
| 38 | PC, Laptop, PDA, or receiver connections to a broadcasting host. NTRIP
|
---|
| 39 | supports wireless Internet access through Mobile IP Networks like GSM,
|
---|
| 40 | GPRS, EDGE, or UMTS.
|
---|
| 41 |
|
---|
| 42 | NTRIP is implemented in three system software components:
|
---|
| 43 | NTRIP clients, NTRIP servers and NTRIP casters. The NTRIP caster is the
|
---|
| 44 | actual HTTP server program whereas NTRIP client and NTRIP server are
|
---|
| 45 | acting as HTTP clients.
|
---|
| 46 |
|
---|
| 47 |
|
---|
| 48 | ntripserver
|
---|
| 49 | -----------
|
---|
| 50 | The program ntripserver is designed to provide real-time data
|
---|
[493] | 51 | from a single NTRIP source running under a POSIX operating system.
|
---|
[488] | 52 |
|
---|
| 53 | Basically the ntripserver grabs a GNSS byte stream (Input, Source)
|
---|
| 54 | from either
|
---|
| 55 |
|
---|
| 56 | 1. a Serial port, or
|
---|
| 57 | 2. an IP server, or
|
---|
| 58 | 3. a File, or
|
---|
| 59 | 4. a SISNeT Data Server, or
|
---|
| 60 | 5. a UDP server, or
|
---|
| 61 | 6. an NTRIP Version 1.0 Caster
|
---|
| 62 |
|
---|
| 63 | and forwards that incoming stream to either
|
---|
| 64 |
|
---|
| 65 | 1. an NTRIP Version 2.0 Caster via TCP/IP (Output, Destination), or
|
---|
| 66 | 2. an NTRIP Version 2.0 Caster via RTSP/RTP (Output, Destination), or
|
---|
[1590] | 67 | 3. an NTRIP Version 2.0 Caster via plain UDP (Output, Destination), or
|
---|
| 68 | 4. an NTRIP Version 1.0 Caster.
|
---|
[488] | 69 |
|
---|
| 70 | Please note, the options to support NTRIP Version 2.0 are currently still
|
---|
| 71 | under development and should be used with care. Keep in mind that details
|
---|
| 72 | of the NTRIP Version 2.0 transport protocol are still under discussion
|
---|
| 73 | and may be changed.
|
---|
| 74 |
|
---|
| 75 |
|
---|
| 76 | Installation
|
---|
| 77 | ------------
|
---|
| 78 | To install the program run
|
---|
| 79 |
|
---|
| 80 | - gunzip ntripserver.tgz
|
---|
| 81 | - tar -xf ntripserver.tar
|
---|
| 82 | - make, or
|
---|
| 83 | - make debug (for debugging purposes).
|
---|
| 84 |
|
---|
[653] | 85 | To compile the source code on a Windows system where a mingw gcc
|
---|
| 86 | compiler is available, you may like to run the following command:
|
---|
[488] | 87 |
|
---|
[653] | 88 | - gcc -Wall -W -O3 -DWINDOWSVERSION ntripserver.c -DNDEBUG
|
---|
| 89 | -o ntripserver -lwsock32, or
|
---|
| 90 | - mingw32-make, or
|
---|
| 91 | - mingw32-make debug
|
---|
[488] | 92 |
|
---|
[8786] | 93 | The executable will show up as ntripserver on Linux
|
---|
[653] | 94 | or ntripserver.exe on a Windows system.
|
---|
| 95 |
|
---|
[488] | 96 | Usage
|
---|
| 97 | -----
|
---|
| 98 | The user may call the program with the following options:
|
---|
| 99 |
|
---|
| 100 | -h|? print this help screen
|
---|
| 101 |
|
---|
[1588] | 102 | -E <ProxyHost> Proxy server host name or address, required i.e. when
|
---|
| 103 | running the program in a proxy server protected LAN,
|
---|
| 104 | optional
|
---|
| 105 | -F <ProxyPort> Proxy server IP port, required i.e. when running
|
---|
| 106 | the program in a proxy server protected LAN, optional
|
---|
| 107 | -R <maxDelay> Reconnect mechanism with maximum delay between reconnect
|
---|
| 108 | attemts in seconds, default: no reconnect activated,
|
---|
| 109 | optional
|
---|
[488] | 110 |
|
---|
| 111 | -M <InputMode> Sets the input mode (1 = Serial Port, 2 = IP server,
|
---|
| 112 | 3 = File, 4 = SISNeT Data Server, 5 = UDP server, 6 = NTRIP Caster),
|
---|
| 113 | mandatory
|
---|
| 114 |
|
---|
[2277] | 115 | <InputMode> = 1 (Serial Port): (using 8-N-1 = data bits-parity-stop bits)
|
---|
[1588] | 116 | -i <Device> Serial input device, default: /dev/gps, mandatory if
|
---|
| 117 | <InputMode>=1
|
---|
| 118 | -b <BaudRate> Serial input baud rate, default: 19200 bps, mandatory
|
---|
| 119 | if <InputMode>=1
|
---|
| 120 | -f <InitFile> Name of initialization file to be send to input device,
|
---|
| 121 | optional
|
---|
[488] | 122 |
|
---|
| 123 | <InputMode> = 2|5 (IP port | UDP port):
|
---|
[1588] | 124 | -H <ServerHost> Input host name or address, default: 127.0.0.1,
|
---|
| 125 | mandatory if <InputMode> = 2|5
|
---|
| 126 | -P <ServerPort> Input port, default: 1025, mandatory if <InputMode>= 2|5
|
---|
| 127 | -f <ServerFile> Name of initialization file to be send to server,
|
---|
| 128 | optional
|
---|
| 129 | -x <ServerUser> User ID to access incoming stream, optional
|
---|
| 130 | -y <ServerPass> Password, to access incoming stream, optional
|
---|
| 131 | -B Bind to incoming UDP stream, optional for <InputMode> = 5
|
---|
[488] | 132 |
|
---|
| 133 | <InputMode> = 3 (File):
|
---|
[1588] | 134 | -s <File> File name to simulate stream by reading data from (log)
|
---|
| 135 | file, default is /dev/stdin, mandatory for <InputMode> = 3
|
---|
[488] | 136 |
|
---|
| 137 | <InputMode> = 4 (SISNeT Data Server):
|
---|
[1588] | 138 | -H <SisnetHost> SISNeT Data Server name or address,
|
---|
| 139 | default: 131.176.49.142, mandatory if <InputMode> = 4
|
---|
| 140 | -P <SisnetPort> SISNeT Data Server port, default: 7777, mandatory if
|
---|
| 141 | <InputMode> = 4
|
---|
| 142 | -u <SisnetUser> SISNeT Data Server user ID, mandatory if <InputMode> = 4
|
---|
| 143 | -l <SisnetPass> SISNeT Data Server password, mandatory if <InputMode> = 4
|
---|
| 144 | -V <SisnetVers> SISNeT Data Server Version number, options are 2.1, 3.0
|
---|
| 145 | or 3.1, default: 3.1, mandatory if <InputMode> = 4
|
---|
[488] | 146 |
|
---|
| 147 | <InputMode> = 6 (NTRIP Version 1.0 Caster):
|
---|
[1588] | 148 | -H <SourceHost> Source caster name or address, default: 127.0.0.1,
|
---|
| 149 | mandatory if <InputMode> = 6
|
---|
| 150 | -P <SourcePort> Source caster port, default: 2101, mandatory if
|
---|
| 151 | <InputMode> = 6
|
---|
| 152 | -D <SourceMount> Source caster mountpoint for stream input, mandatory if
|
---|
| 153 | <InputMode> = 6
|
---|
| 154 | -U <SourceUser> Source caster user Id for input stream access, mandatory
|
---|
| 155 | for protected streams if <InputMode> = 6
|
---|
| 156 | -W <SourcePass> Source caster password for input stream access, mandatory
|
---|
| 157 | for protected streams if <InputMode> = 6
|
---|
[488] | 158 |
|
---|
[1588] | 159 | -O <OutputMode> Sets output mode for communatation with destination caster
|
---|
| 160 | 1 = http: NTRIP Version 2.0 Caster in TCP/IP mode
|
---|
| 161 | 2 = rtsp: NTRIP Version 2.0 Caster in RTSP/RTP mode
|
---|
[488] | 162 | 3 = ntrip1: NTRIP Version 1.0 Caster
|
---|
[1588] | 163 | 4 = udp: NTRIP Version 2.0 Caster in Plain UDP mode
|
---|
| 164 | optional
|
---|
[488] | 165 |
|
---|
[1588] | 166 | Defaults to NTRIP1.0, but will change to 2.0 in future versions
|
---|
[488] | 167 | Note that the program automatically falls back from mode rtsp to mode http and
|
---|
| 168 | further to mode ntrip1 if necessary.
|
---|
| 169 |
|
---|
[1588] | 170 | -a <DestHost> Destination caster name or address, default: 127.0.0.1,
|
---|
| 171 | mandatory
|
---|
| 172 | -p <DestPort> Destination caster port, default: 2101, mandatory
|
---|
| 173 | -m <DestMount> Destination caster mountpoint for stream upload,
|
---|
| 174 | mandatory
|
---|
| 175 | -n <DestUser> Destination caster user ID for stream upload to
|
---|
| 176 | mountpoint, only for NTRIP Version 2.0 destination
|
---|
| 177 | casters, mandatory
|
---|
| 178 | -c <DestPass> Destination caster password for stream upload to
|
---|
| 179 | mountpoint, mandatory
|
---|
| 180 | -N <STR-record> Sourcetable STR-record
|
---|
| 181 | optional for NTRIP Version 2.0 in RTSP/RTP and TCP/IP mode
|
---|
[488] | 182 |
|
---|
| 183 |
|
---|
| 184 | Example1: Reading from serial port and forward to NTRIP Version 1.0 Caster:
|
---|
| 185 |
|
---|
| 186 | ./ntripserver -M 1 -i /dev/ttys0 -b 9600 -O 2 -a www.euref-ip.net -p 2101 -m Mount2
|
---|
| 187 | -n serverID -c serverPass
|
---|
| 188 |
|
---|
| 189 | Example2: Reading from NTRIP Version 1.0 Caster and forward to NTRIP Version 2.0
|
---|
| 190 |
|
---|
| 191 | ./ntripserver -M 6 -H www.euref-ip.net -P 2101 -D Mount1 -U clientID -W clientPass
|
---|
| 192 | -O 1 -a www.goenet-ip.fi -p 2101 -m Mount2 -n serverID -c serverPass
|
---|
| 193 |
|
---|
| 194 |
|
---|
| 195 | NTRIP Caster password and mountpoint
|
---|
| 196 | ------------------------------------
|
---|
| 197 | Feeding data streams into the NTRIP system using the ntripserver
|
---|
| 198 | program needs a password (and a user ID for NTRIP Version 2.0)
|
---|
| 199 | and one mountpoint per stream.
|
---|
| 200 | For the NTRIP Broadcasters EUREF-IP or IGS-IP this is currently
|
---|
[8785] | 201 | available from https://igs.bkg.bund.de/ntrip/registerprovider
|
---|
[488] | 202 |
|
---|
| 203 |
|
---|
| 204 | Disclaimer
|
---|
| 205 | ----------
|
---|
| 206 | Note that this example server implementation is currently an
|
---|
| 207 | experimental software. The BKG disclaims any liability nor
|
---|
| 208 | responsibility to any person or entity with respect to any loss or
|
---|
| 209 | damage caused, or alleged to be caused, directly or indirectly by the
|
---|
| 210 | use and application of the NTRIP technology.
|
---|
| 211 |
|
---|
| 212 |
|
---|
| 213 | Further information
|
---|
| 214 | -------------------
|
---|
[8784] | 215 | URL: https://igs.bkg.bund.de/ntrip/index
|
---|
[488] | 216 | E-mail: euref-ip@bkg.bund.de
|
---|