Index: leahi_dialin/common/msg_ids.py =================================================================== diff -u -r751b1bb4ee6800ca4cf05bd206c830bf741109e4 -rc53ee66322d78c6c7558731de102424108b480a0 --- leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision 751b1bb4ee6800ca4cf05bd206c830bf741109e4) +++ leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision c53ee66322d78c6c7558731de102424108b480a0) @@ -262,7 +262,7 @@ MSG_ID_TD_EJECTOR_OPT_SENSOR_OVERRIDE_REQUEST = 0x8044 MSG_ID_TD_ENABLE_VENOUS_BUBBLE_ALARM = 0x8047 MSG_ID_TD_SYRINGE_PUMP_OPERATION_REQUEST = 0x8048 - MSG_ID_HD_SYRINGE_PUMP_PUBLISH_INTERVAL_OVERRIDE = 0x8049 + MSG_ID_TD_SYRINGE_PUMP_PUBLISH_INTERVAL_OVERRIDE = 0x8049 MSG_ID_TD_SYRINGE_PUMP_RATE_OVERRIDE_REQUEST = 0x8050 MSG_ID_TD_SYRINGE_PUMP_FORCE_OVERRIDE_REQUEST = 0x8051 MSG_ID_TD_SYRINGE_PUMP_HOME_OVERRIDE_REQUEST = 0x8052 Index: leahi_dialin/td/modules/syringe_pump.py =================================================================== diff -u -r751b1bb4ee6800ca4cf05bd206c830bf741109e4 -rc53ee66322d78c6c7558731de102424108b480a0 --- leahi_dialin/td/modules/syringe_pump.py (.../syringe_pump.py) (revision 751b1bb4ee6800ca4cf05bd206c830bf741109e4) +++ leahi_dialin/td/modules/syringe_pump.py (.../syringe_pump.py) (revision c53ee66322d78c6c7558731de102424108b480a0) @@ -19,12 +19,12 @@ from leahi_dialin.common.constants import RESET, NO_RESET from leahi_dialin.common.td_defs import TDTreaHeparinStates, TDTreaSyringePumpStates, SyringePumpOperations from leahi_dialin.common.msg_defs import MsgIds, MsgFieldPositions +from leahi_dialin.common.override_templates import cmd_generic_broadcast_interval_override, cmd_generic_override from leahi_dialin.protocols.CAN import DenaliMessage, DenaliChannels from leahi_dialin.utils.base import AbstractSubSystem, publish from leahi_dialin.utils.checks import check_broadcast_interval_override_ms from leahi_dialin.utils.conversions import integer_to_bytearray, float_to_bytearray - class TDSyringePump(AbstractSubSystem): """ TDSyringePump @@ -47,149 +47,22 @@ self.can_interface.register_receiving_publication_function(channel_id, msg_id, self._handler_syringe_pump_data) - self.syringe_pump_state = TDTreaSyringePumpStates.SYRINGE_PUMP_INIT_STATE.value - self.heparin_state = TDTreaHeparinStates.HEPARIN_STATE_OFF.value - self.syringe_pump_set_rate_ml_hr = 0.0 - self.syringe_pump_meas_rate_ml_hr = 0.0 - self.syringe_pump_position = 0 - self.syringe_pump_volume_ml = 0.0 - self.syringe_pump_safety_volume_ml = 0.0 - self.syringe_pump_home_v = 0.0 - self.syringe_pump_switch_v = 0.0 - self.syringe_pump_force_v = 0.0 - self.syringe_pump_status = 0 - self.syringe_pump_encoder_status = 0 - self.syringe_pump_adc_dac_status = 0 - self.syringe_pump_adc_read_counter = 0 - self.td_syringe_pump_timestamp = 0.0 + self.syringe_pump_state = TDTreaSyringePumpStates.SYRINGE_PUMP_INIT_STATE.value #: current syringe pump state + self.heparin_state = TDTreaHeparinStates.HEPARIN_STATE_OFF.value #: current heparin state + self.syringe_pump_set_rate_ml_hr = 0.0 #: current set syringe pump rate. + self.syringe_pump_meas_rate_ml_hr = 0.0 #: current measured syringe pump rate. + self.syringe_pump_position = 0 #: current syringe pump position. + self.syringe_pump_volume_ml = 0.0 #: current syringe pump volume delivered in ml. + self.syringe_pump_safety_volume_ml = 0.0 #: current syringe pump safety volume reading + self.syringe_pump_home_v = 0.0 #: current syringe pump home voltage reading + self.syringe_pump_switch_v = 0.0 #: current syringe pump switch voltage reading + self.syringe_pump_force_v = 0.0 #: current syringe pump force voltage reading + self.syringe_pump_status = 0 #: current syringe pump status + self.syringe_pump_encoder_status = 0 #: current syringe pump encoder status + self.syringe_pump_adc_dac_status = 0 #: current syringe pump ADC & DAC status + self.syringe_pump_adc_read_counter = 0 #: current syringe pump ADC read counter + self.td_syringe_pump_timestamp = 0.0 #: The timestamp of the syringe pump message - def get_syringe_pump_state(self): - """ - Gets the current syringe pump state. - - @return: latest published syringe pump state. - SYRINGE_PUMP_INIT_STATE = 0 - SYRINGE_PUMP_OFF_STATE = 1 - SYRINGE_PUMP_RETRACT_STATE = 2 - SYRINGE_PUMP_SEEK_STATE = 3 - SYRINGE_PUMP_PRIME_STATE = 4 - SYRINGE_PUMP_HEP_BOLUS_STATE = 5 - SYRINGE_PUMP_HEP_CONTINUOUS_STATE = 6 - SYRINGE_PUMP_CONFIG_FORCE_SENSOR_STATE = 7 - """ - return self.syringe_pump_state - - def get_heparin_state(self): - """ - Gets the current Heparin state. - - @return: latest published Heparin state. - HEPARIN_STATE_OFF = 0 - HEPARIN_STATE_STOPPED = 1 - HEPARIN_STATE_PAUSED = 2 - HEPARIN_STATE_INITIAL_BOLUS = 3 - HEPARIN_STATE_DISPENSING = 4 - HEPARIN_STATE_COMPLETED = 5 - HEPARIN_STATE_EMPTY = 6 - """ - return self.heparin_state - - def get_syringe_pump_set_rate(self): - """ - Gets the current set syringe pump rate. - - @return: latest published syringe pump set rate (in mL/hr). - """ - return self.syringe_pump_set_rate_ml_hr - - def get_syringe_pump_meas_rate(self): - """ - Gets the current measured syringe pump rate. - - @return: latest published syringe pump measured rate (in mL/hr). - """ - return self.syringe_pump_meas_rate_ml_hr - - def get_syringe_pump_position(self): - """ - Gets the current syringe pump position. - - @return: latest published syringe pump position (in encoder counts). - """ - return self.syringe_pump_position - - def get_syringe_pump_volume_delivered_ml(self): - """ - Gets the current syringe pump volume delivered. - - @return: latest published syringe pump volume delivered (in mL). - """ - return self.syringe_pump_volume_ml - - def get_syringe_pump_home_v(self): - """ - Gets the current syringe pump home voltage reading - - @return: latest published voltage read from the home optical sensor - """ - return self.syringe_pump_home_v - - def get_syringe_pump_switch_v(self): - """ - Gets the current syringe pump switch voltage reading - - @return: latest published voltage read from the syringe detection switch - """ - return self.syringe_pump_switch_v - - def get_syringe_pump_force_v(self): - """ - Gets the current syringe pump force voltage reading - - @return: latest published voltage read from the force sensor - """ - return self.syringe_pump_force_v - - def get_syringe_pump_safety_volume(self): - """ - Gets the current syringe pump safety volume reading - - @return: latest published safety volume calculated by TD firmware - """ - return self.syringe_pump_safety_volume_ml - - def get_syringe_pump_status(self): - """ - Gets the current syringe pump status - - @return: latest published syringe pump status by TD firmware - """ - return self.syringe_pump_status - - def get_syringe_pump_encoder_status(self): - """ - Gets the current syringe pump encoder status - - @return: latest published syringe pump encoder status by TD firmware - """ - return self.syringe_pump_encoder_status - - def get_syringe_pump_adc_dac_status(self): - """ - Gets the current syringe pump ADC & DAC status - - @return: latest published syringe pump ADC & DAC status by TD firmware - """ - return self.syringe_pump_adc_dac_status - - def get_syringe_pump_adc_read_counter(self): - """ - Gets the current syringe pump ADC read counter - - @return: latest published ADC read counter by TD firmware - """ - return self.syringe_pump_adc_read_counter - @publish(["td_syringe_pump_timestamp", "syringe_pump_state", "syringe_pump_set_rate_ml_hr", "syringe_pump_meas_rate_ml_hr", "syringe_pump_position", @@ -282,26 +155,17 @@ vol = float_to_bytearray(volume) payload = op + rat + vol - message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_td_ch_id, - message_id=MsgIds.MSG_ID_TD_SYRINGE_PUMP_OPERATION_REQUEST.value, - payload=payload) + return cmd_generic_override( + payload = payload, + reset = NO_RESET, + channel_id = DenaliChannels.dialin_to_td_ch_id, + msg_id = MsgIds.MSG_ID_TD_SYRINGE_PUMP_OPERATION_REQUEST, + entity_name = f'TD Syringe Pump Operation', + override_text = f'{operation} ', + logger = self.logger, + can_interface = self.can_interface) - self.logger.debug("requesting syringe pump operation " + str(operation) + - ", rate=" + str(rate) + - ", volume=" + str(volume)) - # Send message - received_message = self.can_interface.send(message) - - # If there is content... - if received_message is not None: - # response payload is OK or not OK - return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] - else: - self.logger.debug("Timeout!!!!") - return False - - def cmd_syringe_pump_data_broadcast_interval_override(self, ms: int = 1000, reset: int = NO_RESET) -> int: """ Constructs and sends the syringe pump data broadcast interval override command @@ -314,37 +178,16 @@ @return: 1 if successful, zero otherwise """ - if not check_broadcast_interval_override_ms(ms): - return False + return cmd_generic_broadcast_interval_override( + ms = ms, + reset = reset, + channel_id = DenaliChannels.dialin_to_td_ch_id, + msg_id = MsgIds.MSG_ID_HD_SYRINGE_PUMP_PUBLISH_INTERVAL_OVERRIDE, + module_name = 'TD Syringe Pump', + logger = self.logger, + can_interface = self.can_interface) - rst = integer_to_bytearray(reset) - mis = integer_to_bytearray(ms) - payload = rst + mis - message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_td_ch_id, - message_id=MsgIds.MSG_ID_HD_SYRINGE_PUMP_PUBLISH_INTERVAL_OVERRIDE.value, - payload=payload) - - self.logger.debug("override TD syringe pump data broadcast interval") - - # Send message - received_message = self.can_interface.send(message) - - # If there is content... - if received_message is not None: - if reset == RESET: - str_res = "reset back to normal: " - else: - str_res = str(ms) + " ms: " - self.logger.debug("Syringe pump data broadcast interval overridden to " + str_res + - str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # response payload is OK or not OK - return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] - else: - self.logger.debug("Timeout!!!!") - return False - - def cmd_syringe_pump_meas_rate_override(self, rate: float = 0.0, reset: int = NO_RESET) -> int: """ Constructs and sends the syringe pump measured rate override command @@ -360,30 +203,17 @@ rat = float_to_bytearray(rate) payload = rst + rat - message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_td_ch_id, - message_id=MsgIds.MSG_ID_TD_SYRINGE_PUMP_RATE_OVERRIDE_REQUEST.value, - payload=payload) + return cmd_generic_override( + payload = payload, + reset = NO_RESET, + channel_id = DenaliChannels.dialin_to_td_ch_id, + msg_id = MsgIds.MSG_ID_TD_SYRINGE_PUMP_RATE_OVERRIDE_REQUEST, + entity_name = f'Override TD syringe pump measured rate', + override_text = f'{rate} ', + logger = self.logger, + can_interface = self.can_interface) - self.logger.debug("override TD syringe pump measured rate") - # Send message - received_message = self.can_interface.send(message) - - # If there is content... - if received_message is not None: - if reset == RESET: - str_res = "reset back to normal: " - else: - str_res = str(rate) + " mL/hr: " - self.logger.debug("Syringe pump measured rate overridden to " + str_res + - str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # response payload is OK or not OK - return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] - else: - self.logger.debug("Timeout!!!!") - return False - - def cmd_syringe_pump_meas_force_override(self, volts: float = 0.0, reset: int = NO_RESET) -> int: """ Constructs and sends the syringe pump measured force override command @@ -399,30 +229,17 @@ vol = float_to_bytearray(volts) payload = rst + vol - message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_td_ch_id, - message_id=MsgIds.MSG_ID_TD_SYRINGE_PUMP_FORCE_OVERRIDE_REQUEST.value, - payload=payload) + return cmd_generic_override( + payload = payload, + reset = NO_RESET, + channel_id = DenaliChannels.dialin_to_td_ch_id, + msg_id = MsgIds.MSG_ID_TD_SYRINGE_PUMP_FORCE_OVERRIDE_REQUEST, + entity_name = f'Override TD syringe pump measured force', + override_text = f'{volts} ', + logger = self.logger, + can_interface = self.can_interface) - self.logger.debug("override TD syringe pump measured force") - # Send message - received_message = self.can_interface.send(message) - - # If there is content... - if received_message is not None: - if reset == RESET: - str_res = "reset back to normal: " - else: - str_res = str(volts) + " volts: " - self.logger.debug("Syringe pump measured force overridden to " + str_res + - str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # response payload is OK or not OK - return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] - else: - self.logger.debug("Timeout!!!!") - return False - - def cmd_syringe_pump_meas_home_override(self, volts: float = 0.0, reset: int = NO_RESET) -> int: """ Constructs and sends the syringe pump measured home override command @@ -438,30 +255,17 @@ vol = float_to_bytearray(volts) payload = rst + vol - message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_td_ch_id, - message_id=MsgIds.MSG_ID_TD_SYRINGE_PUMP_HOME_OVERRIDE_REQUEST.value, - payload=payload) + return cmd_generic_override( + payload = payload, + reset = NO_RESET, + channel_id = DenaliChannels.dialin_to_td_ch_id, + msg_id = MsgIds.MSG_ID_TD_SYRINGE_PUMP_HOME_OVERRIDE_REQUEST, + entity_name = f'Override TD syringe pump measured home', + override_text = f'{volts} ', + logger = self.logger, + can_interface = self.can_interface) - self.logger.debug("override TD syringe pump measured home") - # Send message - received_message = self.can_interface.send(message) - - # If there is content... - if received_message is not None: - if reset == RESET: - str_res = "reset back to normal: " - else: - str_res = str(volts) + " volts: " - self.logger.debug("Syringe pump measured home overridden to " + str_res + - str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # response payload is OK or not OK - return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] - else: - self.logger.debug("Timeout!!!!") - return False - - def cmd_syringe_pump_meas_position_override(self, position: int = 0, reset: int = NO_RESET) -> int: """ Constructs and sends the syringe pump measured position override command @@ -477,30 +281,17 @@ pos = integer_to_bytearray(position) payload = rst + pos - message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_td_ch_id, - message_id=MsgIds.MSG_ID_TD_SYRINGE_PUMP_POSITION_OVERRIDE_REQUEST.value, - payload=payload) + return cmd_generic_override( + payload = payload, + reset = NO_RESET, + channel_id = DenaliChannels.dialin_to_td_ch_id, + msg_id = MsgIds.MSG_ID_TD_SYRINGE_PUMP_POSITION_OVERRIDE_REQUEST, + entity_name = f'Override TD syringe pump measured position', + override_text = f'{position} ', + logger = self.logger, + can_interface = self.can_interface) - self.logger.debug("override TD syringe pump measured position") - # Send message - received_message = self.can_interface.send(message) - - # If there is content... - if received_message is not None: - if reset == RESET: - str_res = "reset back to normal: " - else: - str_res = str(position) + " encoder counts: " - self.logger.debug("Syringe pump measured position overridden to " + str_res + - str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # response payload is OK or not OK - return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] - else: - self.logger.debug("Timeout!!!!") - return False - - def cmd_syringe_pump_meas_volume_override(self, volume: float = 0.0, reset: int = NO_RESET) -> int: """ Constructs and sends the syringe pump measured volume override command @@ -516,30 +307,17 @@ vol = float_to_bytearray(volume) payload = rst + vol - message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_td_ch_id, - message_id=MsgIds.MSG_ID_TD_SYRINGE_PUMP_VOLUME_OVERRIDE_REQUEST.value, - payload=payload) + return cmd_generic_override( + payload = payload, + reset = NO_RESET, + channel_id = DenaliChannels.dialin_to_td_ch_id, + msg_id = MsgIds.MSG_ID_TD_SYRINGE_PUMP_VOLUME_OVERRIDE_REQUEST, + entity_name = f'Override TD syringe pump volume delivered', + override_text = f'{volume} ', + logger = self.logger, + can_interface = self.can_interface) - self.logger.debug("override TD syringe pump measured volume delivered") - # Send message - received_message = self.can_interface.send(message) - - # If there is content... - if received_message is not None: - if reset == RESET: - str_res = "reset back to normal: " - else: - str_res = str(volume) + " mL: " - self.logger.debug("Syringe pump measured volume overridden to " + str_res + - str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # response payload is OK or not OK - return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] - else: - self.logger.debug("Timeout!!!!") - return False - - def cmd_syringe_pump_status_override(self, status: int = 0, reset: int = NO_RESET) -> int: """ Constructs and sends the syringe pump status override command @@ -555,30 +333,17 @@ sts = integer_to_bytearray(status & 0x000000FF) payload = rst + sts - message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_td_ch_id, - message_id=MsgIds.MSG_ID_TD_SYRINGE_PUMP_STATUS_OVERRIDE_REQUEST.value, - payload=payload) + return cmd_generic_override( + payload = payload, + reset = NO_RESET, + channel_id = DenaliChannels.dialin_to_td_ch_id, + msg_id = MsgIds.MSG_ID_TD_SYRINGE_PUMP_STATUS_OVERRIDE_REQUEST, + entity_name = f'Override TD syringe pump status', + override_text = f'{status} ', + logger = self.logger, + can_interface = self.can_interface) - self.logger.debug("override TD syringe pump status") - # Send message - received_message = self.can_interface.send(message) - - # If there is content... - if received_message is not None: - if reset == RESET: - str_res = "reset back to normal: " - else: - str_res = str(status) - self.logger.debug("Syringe pump status overridden to " + str_res + - str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # response payload is OK or not OK - return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] - else: - self.logger.debug("Timeout!!!!") - return False - - def cmd_syringe_pump_encoder_status_override(self, status: int = 0, reset: int = NO_RESET) -> int: """ Constructs and sends the syringe pump encoder status override command @@ -594,30 +359,17 @@ sts = integer_to_bytearray(status & 0x000000FF) payload = rst + sts - message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_td_ch_id, - message_id=MsgIds.MSG_ID_TD_SYRINGE_PUMP_ENCODER_STATUS_OVERRIDE_REQUEST.value, - payload=payload) + return cmd_generic_override( + payload = payload, + reset = NO_RESET, + channel_id = DenaliChannels.dialin_to_td_ch_id, + msg_id = MsgIds.MSG_ID_TD_SYRINGE_PUMP_ENCODER_STATUS_OVERRIDE_REQUEST, + entity_name = f'Override TD syringe pump encoder status', + override_text = f'{status} ', + logger = self.logger, + can_interface = self.can_interface) - self.logger.debug("override TD syringe pump encoder status") - # Send message - received_message = self.can_interface.send(message) - - # If there is content... - if received_message is not None: - if reset == RESET: - str_res = "reset back to normal: " - else: - str_res = str(status) - self.logger.debug("Syringe pump encoder status overridden to " + str_res + - str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # response payload is OK or not OK - return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] - else: - self.logger.debug("Timeout!!!!") - return False - - def cmd_syringe_pump_adc_dac_status_override(self, status: int = 0, reset: int = NO_RESET) -> int: """ Constructs and sends the syringe pump ADC & DAC status override command @@ -633,30 +385,17 @@ sts = integer_to_bytearray(status & 0x000000FF) payload = rst + sts - message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_td_ch_id, - message_id=MsgIds.MSG_ID_TD_SYRINGE_PUMP_ADC_DAC_STATUS_OVERRIDE_REQUEST.value, - payload=payload) + return cmd_generic_override( + payload=payload, + reset=NO_RESET, + channel_id=DenaliChannels.dialin_to_td_ch_id, + msg_id=MsgIds.MSG_ID_TD_SYRINGE_PUMP_ADC_DAC_STATUS_OVERRIDE_REQUEST, + entity_name=f'Override TD syringe pump ADC & DAC status', + override_text=f'{status} ', + logger=self.logger, + can_interface=self.can_interface) - self.logger.debug("override TD syringe pump ADC & DAC status") - # Send message - received_message = self.can_interface.send(message) - - # If there is content... - if received_message is not None: - if reset == RESET: - str_res = "reset back to normal: " - else: - str_res = str(status) - self.logger.debug("Syringe pump ADC & DAC status overridden to " + str_res + - str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # response payload is OK or not OK - return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] - else: - self.logger.debug("Timeout!!!!") - return False - - def cmd_syringe_pump_adc_read_counter_override(self, counter: int = 0, reset: int = NO_RESET) -> int: """ Constructs and sends the syringe pump ADC read counter override command @@ -672,29 +411,17 @@ ctr = integer_to_bytearray(counter & 0x000000FF) payload = rst + ctr - message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_td_ch_id, - message_id=MsgIds.MSG_ID_TD_SYRINGE_PUMP_ADC_READ_COUNTER_OVERRIDE_REQUEST.value, - payload=payload) + return cmd_generic_override( + payload=payload, + reset=NO_RESET, + channel_id=DenaliChannels.dialin_to_td_ch_id, + msg_id=MsgIds.MSG_ID_TD_SYRINGE_PUMP_ADC_READ_COUNTER_OVERRIDE_REQUEST, + entity_name=f'Override TD syringe pump ADC read counter', + override_text=f'{counter} ', + logger=self.logger, + can_interface=self.can_interface) - self.logger.debug("override TD syringe pump ADC read counter") - # Send message - received_message = self.can_interface.send(message) - - # If there is content... - if received_message is not None: - if reset == RESET: - str_res = "reset back to normal: " - else: - str_res = str(counter) - self.logger.debug("Syringe pump ADC read counter overridden to " + str_res + - str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # response payload is OK or not OK - return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] - else: - self.logger.debug("Timeout!!!!") - return False - def cmd_set_syringe_pump_dac_ref_voltage_override(self) -> int: """ Constructs and sends the set syringe pump DAC vRef. The value the DAC is set to is within TD Calibration Record. @@ -737,18 +464,12 @@ vlu = float_to_bytearray(rate) # TD expects the rate in mL/hour payload = reset_value + vlu - message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_td_ch_id, - message_id=MsgIds.MSG_ID_TD_HEPARIN_BOLUS_TARGET_RATE_OVERRIDE_REQUEST.value, - payload=payload) - self.logger.debug("Overriding heparin bolus target rate value override") - - # Send message - received_message = self.can_interface.send(message) - - # If there is content... - if received_message is not None: - # response payload is OK or not OK - return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] - else: - self.logger.debug("Heparin bolus target value override Timeout!!!") - return False + return cmd_generic_override( + payload=payload, + reset=NO_RESET, + channel_id=DenaliChannels.dialin_to_td_ch_id, + msg_id=MsgIds.MSG_ID_TD_HEPARIN_BOLUS_TARGET_RATE_OVERRIDE_REQUEST, + entity_name=f'Override TD heparin bolus target rate value override"', + override_text=f'{rate} ', + logger=self.logger, + can_interface=self.can_interface)