diff --git a/src/main.py b/src/main.py index 3792ebc..1203f37 100644 --- a/src/main.py +++ b/src/main.py @@ -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()