Daten von GPS-Gerät auslesen, filtern und in Datei schreiben

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
damcd
Beiträge: 2
Registriert: 20.02.2015 16:36:05

Daten von GPS-Gerät auslesen, filtern und in Datei schreiben

Beitrag von damcd » 20.02.2015 16:55:24

Hallo Community,

Ich habe unter /dev/ttyUSB1 ein GPS-Gerät, welches fortlaufend NMEA0183-Sentences ausgibt. Von all diesen Daten möchte ich aber nur die GPRMC-Sätze haben und fortlaufend in eine Datei schreiben.
Mit

Code: Alles auswählen

cat /dev/ttyUSB1 > /home/bla/test
bekomme ich aber natürlich die kompletten Daten.
Deswegen hatte ich mir überlegt mit grep die Daten zu filtern, was nach stdout auch gut klappt:

Code: Alles auswählen

grep GPRMC /dev/ttyUSB1
Wenn ich jetzt aber versuche das alles in eine Datei umzuleiten, bleibt diese leer.
Zusätzliche GPS-Tools wie gpsbabel oder gpsprune kommen für die Aufgabe nicht in Frage.

Ich baue auf Eure Hilfe und bedanke mich im Voraus :)

schwedenmann
Beiträge: 5528
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Re: Daten von GPS-Gerät auslesen, filtern und in Datei schre

Beitrag von schwedenmann » 20.02.2015 18:27:41

Hallo

Ich hoffe ich liege hier fast richtig, bin kein Konsolenfreak :cry:

1. /home/bla/test auf dies Datei grep loslassen

oder 2.
grep GPRMC /dev/ttyUSB1 | cat /dev/ttyUSB1 > /home/bla/test

mfg
schwedenmann

Benutzeravatar
shoening
Beiträge: 898
Registriert: 28.01.2005 21:05:59
Lizenz eigener Beiträge: MIT Lizenz

Re: Daten von GPS-Gerät auslesen, filtern und in Datei schre

Beitrag von shoening » 20.02.2015 19:37:27

Hi,

wenn Du mit
cat /dev/ttyUSB1 > /home/bla/test
Die Daten in eine Datei umlenken kannst, dann solltest Du grep dazwischen klemmen:

Code: Alles auswählen

cat /dev/ttyUSB1 | grep GPRMC > /home/bla/test
Bürokratie kann man nur durch ihre Anwendung bekämpfen.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Daten von GPS-Gerät auslesen, filtern und in Datei schre

Beitrag von Cae » 20.02.2015 21:17:17

damcd hat geschrieben:Wenn ich jetzt aber versuche das alles in eine Datei umzuleiten, bleibt diese leer.
Das ist nur bedingt richtig. Das Lesen und Schreiben in Dateien ist normalerweise gepuffert, d.h. es wird nicht ein Zeichen oder eine Zeile auf einmal gelesen oder geschrieben, sondern eher sowas wie 8192 (8k) Bytes auf einmal. Solange dein grep(1) noch keine 8k matchende Daten gefunden hat, wird es logischerweise nichts schreiben koennen.

Die Loesung dazu ist, die grossen Caches mit --line-buffered abzustellen. Evtl. hast du dann immer noch ein input buffering, aber das erkennst du, wenn du mit cat(1) aus dem ttyUSB1 liest und auf's Terminal schreiben laesst (ggf. ist hier cat -v gegen Binaermuell sinnvoll). Wenn der Output Zeile fuer Zeile erscheint, wird weder cat noch grep die Eingaben groesser puffern.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

damcd
Beiträge: 2
Registriert: 20.02.2015 16:36:05

Re: Daten von GPS-Gerät auslesen, filtern und in Datei schre

Beitrag von damcd » 21.02.2015 11:12:59

Dank Cae funktioniert es jetzt. Vielen Dank dafür, auf die Pufferung wäre ich in einem Jahr nicht drauf gekommen. :THX:

Der Befehl, den ich jetzt verwende, lautet:

Code: Alles auswählen

grep --line-buffered GPRMC /dev/ttyUSB1 > /home/bla/test
Auch vielen Dank an schwedenmann und shoening für die schnellen Antworten.

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Daten von GPS-Gerät auslesen, filtern und in Datei schre

Beitrag von Meillo » 22.02.2015 18:04:49

@Cae: 100 Punkte! Gratulation! :THX:
Use ed once in a while!

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Daten von GPS-Gerät auslesen, filtern und in Datei schre

Beitrag von Cae » 22.02.2015 20:53:38

Meillo hat geschrieben:@Cae: 100 Punkte! Gratulation! :THX:
Danke fuer die Blumen!

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Antworten