Software - Sat-View / Sat-Analyse
Die Idee zu diesen Programmen hatte viele Auslöser. Seit einiger Zeit hatte ich mit PLUA, einem recht brauchbaren Palm Ableger von LUA herumgespielt.
PLUA war mir aufgefallen, weil sie erstens geeignet ist,um schnell mal einige Routinen für den (und auf dem) PDA zu erstellen, zweitens ist sie kostenlos (für mich auch ein Argument) und drittens ist es mit PLUA möglich,
abgesehen vom Grafittibereich die hochauflösende Grafik des Handera330 (und wohl auch vom CLIE, aber das konnte ich nicht ausprobieren) auszunutzen.
Dann habe ich mich immer mal wieder über meinen Streetfinder von RandMcNally geärgert, da er öfter mal sehr lange brauchte, um eine gültige Position zu
finden. Und bei den meisten kommerziellen GPS-Programmen kann man dann nur warten und hoffen, das die Position auf der Map sich mal bewegt oder ein meinst sehr winziges Symbol sich ändert, um
einen gültigen Connect zu signalisieren. Dann fand ich (über die Yahoo-Digimap Group) die Streetfinder Seite von Carsten Kurz und konnte dort einiges Informationen über die Gründe des
langdauernden Kaltstarts und die Möglichkeiten zur Verbesserung der Starteigenschaften des Streetfinders lesen. Da ich nun nicht gewillt war, immer mittels Terminalprogramm dem Streetfinder einen
sinvollen INIT zu verpassen machte ich mich ans Werk und stellte eine kleine Routine in PLUA auf die Beine um dem GPS-Gerät einen INIT String anzubieten, zu erkennen, ob der Streetfinder überhaupt
sinnvolle NMEA-Strings liefert und um zu erkennen, wie lange das Gerät braucht um eine gültige Position zu bestimmen. Dabei habe ich festgestellt, das es wohl stimmt, das der Streetfinder sich
seine letzte Position merkt und es ausreicht, ihn mit einer gültigen Zeit und einem gültigen Datum zu versorgen. Übrigens, der Zeitoffset zur UTC ist im Moment fest codiert.
Bei der Sommerzeitumstellung muss man das Programm also anpassen.
Aus der ursprünglich rein textbasierten Ausgaberoutine ist dann durch Spieltrieb, aus Neugierde, (was kann man noch alles mit den empfangenen Daten anfangen) und aus der Frage: was kann man mit PLUA alles machen, im
Laufe der Zeit etwas mehr geworden.
Sat-View
Jetzt kann man die vom Gerät erkannten Satelliten auf einer Karte lokalisieren, die von den Satelliten empfangenen Daten sehen und, bei Fortbewegung mit dem GPS-System, die Geschwindigkeit und die Richtung der Fortbewegung sehen.
Gleichzeitig habe ich damit etwas die grafischen Möglichkeiten von PLUA ausprobiert. (Bitmaps, Kreise, Linien, Circle etc..)
Das vorliegende Programm sollte also nicht als Konkurrenz zu anderen GPS Programmen gesehen werden, sondern als Möglichkeit, erstens sein GPS-System und die Daten aus den NMEA-Strings etwas besser zu zu durchschauen und zweitens als Übung und Beispiel für PLUA-Programmierung.
Dabei sollte man immer im Hinterkopf behalten, das PLUA von der Ausführungsgeschwinigkeit der vollständigen und zeitgerechten Auswertung der NMEA Strings Grenzen setzt.
Nachdem ich mich gewundert hatte, das das Programm so träge auf Geschwindigkeits- und Positionswechsel reagierte, habe ich mal auf einem Parkplatz den Handera vom Streetfinder getrennt. Trotzdem fuhr ich laut Programm noch eine ganze Zeitlang weiter. Der Streetfinder überschüttete also
die serielle Schnittstelle mit Informationen, der serielle Eingangspuffer war dauernd voll und das Programm wertete die Daten von vor einigen Minuten aus.
Daraufhin habe ich die Leseroutine so modifiziert, das zwar nicht mehr alle ankommenden, aber jedenfalls zeitlich passende NMEA-Strings ausgewertet werden indem ich den Puffer regelmässig „leersauge“.
Aber vielleicht hat ja mal jemand Lust, die Routinen in einer anderen Programmierumgebung (C, Pocket-C, NS-Basic etc.) umzusetzen und einen Geschwindigkeitsvergleich zu machen.
Damit besser erkennbar wird, was die einzelnen Funktionen machen, habe ich sie möglichst ausführlich mit Komentaren versehen und dort auch manchmal noch einige Informationen über GPS bzw. NMEA eingestreut.
Wer das Programm mal austesten möchte, ohne ein GPS-System anzuschliessen, kann das mit NMEA Simulatorprogrammen, welche NMEA Strings über die serielle Schnittstelle an den Cradle senden, tun. Dabei bitte nicht vergessen,
das Hotsync Programm vorher zu deaktivieren. Solche Programme sind z.B. NMEASIM von Werner König, der GPS-Simulator von Horst Lichtenheld oder GPSsim von Sailsoft. Die Download-URLs dieser Programme finden sich weiter unten bei den anderen Internet-Adressen.
Eine andere Testmöglichkeit besteht darin, mittels PTELNET (findet man bei PALMGEAR) aus dem Handera ein DOC-File voller NMEA Strings und den Palm-Emulator zu senden, und das Programm dort (also auf dem POSE) auszuführen.
Da das Programm für einen Handera330 geschrieben ist und nicht am "grünen Tisch", sondern nach und nach gewachsen ist (einige Routinen sogar auf einem Parkplatz neben der Autobahn, mit PLUA geht das) sind alle
Positionierungen der Ausgaben absolute, nur für den 240*240 Screen des Handera gültige Zahlen und ich habe im Moment nicht die Zeit (und Lust) diese Teile zu relativieren, obwohl PLUA es ermöglicht, mit Hilfe des pmode() Befehls die für den
benutzten PDA gültige Auflösung zu erkennen.
Dabei sollte man auch bedenken, das jede Positionsberechnung für Screenausgaben Rechenzeit kostet und die ist rar bei einem zeitkritischen Programm wie der GPS-Auswertung.
Das bedeutet, Benutzer eines "normalen" Palms oder eines CLIE müssten sich (im Moment) die Mühe machen, die Routinen umzuschreiben
Noch etwas zur Auswahl der NMEA-Strings im INIT Teil des Programmes: Es werden immer nur die $GPGGA, $GPGSV und $GPRMC
Strings ausgewertet. Die INIT Wahl schaltet also nur die Ausgabe der entsprechenden Strings beim Streetfinder ein oder aus und beeinflusst nicht die Auswertung der Daten. Das macht trotzdem Sinn, denn das Programm ist ursprünglich dazu gedacht, auf einen gültigen Connect des Streetfinders zu
warten und dann zu einem anderen GPS-Programm wie DIGIMAP oder PATHAWAY zu wechseln. Wer Spass und Lust dazu hat, kann ja das Programm auch noch erweitern, z.B speichern von Positionsdaten, Anzeigen der Wegpunkte auf einer Map usw. usw.
Die einzelnen Routinen selbst habe ich im Programm möglichst ausführlich kommentiert, um sie durchschaubar zu machen. Noch einige Worte zu den benutzten Bitmaps. Sie sind in einer extra Datei namens Satview.prc zu finden.
Es sind 16-Graustufen (4 Bit Tiefe) Bitmaps, wobei die Hintergrund-Bitmap 240*240 und die beiden anderen 40*40 Pixel gross sind Diese Datei wurde mit dem Programm PRCedit.exe erstellt.
Sat-Analyse

