Index: leahi_dialin/td/modules/dry_self_test.py =================================================================== diff -u -r791907258a7a4c789451e62745ae6d96f3f0fd24 -refb1d2a271b1b06b7fd133beaa5ab4728e58f610 --- leahi_dialin/td/modules/dry_self_test.py (.../dry_self_test.py) (revision 791907258a7a4c789451e62745ae6d96f3f0fd24) +++ leahi_dialin/td/modules/dry_self_test.py (.../dry_self_test.py) (revision efb1d2a271b1b06b7fd133beaa5ab4728e58f610) @@ -14,13 +14,16 @@ # ############################################################################ -import struct +# Module imports from logging import Logger -from leahi_dialin.common.msg_defs import MsgIds, MsgFieldPositions +# Project imports +from leahi_dialin.common.generic_defs import DataTypes +from leahi_dialin.common.msg_defs import MsgIds from leahi_dialin.common.override_templates import cmd_generic_override -from leahi_dialin.protocols.CAN import DenaliCanMessenger, DenaliChannels -from leahi_dialin.utils.base import AbstractSubSystem, publish +from leahi_dialin.protocols.CAN import CanMessenger, CanChannels +from leahi_dialin.utils.abstract_classes import AbstractSubSystem +from leahi_dialin.utils.base import publish from leahi_dialin.utils.conversions import integer_to_bytearray @@ -29,21 +32,21 @@ Treatment Delivery (TD) Dialin API sub-class for dry self test related commands. """ - def __init__(self, can_interface: DenaliCanMessenger, logger: Logger): + def __init__(self, can_interface: CanMessenger, logger: Logger): """ Dry Self Test constructor - @param can_interface: the Denali CAN interface object + @param can_interface: the CAN interface object """ super().__init__() self.can_interface = can_interface self.logger = logger if self.can_interface is not None: - self.can_interface.register_receiving_publication_function(channel_id = DenaliChannels.td_sync_broadcast_ch_id, + self.can_interface.register_receiving_publication_function(channel_id = CanChannels.td_sync_broadcast_ch_id, message_id = MsgIds.MSG_ID_TD_DRY_SELF_TEST_PROGRESS_DATA.value, function = self._handler_progress_data_sync) - self.can_interface.register_receiving_publication_function(channel_id = DenaliChannels.td_to_ui_ch_id, + self.can_interface.register_receiving_publication_function(channel_id = CanChannels.td_to_ui_ch_id, message_id = MsgIds.MSG_ID_TD_TUBE_SET_AUTHENTICATION_REQUEST.value, function = self._handler_tubing_set_barcode_authentication_request) @@ -64,19 +67,13 @@ @return: None """ msg_list = [] - msg_list.append(['self.substate', 'i']) - msg_list.append(['self.timeout', 'i']) - msg_list.append(['self.countdown', 'i']) - - i = 1 - for sensor in msg_list: - start_pos = eval(f'MsgFieldPositions.START_POS_FIELD_{i}') - end_pos = eval(f'MsgFieldPositions.END_POS_FIELD_{i}') - value = struct.unpack(sensor[1],bytearray(message['message'][start_pos:end_pos]))[0] - if 'nan' in str(value).lower(): - value = 0.0 - exec(f'{sensor[0]} = {value}') - i += 1 + msg_list.append(('self.substate', DataTypes.U32)) + msg_list.append(('self.timeout', DataTypes.U32)) + msg_list.append(('self.countdown', DataTypes.U32)) + + self.process_into_vars(decoder_list = msg_list, + message = message) + self.td_dry_self_test_timestamp = timestamp @@ -109,7 +106,7 @@ return cmd_generic_override( payload = payload, reset = None, - channel_id = DenaliChannels.ui_to_td_ch_id, + channel_id = CanChannels.ui_to_td_ch_id, msg_id = MsgIds.MSG_ID_UI_TUBE_SET_AUTHENTICATION_ACK_RESPONSE, entity_name = f'UI Barcode Authentication Ack response', override_text = f'Valid: {valid_tubing_set}, Accepted: {modality_match}',