コード例 #1
0
ファイル: test_cid.py プロジェクト: foxittt/ubxlib
    def test_not_equal(self):
        c1 = UbxCID(0x05, 0x00)
        c2 = UbxCID(0x05, 0x01)
        assert c1 != c2

        c1 = UbxCID(0x05, 0x01)
        c2 = UbxCID(0x06, 0x01)
        assert c1 != c2
コード例 #2
0
ファイル: test_cid.py プロジェクト: foxittt/ubxlib
    def test_immutable(self):
        c1 = UbxCID(0x05, 0x01)
        with pytest.raises(AttributeError):
            c1.cls = 0x06

        with pytest.raises(AttributeError):
            c1.id = 0x44

        res = str(c1)
        assert res == 'cls:05 id:01'
コード例 #3
0
    def process(self, data):
        for d in data:
            if self.state == __class__.State.INIT:
                if d == UbxFrame.SYNC_1:
                    self.state = __class__.State.SYNC

            elif self.state == __class__.State.SYNC:
                if d == UbxFrame.SYNC_2:
                    self._reset()
                    self.state = __class__.State.CLASS
                else:
                    self.state = __class__.State.INIT

            elif self.state == __class__.State.CLASS:
                self.msg_class = d
                self.checksum.add(d)
                self.state = __class__.State.ID

            elif self.state == __class__.State.ID:
                self.msg_id = d
                self.checksum.add(d)
                self.state = __class__.State.LEN1

            elif self.state == __class__.State.LEN1:
                self.msg_len = d
                self.checksum.add(d)
                self.state = __class__.State.LEN2

            elif self.state == __class__.State.LEN2:
                self.msg_len = self.msg_len + (d * 256)
                self.checksum.add(d)
                # TODO: Handle case with len = 0 -> goto CRC directly
                # TODO: Handle case with unreasonable size
                self.ofs = 0
                self.state = __class__.State.DATA

            elif self.state == __class__.State.DATA:
                self.msg_data.append(d)
                self.checksum.add(d)
                self.ofs += 1
                if self.ofs == self.msg_len:
                    self.state = __class__.State.CRC1

            elif self.state == __class__.State.CRC1:
                self.cka = d
                self.state = __class__.State.CRC2

            elif self.state == __class__.State.CRC2:
                self.ckb = d

                # if checksum matches received checksum put frame in receive queue
                if self.checksum.matches(self.cka, self.ckb):
                    # Send CID and data as tuple to server
                    self.rx_queue.put((UbxCID(self.msg_class,
                                              self.msg_id), self.msg_data))
                else:
                    logger.warning(f'checksum error in frame, discarding')

                self._reset()
                self.state = __class__.State.INIT
コード例 #4
0
ファイル: test_factory.py プロジェクト: foxittt/ubxlib
    def test_frame_construct(self, frame_factory):
        frame_factory.register(UbxAckAck)

        data = bytearray.fromhex('11 22')
        f = frame_factory.build_with_data(UbxAckAck.CID, data)
        assert f.CID == UbxCID(0x05, 0x01)
        assert f.f.clsId == 0x11
        assert f.f.msgId == 0x22
コード例 #5
0
    def __init__(self, device_name=None):
        super().__init__()

        self.device_name = device_name
        self.selected_device = None
        self.cmd_header = None
        self.connect_msg = f'?WATCH={{"enable":true,"raw":2}}'.encode()
        self.enabled = False

        self.listen_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.response_queue = queue.Queue()
        self.parser = UbxParser(self.response_queue)
        self.thread_ready_event = threading.Event()
        self.thread_stop_event = threading.Event()

        self.frame_factory = FrameFactory.getInstance()
        self.wait_cid = None
        self.gpsd_errors = 0
        self.cid_error = UbxCID(0x00, 0x01)
コード例 #6
0
class UbxEsfMeas_(UbxFrame):
    CID = UbxCID(0x10, 0x02)
    NAME = 'UBX-ESF-MEAS'
コード例 #7
0
ファイル: ubx_esf_status.py プロジェクト: foxittt/ubxlib
class UbxEsfStatus_(UbxFrame):
    CID = UbxCID(0x10, 0x10)
    NAME = 'UBX-ESF-STATUS'
コード例 #8
0
class UbxCfgTp5_(UbxFrame):
    CID = UbxCID(0x06, 0x31)
    NAME = 'UBX-CFG-TP5'
コード例 #9
0
class UbxCfgRst_(UbxFrame):
    NAME = 'UBX-CFG-RST'
    CID = UbxCID(0x06, 0x04)
コード例 #10
0
class UbxCfgNav5_(UbxFrame):
    CID = UbxCID(0x06, 0x24)
    NAME = 'UBX-CFG-NAV5'
コード例 #11
0
ファイル: ubx_esf_alg.py プロジェクト: foxittt/ubxlib
class UbxEsfAlg_(UbxFrame):
    CID = UbxCID(0x10, 0x14)
    NAME = 'UBX-ESF-ALG'
コード例 #12
0
ファイル: test_cid.py プロジェクト: foxittt/ubxlib
 def test_equal(self):
     c1 = UbxCID(0x05, 0x01)
     c2 = UbxCID(0x05, 0x01)
     assert c1 == c2
コード例 #13
0
ファイル: test_cid.py プロジェクト: foxittt/ubxlib
 def test_print(self):
     c = UbxCID(0x05, 0x01)
     res = str(c)
     assert res == 'cls:05 id:01'
コード例 #14
0
class UbxCfgEsfAlg_(UbxFrame):
    CID = UbxCID(0x06, 0x56)
    NAME = 'UBX-CFG-ESFALG'
コード例 #15
0
ファイル: ubx_mon_ver.py プロジェクト: foxittt/ubxlib
class UbxMonVer_(UbxFrame):
    CID = UbxCID(0x0A, 0x04)
    NAME = 'UBX-MON-VER'
コード例 #16
0
ファイル: test_factory.py プロジェクト: foxittt/ubxlib
    def test_unkown_frame(self, frame_factory):
        frame_factory.register(UbxAckAck)

        with pytest.raises(KeyError):
            m = frame_factory.build(UbxCID(99, 99))
コード例 #17
0
ファイル: test_factory.py プロジェクト: foxittt/ubxlib
 def test_registration(self, frame_factory):
     frame_factory.register(UbxAckAck)
     f1 = frame_factory.build(UbxCID(5, 1))
     assert type(f1) == UbxAckAck
コード例 #18
0
ファイル: ubx_cfg_prt.py プロジェクト: foxittt/ubxlib
class UbxCfgPrt_(UbxFrame):
    CID = UbxCID(0x06, 0x00)
    NAME = 'UBX-CFG-PRT'

    PORTID_Uart = 1
コード例 #19
0
ファイル: ubx_esf_alg.py プロジェクト: foxittt/ubxlib
class UbxEsfResetAlgAction(UbxFrame):
    CID = UbxCID(0x10, 0x13)
    NAME = 'UBX-ESF-RESETALG'

    def __init__(self):
        super().__init__()
コード例 #20
0
class UbxCfgGnss_(UbxFrame):
    CID = UbxCID(0x06, 0x3E)
    NAME = 'UBX-CFG-GNSS'
コード例 #21
0
ファイル: ubx_nav_status.py プロジェクト: foxittt/ubxlib
class UbxNavStatus_(UbxFrame):
    CID = UbxCID(0x01, 0x03)
    NAME = 'UBX-NAV-STATUS'
コード例 #22
0
ファイル: ubx_upd_sos.py プロジェクト: foxittt/ubxlib
class UbxUpdSos_(UbxFrame):
    NAME = 'UBX-UPD-SOS'
    CID = UbxCID(0x09, 0x14)
コード例 #23
0
class UbxMgaIniTimeUtc_(UbxFrame):
    CID = UbxCID(0x13, 0x40)
    NAME = 'UBX-MGA-INI-TIME_UTC'
コード例 #24
0
ファイル: test_cid.py プロジェクト: foxittt/ubxlib
 def test_creation(self):
     c = UbxCID(0x05, 0x01)
     assert c.cls == 0x05
     assert c.id == 0x01
コード例 #25
0
ファイル: ubx_cfg_nmea.py プロジェクト: foxittt/ubxlib
class UbxCfgNmea_(UbxFrame):
    CID = UbxCID(0x06, 0x17)
    NAME = 'UBX-CFG-NMEA'
コード例 #26
0
ファイル: ubx_cfg_cfg.py プロジェクト: foxittt/ubxlib
class UbxCfgCfg_(UbxFrame):
    NAME = 'UBX-CFG-CFG'
    CID = UbxCID(0x06, 0x09)