diff --git a/python/fusion_engine_client/messages/defs.py b/python/fusion_engine_client/messages/defs.py index 5accb65a..10e5d762 100644 --- a/python/fusion_engine_client/messages/defs.py +++ b/python/fusion_engine_client/messages/defs.py @@ -12,7 +12,7 @@ from .timestamp import * from ..utils import trace as logging from ..utils.construct_utils import construct_message_to_string -from ..utils.enum_utils import IntEnum +from ..utils.enum_utils import IntEnum, lookup_value _logger = logging.getLogger('point_one.fusion_engine.messages.defs') @@ -372,13 +372,10 @@ def unpack(self, buffer: bytes, offset: int = 0, validate_sync: bool = False, va if validate_crc: self.validate_crc(buffer, offset) - try: - self.message_type = MessageType(message_type_int) - except (ValueError, KeyError): - if warn_on_unrecognized: - _logger.log(logging.WARNING if message_type_int < int(MessageType.RESERVED) else logging.DEBUG, - 'Unrecognized message type %d.' % message_type_int) - self.message_type = MessageType(message_type_int, raise_on_unrecognized=False) + self.message_type = lookup_value(MessageType, message_type_int) + if warn_on_unrecognized and self.message_type.is_unrecognized(): + _logger.log(logging.WARNING if message_type_int < int(MessageType.RESERVED) else logging.DEBUG, + 'Unrecognized message type %d.' % message_type_int) if return_sync_bytes: return MessageHeader._SIZE, bytes((sync0, sync1)) diff --git a/python/tests/test_data_loader.py b/python/tests/test_data_loader.py index 423614ce..30d92a04 100644 --- a/python/tests/test_data_loader.py +++ b/python/tests/test_data_loader.py @@ -124,7 +124,7 @@ def _check_message(self, message, expected_message): expected_p1_time = expected_message.get_p1_time() if expected_p1_time is not None: - assert float(message.get_p1_time()) == pytest.approx(expected_p1_time, 1e-6) + assert float(message.get_p1_time()) == pytest.approx(float(expected_p1_time), 1e-6) expected_system_time_sec = expected_message.get_system_time_sec() if expected_system_time_sec is not None: diff --git a/python/tests/test_mixed_log_reader.py b/python/tests/test_mixed_log_reader.py index ec268236..2bd69bf5 100644 --- a/python/tests/test_mixed_log_reader.py +++ b/python/tests/test_mixed_log_reader.py @@ -98,7 +98,7 @@ def _check_message(self, message, expected_message): expected_p1_time = expected_message.get_p1_time() if expected_p1_time is not None: - assert float(message.get_p1_time()) == pytest.approx(expected_p1_time, 1e-6), "P1 time mismatch." + assert float(message.get_p1_time()) == pytest.approx(float(expected_p1_time), 1e-6), "P1 time mismatch." expected_system_time_sec = expected_message.get_system_time_sec() if expected_system_time_sec is not None: