Files
NmeaClient/nmea/GGA.py
T
2026-03-25 05:40:50 +01:00

51 lines
1.4 KiB
Python

from msg_container import MsgContainer
from nmea.listener import NmeaListener
class Gga(NmeaListener):
class Msg:
def __init__(self):
self.utc_time = None
self.latitude = None
self.ns_indicator = None
self.longitude = None
self.ew_indicator = None
self.quality = None
self.nsv = None
self.h_dop = None
self.orthometric_height = None
self.orthometric_height_unit = None
self.geoid_separation = None
self.diff_age = None
self.ref_id = None
self.checksum = None
def __repr__(self):
return f"{self.__dict__}"
def __init__(self, name: str, tid: str):
NmeaListener.__init__(self, name, tid=tid, msg_type="GGA")
self.msg = None
self.data = Gga.Msg()
def on_recv(self, msg: MsgContainer):
data_list = msg.data.split(b',')
self.msg = data_list[0]
self.data.utc_time = data_list[1]
self.data.latitude = data_list[2]
self.data.ns_indicator = data_list[3]
self.data.longitude = data_list[4]
self.data.ew_indicator = data_list[5]
self.data.quality = data_list[6]
self.data.nsv = data_list[7]
self.data.h_dop = float(data_list[8])
self.data.orthometric_height = data_list[9]
self.data.orthometric_height_unit = data_list[10]
self.data.geoid_separation = data_list[11]
self.data.geoid_separation_unit = data_list[12]
self.data.diff_age = data_list[13]
self.data.ref_id = data_list[14].split(b'*')[0]
self.data.checksum = data_list[14].split(b'*')[1]
print(f"{self.name}:{self.msg} {self.data}")