from msg_container import MsgContainer from receiver.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}")