Exemple #1
0
 def testVal2Bytes(self):  # test conversion of value to bytes
     INPUTS = [(2345, ubt.U2), (2345, ubt.E2), (1, ubt.L), (-2346789, ubt.I4), (b'\x44\x55', ubt.X2), (23.12345678, ubt.R4), (-23.12345678912345, ubt.R8)]
     EXPECTED_RESULTS = [b'\x29\x09', b'\x29\x09', b'\x01', b'\xdb\x30\xdc\xff', b'\x44\x55', b'\xd7\xfc\xb8\x41', b'\x1f\xc1\x37\xdd\x9a\x1f\x37\xc0']
     for i, inp in enumerate(INPUTS):
         (val, att) = inp
         res = UBXMessage.val2bytes(val, att)
         self.assertEqual(res, EXPECTED_RESULTS[i])
Exemple #2
0
    def _on_send_port(self, *args, **kwargs):  # pylint: disable=unused-argument
        """
        Handle Send port config button press.
        """

        port = int(self._portid.get()[0:1])
        portID = UBXMessage.val2bytes(port, "U001")
        reserved0 = b"\x00"
        reserved4 = b"\x00\00"
        reserved5 = b"\x00\00"
        txReady = b"\x00\x00"
        if port == 0:  # I2C
            mode = b"\x84\x00\x00\x00"
        elif port == 1:  # UART1
            mode = b"\xc0\x08\x00\x00"
        elif port == 2:  # UART2
            mode = b"\xc0\x08\x00\x00"
        else:
            mode = b"\x00\x00\x00\x00"
        baudRate = UBXMessage.val2bytes(self._baudrate.get(), "U004")
        inprot = (self._inprot_ubx.get() + (self._inprot_nmea.get() << 1) +
                  (self._inprot_rtcm2.get() << 2) +
                  (self._inprot_rtcm3.get() << 5))
        inProtoMask = UBXMessage.val2bytes(inprot, "U002")
        outprot = (self._outprot_ubx.get() + (self._outprot_nmea.get() << 1) +
                   (self._outprot_rtcm3.get() << 5))
        outProtoMask = UBXMessage.val2bytes(outprot, "U002")
        payload = (portID + reserved0 + txReady + mode + baudRate +
                   inProtoMask + outProtoMask + reserved4 + reserved5)
        msg = UBXMessage("CFG", "CFG-PRT", SET, payload=payload)
        self.__app.serial_handler.serial_write(msg.serialize())
        self._lbl_send_command.config(image=self._img_pending)
        self.__container.set_status("CFG-PRT SET message sent", "blue")
        self.__container.set_pending(UBX_CFGPRT, ("ACK-ACK", "ACK-NAK"))

        self._do_poll_prt()