예제 #1
0
 def test_fsm_state(self):
     msg = TICPMessageAllSensorData.from_sensor_values(tof1_data=10,
                                                       tof2_data=20,
                                                       accelx_data=30,
                                                       accely_data=40,
                                                       speed_data=50,
                                                       servo1_data=60,
                                                       fsm_state=70)
     self.assertEqual(70, msg.fsm_state)
예제 #2
0
    def test_read(self):

        queue = Queue()
        payload = bytes.fromhex("FF00FFFF0000FFFF0000")
        exp_msg = TICPMessageAllSensorData(payload)

        queue.put(exp_msg.command.opcode)
        for block in payload:
            queue.put(block.to_bytes(1, byteorder='big', signed=False))

        serial_mock = _SerialInterfaceMock(queue)
        adapter = _TICPToSerialAdapter(serial_mock)
        act_msg = adapter.read()

        self.assertTrue(exp_msg.command.opcode == act_msg.command.opcode)
        self.assertTrue(exp_msg.payload == exp_msg.payload)
예제 #3
0
    def test_from_sensor_values(self):
        msg = TICPMessageAllSensorData.from_sensor_values(
            255, 0, 32767, 0, 32767, 127, 255)

        expected_payload = _TICPMessageDecoder.convert_from_tof_to_byte(255)
        expected_payload += _TICPMessageDecoder.convert_from_tof_to_byte(0)
        expected_payload += _TICPMessageDecoder.convert_from_accel_to_bytes(
            32767)
        expected_payload += _TICPMessageDecoder.convert_from_accel_to_bytes(0)
        expected_payload += _TICPMessageDecoder.convert_from_speed_to_bytes(
            32767)
        expected_payload += _TICPMessageDecoder.convert_from_servo_to_bytes(
            127)
        expected_payload += _TICPMessageDecoder.convert_from_fsm_to_bytes(255)

        self.assertEqual(expected_payload, msg._payload)
예제 #4
0
    def test_write(self):

        queue = Queue()
        serial_mock = _SerialInterfaceMock(queue)
        adapter = _TICPToSerialAdapter(serial_mock)

        payload = bytes.fromhex("FF00FFFF0000FFFF0000")
        msg = TICPMessageAllSensorData(payload)

        exp_queue = Queue()
        exp_queue.put(msg.command.opcode)
        for block in payload:
            exp_queue.put(block.to_bytes(1, byteorder='big', signed=False))

        adapter.write(msg)

        self.assertEqual(exp_queue.queue, queue.queue)
예제 #5
0
파일: ticp_handler.py 프로젝트: eddex/pren2
    def read(self) -> TICPMessagePrototype:
        opcode_byte = self._serial.read(1)

        try:
            command = TICPCommand(opcode_byte)
            ticp_message_type = self._message_type_factory.get_ticp_message_type_from_command(
                command)
            if ticp_message_type.payload_size != 0:
                payload = self._serial.read(ticp_message_type.payload_size)
            else:
                payload = None

            return TICPMessageAllSensorData(payload)

        except ValueError:
            return TICPMessagePrototype(TICPMessageType.SPC_END_OF_FRAM_MSG,
                                        None)
예제 #6
0
 def test_tof2(self):
     msg = TICPMessageAllSensorData.from_sensor_values(
         255, 0, 32767, 0, 32767, 127, 255)
     self.assertEqual(0, msg.tof2)