The AVL Server

The AVL Server controls are located in the AVL Tab and provide the means to control the server functions, including various access methods and the formats used to send data to subscribed clients.  The use of these controls is discussed further in this article. The AVL Server is independent of the NTRIP Server and operates on its own port, although they share a common IP address.


An important primary consideration to keep in mind is that SNIP is a powerful real time GNSS corrections server, where data latency to the end user community is always a concern.  By contrast, Automatic Vehicle Location (AVL) applications have few real time constraints and periodic updates every 10~60 seconds are the norm.  The design of SNIP gives processing preference to the delivery of corrections to the subscribed rovers (NTRIP Clients), with the graphic update process dealt with as a secondary task which is slowed and delayed when conditions warrant.  In a similar way, AVL updates are processed when they arrive and sent to subscribed clients, while the the related graphic updates are only processed every ~30 seconds or so.

SNIP is agnostic as to what type or brand of AVL display is used.  There are many display systems for various vertical dispatch and tracking application markets.  But it is assumed this data is displayed on another system connecting to SNIP by means of a dedicated TCP/IP connection.   The AVL Server allows multiple such connections to occur at the same time.

The Controls

Are divided into two primary sections.  The right side of the tab deals with the AVL Server itself. The left side shows a display of recent rover reported locations.  Each is discussed in turn.

The Server Controls

Each of the AVL Server controls is described in the image below.

Active Label

This label shows the state of the AVL Server, switching between  “AVL ACTIVE” and “AVL OFF_LINE” when the Connect/Disconnect button is pressed.   The AVL Server listens for client connections at the port (default 5012) indicated and at the same IP as the NTRIP Caster.  The AVL Server requires that the NTRIP Caster also be active and on-line in order to be enabled.

Connections Count

The number of current and past AVL client connections is shown in this label.  In other words, this shows the number of open TCP/IP sockets at any time.  As client connections come and go, they are also denoted in the console log.

Port Number

The port number selects the port at which the AVL Server will listen for connections.  The IP used is the same as that used by the NTRIP Caster, which is set in the Caster and Clients tab.

The port number selected must not conflict with others used by the machine and any local firewall or port forwarding considerations must allow the external client devices to reach this port.  In this respect the setup steps are similar to the same process used for installing the SNIP Caster itself.

Disconnect / Connect Button

The Connect/Disconnect button toggles the state of the AVL Server when pressed.  When the AVL Server is made active a console log entry is also added similar to the below.

[AVL]:   AVL Server socket at: is ACTIVE.

Whenever a new client initially connects to the AVL Server, some header information is sent to it describing the format being used. Thereafter, every $GGA sentence from the connected rovers is also sent to it.

In the absence of any new $GGA sentence to be sent, periodic comment statements are sent to prevent connection time-out events.  All comment statements start with “##” to allow easy filtering.

When an active AVL Server is disconnected, all current client connections are also disconnected after sending a final comment line.

[Other controls such as the “Open Access” combo will be used to select the
format and access used by the AVL Server as additional features are added]

The Enabled Check Box

When checked, the Enabled check box allows NMEA $GGA sentences to be processed by the AVL Server.  When not checked, no such data from any Rover device is collected, logged, or sent to subscribers.   This control can be considered the master on/off control.

The Auto Start Check Box

When checked, the Auto Start check box allows the AVL Server to automatically start when the SNIP application starts.  If you routinely use the AVL Server feature, enable this check box.

The Log Data Check Box

When checked, the Log Data check box causes a log file containing each $GGA entry to be created for post processing uses.  You can also use “tail” utilities to read this file in real time.

The data is stored in a simple comma separated format.  The files are stored in the /SNIPlogs folder, which is set based on the user’s Data File settings.  These files are automatically named and a new file is aligned with the local time zone and created every 12 hours.  A typical file name would be:  AVL_log_190227_12.csv   The file naming pattern follows  YYMMDD_HH, so this example indicates an AVL log created on February 27th 2019 for the second 12-hour period of that day.


The Recent Rover Locations

The left side of the tab is used to display recent NMEA $GGA sentences and other details about the NTRIP Client devices that sent them.   This display is updated as new entries occur, or every 30 seconds.  Various items can be enabled/disabled to control the information shown. Each control is discussed in turn.

# Check Box

This control, when enabled, displays a sequence number (a unique value ) for every NMEA $GGA sentence.

User Name Check Box

This control, when enabled, displays the NTRIP Client user name and C### (unique client Connection number) for the sender of the NMEA $GGA sentence.

By providing both the user account name and the C###, user accounts that can connect multiple times at once can be disambiguated.  When a SNIP NTRIP Caster is run in “open” mode, the C### value provides a unique identity for NTRIP Client tracking.

Remote IP Check Box

This control, when enabled, displays the remote IP and port used by the NTRIP Client (the sender of the NMEA $GGA sentence). In the above image, details are obscured for privacy.

MountPt Check Box

This control, when enabled, displays the Base Station (mountPt stream) the NTRIP Client is connected to.

As LLH Check Box

The default format of the display shows each NMEA $GGA sentence as sent (minus the final <CR><LF>).  This control, when enabled, displays just the time and location values converted into a more readable LLH format in the format: XX.xxxx (degrees and decimal fractions of a degree).

FYI: The “Altitude” data element used in the NMEA $GGA sentence is not the height with respect to the WGS reference ellipsoid, but is in meters above sea level.  A value for the “Height of the Geoid” is also given.  The translation process used for the geoid is defined by the Rover device (typically with an interpolated grid) and this is a common a source of confusion and error.

The count of NMEA Sentences

To the right of the buttons Refresh, Clear, and Map is a small textual label that provides a count of the NMEA $GGA sentences which have been received.  The first value is the overall count since the AVL process was started. The second value is the number of recent entries waiting to be added to the table widget.  This number grows until periodic processing updates the table (roughly once every 30 seconds) or the refresh button is pressed.

Refresh Button

Pressing the Refresh button causes any pending NMEA $GGA sentence to be immediately updated into the table display.  [Aside: This has no effect on the connected AVL Server clients, who received the NMEA $GGA sentence when it arrived.]

Clear Button

Pressing the Clear button causes the table display to be cleared of entries.

Map Button

Pressing the Map button causes a general map display to be started in the document viewer window.  The SNIP operators can then scroll to the location of any NTRIP Client using the drop down combo boxes.



Was this article helpful?

Related Articles