Ausgegebene Werte speichern

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Code_Zero
User
Beiträge: 4
Registriert: Dienstag 14. Januar 2020, 08:09

Hi, ich habe ein Problem. Ich habe ein Programm geschrieben was meine Gps Daten in Sekundentakt ausgibt.

import serial
import time
import string
import pynmea2

while True:
port="/dev/ttyAMA0"
ser=serial.Serial(port, baudrate=9600, timeout=0.5)
dataout = pynmea2.NMEAStreamReader()
newdata=ser.readline()

if newdata[0:6] == "$GPRMC":
newmsg=pynmea2.parse(newdata)
lat=newmsg.latitude
lng=newmsg.longitude
gps = "Latitude=" + str(lat) + "and Longitude=" + str(lng)
print(gps)

Jetzt möchte ich diese Koordinaten (Latitude und Longitude) gleichzeitig während sie ausgegeben werden in form einer Textdatei speichern. Es soll so sein das wenn das Programm beendet ist das ich alle bis dahin abgefragten Koordinaten sehen kann.
Es währe sehr nett wenn mir jemand dabei helfen könnte.
Benutzeravatar
ThomasL
User
Beiträge: 1379
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Da ist ganz viel im Argen. Permanent die serielle Schnittstelle zu schließen und wieder zu öffnen ist völlig unnötig und produziert im Zweifelsfall Müll-Daten die dann wie zu sehen mühselig ausgefiltert werden müssen. Mach das also einmal am Anfang. Und da öffnest du auch de Datei wie von Thomas gezeugt.

Und zu guter letzt: bitte Code immer mit Code Tags versehen, damit er lesbar bleibt. Im vollständigen Editor der </> Knopf.
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Hier erst mal der aufgeräumte Code:

Code: Alles auswählen

import serial
import pynmea2

PORT = "/dev/ttyAMA0"

with serial.Serial(PORT, baudrate=9600, timeout=0.5) as serial_connection:
    reader = pynmea2.NMEAStreamReader()
    for line in serial_connection:
        if line.startswith("$GPRMC"):
            msg = reader.parse(line)
            gps = f"Latitude={msg.latitude} and Longitude={msg.longitude}"
            print(gps)
Wo hast Du genau Schwierigkeiten, etwas in eine Datei zu schreiben?
Code_Zero
User
Beiträge: 4
Registriert: Dienstag 14. Januar 2020, 08:09

Vielen dank für die schnellen Antworten und die Tipps. Besonders Thomas der Link hat mir sehr weiter geholfen. Natürlich auch danke für die Verbesserungsvorschläge ich werde sie mit berücksichtigen.
Antworten