from msg_container import MsgContainer from nmea.receiver import Nmea class Gsa(Nmea): class Msg: def __init__(self): self.mode = None self.fix_type = None self.sat_id = None self.p_dop = None self.h_dop = None self.v_dop = None self.checksum = None def __repr__(self): return f"mode: {self.mode}, fix_type: {self.mode}, sat_id: {self.sat_id}, p-dop: {self.p_dop:.3f}, h-dop: {self.h_dop:.3f}, v-dop: {self.v_dop:.3f}" def __init__(self, name: str, tid: str): Nmea.__init__(self, name, tid=tid, msg_type="GSA") self.msg = None self.data = Gsa.Msg() def on_recv(self, msg: MsgContainer): data = msg.data.decode(encoding="utf-8") data_list = data.split(',') self.msg = data_list[0] self.data.mode = data_list[1] self.data.fix_type = data_list[2] self.data.sat_id = data_list[3:15] self.data.p_dop = float(data_list[15]) self.data.h_dop = float(data_list[16]) self.data.v_dop = float(data_list[17]) self.data.checksum = data_list[18] print(self.data)