Hallo zusammen,
Ich suche nun schon ein paar Tage das Netz durch und habe diverses hier
im Forum gelesen... Aber ich scheine irgenwie Tomaten auf den Augen zu
haben:
Ich suche einen kleinen NMEA Parser, dem ich eigentlich nurnoch die
Bytes vom GPS Empfänger hin werfen muss und mir dann ein Struct mit
daten wie Position, Geschwindikeit, Kurs etc füllt und zur Verfügung
stellt. Aber obwohl hier sehr viele Leute mit GPS am Avr arbeiten, hat
keiner eine einfache Lib parat, die diese Aufgabe erfüllt.
Super wäre ein relativ schlankes System, als OpenSource.
Hat jemand vielleicht einen guten Tipp für mich?
Mein Sensor spricht reines NMEA 183, kein Sirf oder ähnliches.
Vielen Dank und viele Grüße,
Timo
Timo Birnschein schrieb:> Ich suche nun schon ein paar Tage das Netz durch
In der Zeit hättest du das mindestens 5 mal selbst geschrieben. Und
dabei sogar noch was gelernt (höchst wahrscheinlich).
Das ist Textver- und bearbeitung auf einfachstem Niveau.
Timo Birnschein schrieb:> etc
Was verstehst du darunter? Für viele Aufgaben reicht es den $GPRMC
Sentence auszuwerten oder brauchst du auch Routenplanung und
Wegpunkt-ansteuerdaten?
>Ich suche nun schon ein paar Tage das Netz durch...
Die Anzahl Google Anfragen um nichts zu NMEA zu finden belaeuft sich auf
exakt Null. Zeit einem El-Schlaffo einen Tritt zu geben.
>Hi>>Gib mir mal ein bsp. NMEA String und sag wie deine "Ziel" Struct>>aussehen soll. Dann zeig ich dir, wie das geht>http://www.olajedatos.com/documentos/MN000315E_NME...>Z.B. GGA
Da widerspricht sich was:
GGA Latitude: (Seite5)
Das Beispiel ist : .. ,3723.2475, ..
und in der Tabelle steht: dddmm.mmmm
Das Bsp hat nur vier Stellen vor dem Punkt..
Hi
>Da widerspricht sich was:>GGA Latitude: (Seite5)>Das Beispiel ist : .. ,3723.2475, ..>und in der Tabelle steht: dddmm.mmmm>Das Bsp hat nur vier Stellen vor dem Punkt..
Es gibt keine führenden Nullen.
MfG Spess
>Es gibt keine führenden Nullen.
Warum nicht? Woran soll man erkennen, was das Bedeutet?
In dem selben Beispiel, bei sattelites used, gibt es die doch auch.
Oder Beispiel:
Uhrzeit: 12345.123
WIe spät ist es?
1:23:45
12:03:45
12:34:05
???
EDIT:
Weiter, Latitude: 102.9876
ergibt?
10° 2.9876'
1° 02.9876'
???
Hm, meine Frage war scheinbar blöd formuliert.
Ich kann durchaus programmieren, allerdings ist die Anzahl an
Komponenten die mein Projekt umfasst (quatrokopter und andere
Fluggeräte) zu groß um sich um jede Standard Kompontente im Detail zu
kümmern. Ich habe die letzten Tage Informatione über alles gesammelt.
Insbesondere viel über Antennendesign und GPS grundsätzlich gelesen und
nebenbei versucht einen Parser zu finden, der die Aufgabe erledigen
kann.
Die Stanfort Lib beispielsweise läuft bei mir nicht! es werden schlicht
die Zahlen aus dem Beispiel-Teststring nicht erkannt, und das obwohl ich
sie testweise am PC implementiet habe. Viele GPS Logger hier im Forum
und im Wiki arbeiten nicht mit einem Parser, sonder speichern lediglich
den kompletten Stream auf eine SD Karte. Damit ist das auch nicht was
ich will...
Danke an Chris für die beiden Links! Speziel den unteren kannte ich noch
nicht. Ich werde da mal rein schauen und wenn das auch nicht geht,
schreib ich das Ding halt selbst. Schade, dass man das Rad manchmal doch
neu erfinden darf.
Danke nochmal und Gruß
Timo
>1° 02.9876'
Ich denke es gibt keine führenden Nullen?
Wie wird die Uhrzeit Mitternacht dargestellt?
0 ?
000 ?
000000 ?
Oder eine Minute und eine Sekunde nach Mitternacht?
11 ?
011 ?
Hi
>1° 02.9876'>Ich denke es gibt keine führenden Nullen?
Es steht doch auch keine Null am Anfang des Strings. Du musst z.B.
'dddmm.mmmm' wie eine Maske über den String legen so das der Punkt
übereinstimmt.
Ein String mit dem Field Type dddmm.mmmm fängt nicht mit einer Null an,
außer dddmm ist Null. Der Punkt ist immer vorhanden. mmmm hört nicht mit
einer Null auf, außer mmmm ist Null.
>Wie wird die Uhrzeit Mitternacht dargestellt?
0.0.
MfG Spess
Also wenn das mm von 'mm.mmmm' Null ist, dann sieht das so aus:
falls d>0 : (d)d00.xxxx d: Grad
sonst 0.xxxx
???
>0.0.
Keine Std und keine Min, weil Null?
Warum dann führende Nullen bei sattelites used und bei station id ?
Oder anders formuliert:
hhmmss ist eigentlich eine Zahl, gebildet durch
10000h
+ 100m
+ s
und das ohne führende Nullen.
Genauso das dddmm:
100d
+ m
wobei hier noch zusätzlich gilt: m<60
???
Hi
Vergiss meine Aussagen. War Müll. In dem von mir verlinktem Dokument ist
ein Fehler. Die Latitude hat nicht das Format dddmm.mmmm sondern
ddmm.mmmm (0..90°). Und diese Strings haben eine konstante Länge.
MfG Spess
Timo Birnschein schrieb:> Ist es nicht schon offensichtlich geworden - und das ohne mein Zutun -> warum das nicht einfachste Textverarbeitung ist... ;)
Ja. Ich greif mir die ganze Zeit an den Kopf. Warum dieser sinnlose
Aufwand, die Nullen zu unterdrücken. Diese fehlenden Stellen erzeugen
dann wieder jede Menge Aufwand beim zurückrechnen..
Man kann nur den Kopf schütteln
>Vergiss meine Aussagen. War Müll. In dem von mir verlinktem Dokument ist>ein Fehler. Die Latitude hat nicht das Format dddmm.mmmm sondern>ddmm.mmmm (0..90°). Und diese Strings haben eine konstante Länge.
Puh. Gott sei Dank.
Also ist Mitternacht 000000.0000
und die geogr. Position 0/0 wird als
0000.0000 LAT
und
00000.0000 LON
dargestellt?
(bitte ein ja ;-)
>Sorry, Matthias.
Warum?
>Das hab ich gerade noch gesehen:>http://www.maartenlamers.com/nmea/
Da steht:
>>$GPGGA,082804.683,5205.9421,N,00506.4368,E,1,03,3.0,0.3,M,,,,0000*01>>$GPRMC,082804.683,A,5205.9421,N,00506.4368,E,0.02,146.61,190408,,*0C>>$GPBDG,082804.683,A,52.09904,5.10728,0.02,146.61,1,190408,*73
Das sieht eindeutig nach führenden Nullen, also konstanter Länge aus.
Oder das Feld ist leer.
Somit sollte der Ansatz im ANhang funktionieren. Und sogar schneller
sein als die vielen String/real Funktionen hier:
>http://git.savannah.gnu.org/cgit/gpsd.git/tree/dri...
Da sind durchaus auch führende Nullen zu finden. Allerdings schmiss der
Parser bei mir komische Zahlen raus, die ich aber auch falsch
interpretiert haben könnte.