38 lines
1006 B
Python
38 lines
1006 B
Python
from msg_container import MsgContainer
|
|
from receiver.nmea_receiver import NmeaReceiver
|
|
|
|
|
|
class Gsa(NmeaReceiver):
|
|
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.signal_id = None
|
|
self.checksum = None
|
|
|
|
def __repr__(self):
|
|
return f"{self.__dict__}"
|
|
|
|
def __init__(self, name: str, tid: str):
|
|
NmeaReceiver.__init__(self, name, tid=tid, msg_type="GSA")
|
|
self.msg = None
|
|
self.data = Gsa.Msg()
|
|
|
|
def on_recv(self, msg: MsgContainer):
|
|
data_list = msg.data.split(b',')
|
|
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.signal_id = data_list[18].split(b'*')[0]
|
|
self.data.checksum = data_list[18].split(b'*')[1]
|
|
|
|
print(f"{self.name}:{self.msg} {self.data}")
|