37 lines
991 B
Python
37 lines
991 B
Python
from msg_container import MsgContainer
|
|
from nmea.receiver import Nmea
|
|
|
|
|
|
class Gll(Nmea):
|
|
class Msg:
|
|
def __init__(self):
|
|
self.latitude = None
|
|
self.ns_indicator = None
|
|
self.longitude = None
|
|
self.ew_indicator = None
|
|
self.utc_time = None
|
|
self.status = None
|
|
self.checksum = None
|
|
|
|
def __repr__(self):
|
|
return f"{self.latitude:.8f}{self.ns_indicator},{self.longitude:.8f}{self.ew_indicator}"
|
|
|
|
def __init__(self, name: str, tid: str):
|
|
Nmea.__init__(self, name, tid=tid, msg_type="GLL")
|
|
self.msg = None
|
|
self.data = Gll.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.latitude = float(data_list[1])/100
|
|
self.data.ns_indicator = data_list[2]
|
|
self.data.longitude = float(data_list[3])/100
|
|
self.data.ew_indicator = data_list[4]
|
|
self.data.utc_time = data_list[5]
|
|
self.data.status = data_list[6]
|
|
self.data.checksum = data_list[7]
|
|
|
|
print(self.data)
|