english version

GPS-Anbindung für den Monitor

GPS Beacon

Die GPS-Anbindung der Monitorsoftware geschieht über eine Middleware (der sog. 'GPS-Beacon'), die die Koordinaten vom GPS-Empfänger entgegennimmt, diese aufbereitet und diese verschiedenen Applikationen, z.B. mehreren Instanzen des Monitorprogramms, zur Verfügung stellt.

GPS-Beacon erhält seine Konfigurationsinformationen, wie die Monitorsoftware auch, aus monitor.ini. Dort sind im Abschnitt [gpsd] 3 Einträge zuständig:

  • comport=x gibt an, an welchem Port der GPS-Empfänger NMEA-Daten übermittelt
  • baudrate=x gibt an, mit welcher Geschwindigkeit das geschieht. Standardmässig wird von 4800bps ausgegangen
  • ipport=x gibt an, auf welchem IP-Port auf eingehende Verbindungen gewartet wird. Standardmässig wird Port 2947 verwendet. Bitte nur im Bedarfsfall ändern.
  • rawmode=x gibt an, ob GPS-Beacon die verarbeiteten Koordinaten (etwa für Tapir) oder die empfangenen NMEA-Sequenzen (etwa für andere Anwendungen) übertragen soll.

Um die Monitorsoftware mit GPS-Daten zu versorgen, sind also die folgenden Schritte notwendig:

  • Downloaden der GPS-Software, entpacken ins Verzeichnis der Monitorsoftware
  • Die Konfiguration für den GPSBeacon durchführen (COM-Port, Baudrate, IP-Port)
  • Die Konfiguration für die Monitorsoftware durchführen (IP-Adddresse, IP-Port)
  • den GPS-Empfänger anschliessen und einschalten
  • GPSBeacon starten und die Funktion überprüfen:
    • die Anzahl der sichtbaren Satelliten muss angezeigt werden
    • die GPS-Uhrzeit muss angezeigt werden
    • ein TELNET zur eingestellten Adresse muss sichtbare Daten ergeben
  • die Monitorsoftware starten und prüfen, ob GPS-Daten empfangen werden:
    • der GPS-Indikator im Hauptfenster muss 'GPS' anzeigen
  • Fertig. Es funktioniert
  • Bei Bedarf kann nun noch der GPS-Client gestartet werden.

Bei Problemen kann das Programm mit den folgenden Kommandozeilenoptionen gestartet werden:

  • -d startet das Programm im Debug-Modus, es wird eine Debug-Datei erzeugt
  • -s startet das Programm im Simulationsmodus, es werden ohne angeschlossenen GPS-Empfänger Daten ausgegeben

Sobald GPS-Beacon gestartet wird beginnt er, auf dem angegebenen Port NMEA-Daten vom GPS-Empfänger zu empfangen und zu verarbeiten. Falls sich Applikationen anmelden, so erhalten diese die benötigten Daten in einem einfach zu lesenden Format. Ein Datensatz wird in einer Zeile dargestellt, welche mit 0x0a 0x0d (CR/LF) abgeschlossen wird. Alle Zeilen sind gleich aufgebaut:

Statuscode Trennzeichen (0x20) Meldungstext Zeilenende (0x0a 0x0d)

für jeden Statuscode gibt es ein definiertes Format der Meldungsdaten:

Statuscode Meldungsklasse Meldungstext
1xx (101-149) Information Die Startupmeldung die ausgegeben wird, wenn sich eine Applikation erfolgreich anmeldet. Der Offset von 100 ist die Menge der bereits angemeldeten Clients inclusive der aktuellen Anmeldung. '101' bedeutet: ich bin Anmeldung Nr. 1, '109' bedeutet: es sind bereits 8 andere Applikationen angemeldet, ich selbst bin Nr. 9
150 Fehler Die maximale Anzahl an Clients ist bereits angemeldet, die Verbindung wird geschlossen.
200 Daten Es folgt eine gültige Positionsmeldung im Format:
GPStime (i.A. UTC) 0x20
Position Lon. 0x20
Position Lat. 0x20
Speed (Knoten) 0x20
Anzahl empfangener Satelliten
210 Warnung Es folgt eine Positionsmeldung, allerdings hat der Empfänger den Kontakt zu der mindestens erforderlichen Anzahl Satelliten (i.A. 3) verloren. Die Position ist also möglicherweise nicht aktuell.
250 Fehler Es konnten keine gültigen Daten vom GPS-Empfänger empfangen werden, der Kontakt zum Empfänger ging verloren.
290 Simulation Es werden zwar Daten übertragen, allerdings sind diese Daten künstlich erzeugt
501 Fehler Es liegen keine gültigen Positionsdaten vor.

Hier sind einige Beispiele, wie das dann aussieht:

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

Um die Funktion von GPS-Receiver und des GPS-Beacon testen zu können, und um die Möglichkeit zu haben, die aktuellen Daten beobachten zu können, gibt es eine weitere kleine Applikation, den 'GPS-Client'. Er zeigt lediglich die empfangenen Daten an:

GPS Client
Und das sind die angezeigten Daten:
  • #1 : Länge und Breite der aktuellen Position
  • #1 : Speed over ground, umgerechnet nach km/h
  • #1 : die aktuelle UTC-Zeit
  • #1 : die Anzahl empfangener Satelliten, je Segment einer
  • #1 : der Status der Verbindung (port opened, trying connection, connected, connection closed,timeout)