add all gps to gps class

This commit is contained in:
MuedeHydra 2026-04-28 16:58:37 +02:00
parent b81e57cffe
commit 587bd1bd8d

View File

@ -9,39 +9,42 @@ class GPS_DATA:
hoehe: float = 0
geschwindigkeit_km_h: float = 0
def __init__(self, port, baud = 115200):
self.port = port
self.ser = serial.Serial(port, baud, timeout=1)
self.ser.write(b'AT+CGPS=1\r\n')
time.sleep(2)
def __str__(self):
return f"N = {self.breitengrad}\t E = {self.laengengrad} \t Datum = {self.datum}\t Zeit = {self.zeit_UTC} \t höhe = {self.hoehe} \t geschwindigkeit = {self.geschwindigkeit_km_h}"
def get_gps_info(ser, gps: GPS_DATA):
ser.write(b'AT+CGPSINFO\r\n')
result = ser.read_all().decode()
def get_gps_info(self):
self.ser.write(b'AT+CGPSINFO\r\n')
result = self.ser.read_all().decode()
if "+CGPSINFO:" in result:
raw_data = result.split("\n")[1]
raw_data_list = str(raw_data).removeprefix("+CGPSINFO: ").removesuffix(",\r").split(",")
gps.breitengrad = raw_data_list[0]
gps.laengengrad = raw_data_list[2]
gps.datum = raw_data_list[4]
gps.zeit_UTC = raw_data_list[5]
gps.hoehe = float(raw_data_list[6])
gps.geschwindigkeit_km_h = float(raw_data_list[7]) * 1.852 # knoten zu km/h
else:
print("Suche Satelliten...")
if "+CGPSINFO:" in result:
raw_data = result.split("\n")[1]
raw_data_list = str(raw_data).removeprefix("+CGPSINFO: ").removesuffix(",\r").split(",")
self.breitengrad = raw_data_list[0]
self.laengengrad = raw_data_list[2]
self.datum = raw_data_list[4]
self.zeit_UTC = raw_data_list[5]
self.hoehe = float(raw_data_list[6])
self.geschwindigkeit_km_h = float(raw_data_list[7]) * 1.852 # knoten zu km/h
else:
print("Suche Satelliten...")
if __name__ == "__main__":
ser = serial.Serial('/dev/ttyUSB0', 115200, timeout=1)
ser.write(b'AT+CGPS=1\r\n')
time.sleep(2)
gps = GPS_DATA()
gps = GPS_DATA("/dev/ttyUSB0")
try:
while True:
get_gps_info(ser, gps)
gps.get_gps_info()
print(gps)
time.sleep(2)
except KeyboardInterrupt:
ser.close()
gps.ser.close()