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 hoehe: float = 0
geschwindigkeit_km_h: 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): 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}" 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): def get_gps_info(self):
ser.write(b'AT+CGPSINFO\r\n') self.ser.write(b'AT+CGPSINFO\r\n')
result = ser.read_all().decode() result = self.ser.read_all().decode()
if "+CGPSINFO:" in result: if "+CGPSINFO:" in result:
raw_data = result.split("\n")[1] raw_data = result.split("\n")[1]
raw_data_list = str(raw_data).removeprefix("+CGPSINFO: ").removesuffix(",\r").split(",") raw_data_list = str(raw_data).removeprefix("+CGPSINFO: ").removesuffix(",\r").split(",")
gps.breitengrad = raw_data_list[0] self.breitengrad = raw_data_list[0]
gps.laengengrad = raw_data_list[2] self.laengengrad = raw_data_list[2]
gps.datum = raw_data_list[4] self.datum = raw_data_list[4]
gps.zeit_UTC = raw_data_list[5] self.zeit_UTC = raw_data_list[5]
gps.hoehe = float(raw_data_list[6]) self.hoehe = float(raw_data_list[6])
gps.geschwindigkeit_km_h = float(raw_data_list[7]) * 1.852 # knoten zu km/h self.geschwindigkeit_km_h = float(raw_data_list[7]) * 1.852 # knoten zu km/h
else: else:
print("Suche Satelliten...") print("Suche Satelliten...")
if __name__ == "__main__": if __name__ == "__main__":
ser = serial.Serial('/dev/ttyUSB0', 115200, timeout=1) gps = GPS_DATA("/dev/ttyUSB0")
ser.write(b'AT+CGPS=1\r\n')
time.sleep(2)
gps = GPS_DATA()
try: try:
while True: while True:
get_gps_info(ser, gps) gps.get_gps_info()
print(gps) print(gps)
time.sleep(2) time.sleep(2)
except KeyboardInterrupt: except KeyboardInterrupt:
ser.close() gps.ser.close()