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])
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()