Seite 1 von 1
GPS-Aufzeichnungsdauer mit gpspipe
Verfasst: Sonntag 14. Juli 2019, 20:17
von Fussel132
Hey Leute,
ich habe eine Frage, und zwar: mit dem Befehl
zeichne ich die Daten von meinem NEO-6M GPD-Modul auf. Allerdings nur für eine Sekunde oder zwei. Wenn ich den Befehl einfach öfter laufen lasse, überschreibt er die Datei immer wieder. Meine Frage also, wie kann ich die Dauer der Aufzeichnung mit gpspipe einstellen?
Danke im voraus,
Fussel132
Re: GPS-Aufzeichnungsdauer mit gpspipe
Verfasst: Sonntag 14. Juli 2019, 20:36
von __deets__
Das kann man ja durchaus googeln
https://gpsd.gitlab.io/gpsd/gpspipe.html
Aber besser wäre eh die Daten kontinuierlich zu holen & aus dem stdout eines subprocess.Popen-Objektes zu sammeln.
Re: GPS-Aufzeichnungsdauer mit gpspipe
Verfasst: Sonntag 14. Juli 2019, 21:58
von Fussel132
Wie mache ich das denn? Weil wenn ich das Ergebnis davon noch später mit gpsbabel in eine .kml-Datei umwandeln kann, wäre das natürlich super. LG Fussel
Re: GPS-Aufzeichnungsdauer mit gpspipe
Verfasst: Montag 15. Juli 2019, 06:13
von sparrow
Und das hat mit Python zu tun, weil?
Re: GPS-Aufzeichnungsdauer mit gpspipe
Verfasst: Montag 15. Juli 2019, 15:21
von Fussel132
Naja, weil im Anfang ging es um dieses Python-Programm (ja sorry, es ist noch in P2).
Code: Alles auswählen
#!/usr/bin/env python
import subprocess
import time
from datetime import datetime as dt
# Terminate existing gpsd instances, start gpsd and sleep a few seconds
subprocess.call('sudo killall gpsd', shell=True)
subprocess.call('sudo /usr/sbin/gpsd /dev/ttyAMA0 -F /var/run/gpsd.sock', shell=True)
time.sleep(30)
# Refresh the local time
subprocess.call('sudo service ntp restart', shell=True)
time.sleep(3)
#output file name with actual date
filename = "/home/pi/gpstrack-" + dt.now().strftime("%Y%m%d-%H%M%S") + ".txt"
# start gpspipe and output the GPS Data as NMEA to file
subprocess.call('gpspipe -d -l -r -o '+ filename +' ', shell=True)
LG Fussel132
Aber im Prinzip gehört es nicht wirklich zu Python....
Re: GPS-Aufzeichnungsdauer mit gpspipe
Verfasst: Montag 15. Juli 2019, 15:49
von __blackjack__
@Fussel132: Diese ``shell=True`` sollten da nirgends sein, und ich sehe auch gar keinen Grund die zu verwenden. Das sollte sich auch recht leicht nach Python 3 portieren lassen.
Andererseits sehe ich bei dem Skript im Moment gar keinen Grund warum das überhaupt in Python geschrieben ist und nicht einfach ein Shell-Skript ist. Man kann das in ein Shell-Skript umwandeln in dem man fast nur unnötige Python-Syntax raus löscht. Einzig beim Zeitstempel für den Dateinamen muss man geringfügig etwas ändern:
Code: Alles auswählen
#!/bin/sh
# Terminate existing gpsd instances, start gpsd and sleep a few seconds
sudo killall gpsd
sudo /usr/sbin/gpsd /dev/ttyAMA0 -F /var/run/gpsd.sock
sleep 30
# Refresh the local time.
sudo service ntp restart
sleep 3
# Output file name with current timestamp.
filename="/home/pi/gpstrack-$(date +%Y%m%d-%H%M%S).txt"
# Start gpspipe and output the GPS Data as NMEA to file.
gpspipe -d -l -r -o "$filename"