Hi, ich möchte unter Linux einem Device, in meinem Fall ein GPS Modul, welches an einem seriellen Port hängt, Zusatzinformationen mitgeben. Also z.B. GPS Modul überträgt laufend via einzelner Zeichen NMEA-Nachrichten, ich möchte aber z.B. bei einem Ausfall auch die letzte Position und Uhrzeit wissen, wann die letzte Position übermittelt wurde. Ich möchte mich in der App auch nicht um das Parsen der NMEA-Nachrichten kümmern. Wie macht man dies "normal" unter Linux? Ideen: 1) Ich könnte die Daten von /dev/ttyXY vermutlich in ein /dev/ttyXYext "weiterleiten". Und vielleicht eigene ioctls anbieten, um meine Informationen der App zur Verfügung zu stellen. Vermutlich brauch ich auch Lib, um die ioctls von der App zu extrahieren. 2) Ich könnte eine Lib erstellen. Die Lib öffnet den COM-Port und sammelt Daten, speichert was nötig ist und wertet sie aus. Die App kann via Function Calls diese Daten abfragen. Tendiere aktuell zu 2)
:
Bearbeitet durch User
Marie M. schrieb: > Und vielleicht eigene ioctls anbieten, Dazu müsstest du einen eigenen Kernel-Treiber implementieren. Das ist eher unpraktisch/aufwendig. Marie M. schrieb: > 2) Ich könnte eine Lib erstellen. Die Lib öffnet den COM-Port und > sammelt Daten, speichert was nötig ist und wertet sie aus. Dann kann aber auch immer nur 1 App gleichzeitig die Daten abfragen. Der typische Unix/Linux-Ansatz ist: Eine Anwendung (Daemon) implementieren, welche permanent im Hintergrund läuft, die NMEA-Daten empfängt, parst, und wie gewünscht speichert. Apps können sich dann mit dem Daemon verbinden (z.B. via UNIX-Socket oder auch DBus) und die Daten in einem beliebigen Format abfragen. Das ist die flexibelste Möglichkeit; über die UNIX-Berechtigungen kannst du den Zugang zum Daemon kontrollieren, und Apps & Daemon können in beliebigen Programmiersprachen und völlig unabhängig voneinander implementiert sein. Es ist bei Bedarf auch übers Netzwerk machbar.
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.