german version

GPS-Link for TAPIR

GPS Beacon

The GPS-Link for TAPIR is made using a Middleware (called the 'GPS-Beacon'), which takes the coordinates from the GPS-receiver, processes them and makes them available for further applications, for example TAPIR.....

GPS-Beacon gets his configuration information, like TAPIR, from monitor.ini. In section [gpsd] are 3 entrys concerned:

  • comport=x tells, at which COM-port NMEA-data is to be received
  • baudrate=x tells the speed at which NMEA-data is to be received. Default setting is 4800bps
  • ipport=x tells the IP port to be used for incoming connections. Default setting is 2947. Only change this if really needed
  • rawmode=x tells GPS-Beacon to transmit either processed data (for use with Tapir) or raw NMEA-Sentences (for use with other applications)

To get this working, follow these steps:

  • Download the GSP-Software and unpack it in the directory where TAPIR resides
  • Configure GPSBeacon (COM-port, baudrate, IP-port)
  • Configure TAPIR for GPS (IP-address, IP-port)
  • Connect GPS-receiver and switch it ON
  • Start GPSBeacon and check if it works:
    • the number of visible satellites must be displayed
    • the GPS-time must be displayed
    • a TELNET to the configured address must show you incoming data
  • Start TAPIR and check, if GPS-data is received:
    • the GPS-indicator must show 'GPS'
  • Ready. It works
  • If needed, you may NOW start GPS-Client

If there are any problems, the following commandline options may be used to track these down:

  • -d starts the software in debug mode, a file with debug output will be created
  • -s starts the software in simulation mode, data will be created without having a GPS receiver connected

As soon as GPS-Beacon is executed, he starts to receive NMEA data from the GPS-receiver and to process them. Applications which connect may receive position data within a simple protocol. Each data set is contained in a single line, which is closed with 0x0a 0x0d (CR/LF). Each line has the same structure:

Statuscode Separator (0x20) Message text End of line (0x0a 0x0d)

each status code defines a format of the message text:

Statuscode Message class Message
1xx (101-149) Information This is the startup message which is received if a application connects successfully. The offset from 100 is the number of already connected clients, including the current connection. '101' means: I am connection Nr. 1, '109' means: there are already 8 applications connected, I am Nr. 9.
150 Error The maximum number of clients is already connected, the connection will be closed.
200 Data A valid position in the following format:
GPStime (nomally UTC) 0x20
Position Lon. 0x20
Position Lat. 0x20
Speed (Knots) 0x20
Number of received satellites.
210 Warning Position data is following, but the receiver is not receiving the required number of satellites, so the position may be outdated or invalid.
250 Error Valid position data could not be received from the GPS receiver, the connection seems to be lost.
290 Simulation The data sent is valid, but it is created from simulation, not from GPS data
501 Error Valid position data could not be received from the GPS receiver, the receiver seems not to receive anything.

Here are a few examples how this may look:

101 GPSBeacon 0.2 by nobbi ready.
101 Format is: GPStime LON LAT Speed Sats
501 no valid position
200 185735 E8,43383 N49,00748 0 3
200 185737 E8,43418 N49,00777 0 3

To have the possibility to test the connection between receiver and GPSBeacon, and to have the possibility to look at the recived data, a small application is available: GPS-Client

GPS Client
And here is what it means:
  • #1 : Longitude und Latitude of the current position
  • #1 : Speed over ground, in km/h
  • #1 : the current time (UTC)
  • #1 : the number of received satellites, one per segment
  • #1 : the connection status (port opened, trying connection, connected, connection closed)