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
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
#!/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....
@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:
#!/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"
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware