 |
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:
|
 |
Und das sind die angezeigten Daten:
: Länge und Breite der aktuellen Position
: Speed over ground, umgerechnet nach km/h
: die aktuelle UTC-Zeit
: die Anzahl empfangener Satelliten, je Segment einer
: der Status der Verbindung (port opened, trying connection, connected, connection closed,timeout)
|