08 März 2010

GPS-Skyview mit GnomeCanvas und Ruby

Um mir GnomeCanvas mal ein bisschen anzusehen und das ein oder andere auszuprobieren hab ich mal ein kleines Testprogramm zusammengebastelt, das aus den Daten von gpsd einen Skyview erstellt, wie man ihn z.B. aus xgps kennt. Für die Daten habe ich dabei das gps gem von Nolan Darilek benutzt, das leider von sich aus nur die Anzahl der zur Zeit "aktiven" Satelliten durchreicht. Ich habe die Schnittstelle, die sich die Daten von gpds via localhost:2947 holt, also etwas aufgebohrt, damit ich schließlich auf die vollständige Liste der Satelliten (incl. PRN, SNR, Elevation, Azimuth) zugreifen konnte.

In meinem kleinen Programm werden die Satelliten dann als Ellipsen dargestellt, die zur Positionsbestimmung aktiven Satelliten mit schwarzer Umrandung, die anderen mit grauer (im Bild z.B. die 28). In der Ellipse wird jeweils die PRN angezeigt, je nach SNR sind die Ellipsen rot, gelb oder grün gefüllt. "Abhanden gekommene" Satelliten werden mit ihrer letzten Position in grau dargestellt (im Bild z.B. 2 und 4). Unter dem Canvas befindet sich noch ein Label mit der aktuellen Uhrzeit und lat und lon.

Die Umrechnung von Elevation und Azimuth ins karthesische Koordinatensystem hab ich aus dem Plasmoid GPSD client von "palo" von C++ nach Ruby übersetzt, auch das kleine Satelliten-Window-Icon stammt aus diesem Programm.

Die verwendeten Programme und Codeschnipsel stehen zwar alle unter GPL, ich werde mein Resultat trotzdem nicht veröffentlichen - u.a., weil mein Script ein schrecklich unsortierter Codehaufen ist, aber es tut. Wer trotzdem Interesse an meinem kleinen Script haben sollte, darf sich aber gerne melden.

Sollte ich demnächst (hoffen wir mal auf den Frühling und nettere Temperaturen) mal wieder mit Fahrrad, Netbook und tangoGPS unterwegs sein, nehm ich mein kleines Script natürlich mit.

Labels: , , ,

1 Comments:

At 19:05, Anonymous Anonym said...

Haha, "Codehaufen" gibts im Wedding auch.

Mal echt, wieso bist Du nicht Reich?

Gruß Erik

 

Kommentar veröffentlichen

<< Home