Als (zumindest für mich) brauchbare Anwendung von SatView habe ich das Programm erweitert um die Möglichkeit, NMEA Messages in einem Logfile zu speichern. Da ich oft mit dem Motorrad unterwegs bin und mir einen Spass daraus mache,
einfach „der Nase nach“ gerade auch kleine , kurvenreiche Strassen zu erkunden (in meiner Heimatgegend gibt's, gerade nach der Öffnung
der Grenzen nach Osten, noch genug „Neuland“) habe ich so die Möglichkeit, im Nachhinein auf der Karte daheim am PC zu
sehen, wo ich nun überall „rumgegurkt“ bin.
Ich nutzte dazu die TOP50 Reihe der Landervermessungsämter
(http://www.adv-online.de/produkte/top50/), also Topografische
Landkarten auf CD, die es ermöglichen, einen NMEA Sender, also
ein GPS System oder in meinem Falle den Palm, anzuschliessen und die
Empfangenen daten auszuwerten.
Als Ergänzung zu SatView habe ich deshalb SatAnalyse
geschrieben, um die mittels SatView(ab Version 1.8) aufgezeichneten
Logfiles etwas auszuwerten und vor allem, um die aufgezeichneten NMEA
Daten an den PC zu senden. Der Handera330 simuliert dann also einen
GPS-Empfänger. Damit kann ich dann daheim die gefahrenen (oder
erwanderten) Strecken nochmal auf der Karte nachvollziehen.
Als Auswertung ermöglicht SatAnalyse im Moment nur die
Erstellung eines Geschwindigkeits und eines Höhenprofils, aber
auch hier sind die Grenzen ja nur von der eigenen Phantasie gesetzt,
denkbar sind noch: mittlere Geschwindigkeit, zurückgelegte
Strecke in Km etc. etc.
Auch dieses Programm ist wieder mit Plua realisiert und kann
natürlich noch ergänzt oder in andere Sprachen umgesetzt
werden.
Noch drei kurze Bemerkungen zur Anwendung:
- Auch dieses Programm ist für den Handera geschrieben,
für alle anderen palm muss die Grafikausgabe also angepasst
werden.
- Wenn SatAnalyse seine Daten an die Schnittstelle sendet, kann
es momentan nur durch einen Reset unterbrochen werden, da das
Programm in diesem status auf keinerlei Eingaben reagiert.
- Zur Aufzeichnung von längeren Datensätzen macht es
Sinn, den Auto-OFF Timer abzuschalten. z.B. mit dem Programm
AlwaysOn (http://www.persicke.de/palmfree.htm)
um nicht damit
sich die Aufzeichnung nicht irgenwann unterbricht.
Update vom 27.05.2002:
Da endlich auch die Dokumentation vom PLUA1.0b12 fertig war und daraus
ersichtlich wurde, das Plua jetzt auch binäre Logik beherscht, konnte ich
Sat_view etwas umkodieren und schneller machen. Durch die schnellere
Checksum-Erstellung bzw. Erkennung reagiert es jetzt weniger träge.
Ausserdem habe ich Sat_Analyse (nicht zuletzt angeregt durch Vorschläge von
einigen Nutzern), etwas "aufgebohrt".
Die neue SatAnalyse kann jetzt PathAway Protokollfiles lesen und auf die
serielle Schnittstelle geben. Ebenso die PathAway Trackfiles.
Da diese nicht als NMEA Sequenzen sondern nur als 3D-Position mit Zeitinfo
gespeichert werden, müssen erst wieder NMEA Sequenzen daraus erzeugt
werden, um sie mit z.B. den TOP50-Karten nutzen zu können.
Wer das machen will, sollte sich auch mal die einleitenden Zeilen im
SatAnalyse Quelltext ansehen. Evtl. müssen da einige Zahlen geändert und das
Ganze neu kompiliert werden.
Mit PathAway-Tracks hier aus der Rhön hat das alles prima funktioniert. Ich
kann mit Pathaway Tracks aufzeichnen und diese hinterher auf die TOP50
Karten übertragen und nachvollziehen.
Übrigens noch einen kleinen Blick in die Zukunft: Ich kann mittlerweile auch die
vom PathAway-Konvertierprogramm erzeugten Karten (mittels PLUA) lesen
und auf dem Palm bzw. Handera darstellen. Irgendwann wird es dann
(hoffentlich) eine Sat_View Version mit Kartenansicht geben.
Das wird noch etwas dauern, aber im Prinzip funktionierts.
Und hier das Paket zum runterladen (Sat-View und Sat-Analyse, mit Quellcode):
-----------------------Jetzt noch einige Internetadressen: -------------------------
Ganz zuletzt: Für Kritik, Anregung, erweiterte Programmversionen, Verbesserungsvorschläge oder einfach so kann man mich unter
Bernhard.Hering@Rhoen.de oder
Bernhard.Hering.Radiologie@Klinikum-Fulda
|