diff --git a/network_backend.py b/network_backend.py index 7788e5d..b8ebb7e 100644 --- a/network_backend.py +++ b/network_backend.py @@ -18,7 +18,7 @@ from threading import Thread from queue import Queue from ubx.ubx import frame_create from ubx.msg import UbxMsg -from ubx.messages.nav import Sig +from ubx.messages.nav import Sig, Sat from ubx.messages.rxm import RawX class NetworkBackend(ABackend): @@ -149,6 +149,7 @@ if __name__ == "__main__": ] ubx_rx_list = [ UbxReceiver(Sig(), 0x01, 0x43), + UbxReceiver(Sat(), 0x01, 0x35), UbxReceiver(RawX(), 0x02, 0x15), UbxReceiver(UbxMsg(), 0x05, 0x01), @@ -201,6 +202,9 @@ if __name__ == "__main__": # Poll UBX-NAV-SIG (0x01 0x43) frame = frame_create(0x01, 0x43, b'') transceiver[grm].send(frame) + # Poll UBX-NAV-SAT (0x01 0x35) + frame = frame_create(0x01, 0x35, b'') + transceiver[grm].send(frame) # Poll UBX-RXM-RAWX (0x02 0x15) frame = frame_create(0x02, 0x15, b'') transceiver[grm].send(frame) diff --git a/ubx/messages/nav.py b/ubx/messages/nav.py index e94df55..2887a7a 100644 --- a/ubx/messages/nav.py +++ b/ubx/messages/nav.py @@ -37,3 +37,36 @@ class Sig(ubx.msg.UbxMsg): remain -= group_size obj.signals.append(signal) return obj.__dict__ + +class Sat(ubx.msg.UbxMsg): + class Group1: + @classmethod + def from_bytes(cls, data: bytes): + obj = Sat.Group1() + obj.gnss_id = struct.unpack("B", data[0:1])[0] + obj.sv_id = struct.unpack("B", data[1:2])[0] + obj.cno = struct.unpack("B", data[2:3])[0] + obj.elev = struct.unpack("B", data[3:4])[0] + obj.azim = struct.unpack("