|Das Forum330.de
WSConvGUI 1.72
T3AgendaBG 3.2a
 

Menü FORUM330.de Hardware Software Forum Entwicklung Gästebuch PUG NE/D Kontakt News Startseite zum Impressum

Wo bin ich ?
 -Startseite
 --Software
 ---GPS-View



 
Für eine Spende
hier klicken:

Mein Wunschzettel bei Amazon


domain-recht.de: Online-Ratgeber rund um Domains

Host Europe - World Class Internet Hosting

Conrad Electronic

Dropbox 2GB Onlinespeicher gratis

HE330 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.

SatView Connect NoConnect Init-Wahl SatView SatInfos

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

Sat-Analyse Logfile wählen Sende Daten Logfile Menü Profil Höhe Profil km/h

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.

Karte

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

3 User online

 

Hardware  Software  Forum  Entwicklung  Gästebuch
PUG NE/D  Kontakt / Impressum  Startseite
Bitte beachten Sie unbedingt die rechtlichen Hinweise auf meiner Kontaktseite
Dies ist keine offizielle Seite von Palm oder HandEra.

© Thomas (Töm) Dornscheidt
Online seit 03.08.2001