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)
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)
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)
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)
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)
def test_tof2(self): msg = TICPMessageAllSensorData.from_sensor_values( 255, 0, 32767, 0, 32767, 127, 255) self.assertEqual(0, msg.tof2)