""" NMEA0183 verarbeiten """ def DBS(boatdata, msg): # Wassertiefe unter der Oberfläche pass #boatdata.setValue("DBS", msg.depth) def DBT(boatdata, msg): # Wassertiefe unter Geber pass #boatdata.setValue("DBT", msg.depth) def GLL(boatdata, msg): print("-> GLL") boatdata.setValue("LAT", msg.latitude) boatdata.setValue("LON", msg.longitude) def GSV(boatdata, msg): # Satellites in view print("-> GSV") def HDT(boatdata, msg): # Heading True print("-> HDT") print(msg.fields) def MWV(boatdata, msg): # Windgeschwindigkeit und -winkel print(f"Wind: {msg.wind_angle}° {msg.wind_speed}kt") boatdata.setValue("AWA", msg.wind_angle) boatdata.setValue("AWS", msg.wind_speed) def MTW(boatdata, msg): # Wassertemperatur # boatdata.setValue("WTemp", msg.xxx) print("-> MTW Wassertemperatur") def RMB(boatdata, msg): # Recommended Minimum Navigation Information # Informationen bzgl. Erreichen des nächsten Wegepunkts # print("-> RMB") def RMC(boatdata, msg): print("-> RMC") #boatdata.setValue("LAT", msg.lat) #boatdata.setValue("LON", msg.lon) def RSA(boatdata, msg): # Rudder Sensor Angle # negative Werte bedeuten Backbord # Boatdata: RPOS primär, PRPOS sekundär print("-> RSA") print(msg.fields) def RTE(boatdata, msg): # Route print("-> RTE") print(msg.fields) def VBW(boatdata, msg): print("-> VBW") def VHW(boatdata, msg): boatdata.setValue("STW", float(msg.water_speed_knots)) def VTG(boatdata, msg): boatdata.setValue("COG", int(msg.true_track)) #TODO klären was für Typen hier ankommen können # bytearray, str, decimal.Decimal? sog = float(msg.spd_over_grnd_kts) #str von OpenCPN: sog = float(msg.spd_over_grnd_kts[:-1]) boatdata.setValue("SOG", sog) def WPL(boatdata, msg): print("-> WPL") print(msg.fields) def XTE(boatdata, msg): # Cross Track error measured print("-> XTE") def XTR(boatdata, msg): # Cross Track error gekoppelt print("-> XTR") def ZDA(boatdata, msg): # Time and date print("-> XTE") #boatdata.gpsd #boatdata.gpst # Aus Performancegründen eine direkte Sprungtabelle, ggf. können # zukünftig außer der Funktion noch weitere Daten gespeichert werdeb decoder = { "DBS": DBS, "DBT": DBT, "GLL": GLL, "GSV": GSV, "MWV": MWV, "MTW": MTW, "RMB": RMB, "RMC": RMC, "RSA": RSA, "RTE": RTE, "VBW": VBW, "VHW": VHW, "VTG": VTG, "WPL": WPL, "XTE": XTE, "XTR": XTR, "ZDA": ZDA }