Guten Abend! Ich habe hier ein Linux System basierend auf AT91RM9200, das keine (batteriegepufferte) Echtzeituhr hat. Es hat aber ein GPS-Modul auf der Platine, und dieses wiederum ist mit einer Pufferbatterie versehen. Das GPS-Modul ist über die serielle Schnittstelle erreichbar (NMEA, 9.600 Baud). Das PPS-Signal ist nicht angeschlossen. Folgende Aufgabe: Nach dem Booten soll vom GPS-Modul die Zeit geholt werden und die Systemzeit entsprechend gesetzt werden. Dabei kommt es nicht auf eine sekundengenaue Synchronisation an. Es geht mir hauptsächlich darum, dass das Gerät - es handelt sich um einen Datenlogger, auf meiner SD-Karte Dateien mit halbwegs stimmigem Datum anlegt. Es reicht also völlig, wenn die Systemzeit einmal gesetzt wird und dann langsam vom GPS wegdriftet. Gibt es dafür ein Tool? Am besten irgendetwas, was man in den Bootskripten aufrufen kann, das sich einen NMEA-Datensatz holt und die Systemzeit liest, und anschließend die serielle Schnittstelle wieder freigibt? Denn diese wird vom anschließend startenden Anwendungsprogramm nämlich benötigt. Oder wie würdet ihr das angehen? Ich hatte schon eine Menge gesucht, aber nichts gefunden. Es soll auch einen ntpd geben, der mit NMEA-Daten klarkommt. Dann bräuchte man wahrscheinlich gpsd, damit mehrere Prozesse gleichzeitig auf das GPS-Modul zugreifen können. Das heißt, ich müsste meine Logger-Anwendung umschreiben, was ich möglichst vermeiden möchte. Freue mich über jeden Tipp!
>Systemzeit liest, und anschließend die serielle Schnittstelle wieder >freigibt? Denn diese wird vom anschließend startenden Anwendungsprogramm >nämlich benötigt. Wie wirst du das GPS Modul an der Schnittstelle wieder los?
Ueberlegung: Ein Shellscript schreiben, welches ein kleines Programm startet (von dir erstellt). Dieses Programm greift auf TTY zu, liest einen Satz Daten und spuckt dir dann ein "date"-konformes Datum aus. Dieses Datum leitest du dann an "date" weiter. Nachdem dies geschehen ist, startet das Script deinen Logger. Gruesse, Richard
> Wie wirst du das GPS Modul an der Schnittstelle wieder los? Was ich meinte war, dass die Schnittstelle als solche wieder freigegeben wird, d.h. kein Prozess im Hintergrund läuft, der die Schnittstelle offen hält. Denn mein Applikationsprogramm möchte ebenfalls das GPS-Modul nutzen. > Ein Shellscript schreiben, welches ein kleines Programm startet (von dir > erstellt). Dieses Programm greift auf TTY zu, liest einen Satz Daten und > spuckt dir dann ein "date"-konformes Datum aus. > Dieses Datum leitest du dann an "date" weiter. sfz So werde ich es wohl machen müssen. Schade, ich dachte so ein Tool gibt es vielleicht schon.
holger schrieb: > Wie wirst du das GPS Modul an der Schnittstelle wieder los? Das will er nicht. Er hat eine Anwendung verpfuscht, indem sie direkt auf die Schnittstelle des Moduls zugreifen muss, doch jetzt fiel ihm ein, dass er irgendwie auch noch die Systemzeit von der Schnittstelle holen und setzen muss. Man könnte das jetzt richtig machen (Anwendung holt Daten von gpsd, gpsd schreibt gleichzeitig Daten für ntpd in Shared Memory) oder man versucht sich durchzuwurchteln.
Nein, er macht das jetzt richtig, mit gpsd. Weil es ja so schön Mode ist, möglichst viele Layer übereinanderzupacken. Irgendwo muß der Overhead für das Auslasten eines ARM9 ja herkommen. Gleichzeitig vergibt er dir noch 10 Extrapunkte für über den Standard dieses Forums hinausgehende Höflichkeit.
Ja, ja, ist schon schlimm, wenn sich der eigene Pfusch nicht so einfach zukleistern lässt. Echte Männer benutzen ja gar keine Treiber, kein Betriebssystem, keine Programmierbibliothek und schon gar keine Hochsprache wie C. Neumodischer Layerscheiss. Echte Männer machen auch nicht auf Mädchen und heulen über den Standard des Forums heulen. Taschentuch? Bei der Mami anrufen?
Oder deine Anwendung setzt die Zeit sobald eine da ist.
Die Verwendung eines GPS antelle einer RTC ist fragwuerdig. GPS bedingt Sicht zu einem Teil des Himmels. Ich glaube nicht das meine Systeme damit rechnen koennen. Und wenn sie in einem Metallgehause eingebaut sind sowieso nicht. Wenn sie nicht in einem Metallgehause eingebaut sind hat man moeglicherweise EMV Probleme.
sieben von neun schrieb: > Die Verwendung eines GPS antelle einer RTC ist fragwuerdig. GPS bedingt > Sicht zu einem Teil des Himmels. Wer lesen kann ist klar im Vorteil. Er schreibt ja, dass er in seiner "richtigen" Applikation auch das GPS-Modul braucht. Also kann man wohl davon ausgehen, dass die Sicht zum Himmel gewährleistet ist, sonst funktioniert es eh nicht.
Hmmm.... aus der Applikation heraus die Uhr stellen. Die bekommt sie ja per GPS. Ala
1 | if(time_valid) system("date %d.%d.%d..."); |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.