Index: leahi_dialin/common/msg_ids.py =================================================================== diff -u -rb00b17d2ee5eb163b2152ef9d3f0c1db8551a284 -r4fc29aead7deff5ba3ddb4c9e1290fc0d5b2b6e8 --- leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision b00b17d2ee5eb163b2152ef9d3f0c1db8551a284) +++ leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision 4fc29aead7deff5ba3ddb4c9e1290fc0d5b2b6e8) @@ -405,6 +405,7 @@ MSG_ID_DD_CONDUCTIVITY_SENSOR_CAL_RESPONSE = 0xA071 MSG_ID_DD_MIXING_CONTROL_DATA = 0xA072 MSG_ID_DD_MIXING_CONTROL_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA073 + MSG_ID_DD_BICART_DEPRESSURISE_REQUEST_OVERRIDE_REQUEST = 0xA074 # Placeholder messages MSG_ID_DD_ALARM_STATE_OVERRIDE_REQUEST = 0xAF03 MSG_ID_DD_STOP_GEN_DIALYSATE_MODE_OVERRIDE_REQUEST = 0xAF04 Index: leahi_dialin/dd/modules/drybicart.py =================================================================== diff -u -rb00b17d2ee5eb163b2152ef9d3f0c1db8551a284 -r4fc29aead7deff5ba3ddb4c9e1290fc0d5b2b6e8 --- leahi_dialin/dd/modules/drybicart.py (.../drybicart.py) (revision b00b17d2ee5eb163b2152ef9d3f0c1db8551a284) +++ leahi_dialin/dd/modules/drybicart.py (.../drybicart.py) (revision 4fc29aead7deff5ba3ddb4c9e1290fc0d5b2b6e8) @@ -240,3 +240,26 @@ override_text=str(small_large), logger=self.logger, can_interface=self.can_interface) + + def cmd_dry_bicart_depressurise_override(self, depressurise: int, reset: int = NO_RESET) -> int: + """ + Constructs and sends the dry bicart depressurise override command + Constraints: + Must be logged into DD. + + @param depressurise: int - value for depressurise ( depressurise = 1 + @return: 1 if successful, zero otherwise + """ + depressurise = integer_to_bytearray(depressurise) + reset_byte_array = integer_to_bytearray(reset) + payload = reset_byte_array + depressurise + + return cmd_generic_override( + payload=payload, + reset=reset, + channel_id=CanChannels.dialin_to_dd_ch_id, + msg_id=MsgIds.MSG_ID_DD_BICART_DEPRESSURISE_REQUEST_OVERRIDE_REQUEST, + entity_name='Bicart Depressurise', + override_text=str(depressurise), + logger=self.logger, + can_interface=self.can_interface) Index: leahi_dialin/dd/modules/mixing_cntrl.py =================================================================== diff -u -rb00b17d2ee5eb163b2152ef9d3f0c1db8551a284 -r4fc29aead7deff5ba3ddb4c9e1290fc0d5b2b6e8 --- leahi_dialin/dd/modules/mixing_cntrl.py (.../mixing_cntrl.py) (revision b00b17d2ee5eb163b2152ef9d3f0c1db8551a284) +++ leahi_dialin/dd/modules/mixing_cntrl.py (.../mixing_cntrl.py) (revision 4fc29aead7deff5ba3ddb4c9e1290fc0d5b2b6e8) @@ -31,9 +31,9 @@ class DDDialysateMixing(AbstractSubSystem): """ - DryBicart + DialysateMixing - Dialysate Delivery (DD) Dialin API sub-class for Dry Bicart related commands. + Dialysate Delivery (DD) Dialin API sub-class for Dialysate Mixing Control related commands. """ def __init__(self, can_interface: CanMessenger, logger: Logger): @@ -53,8 +53,6 @@ message_id = MsgIds.MSG_ID_DD_MIXING_CONTROL_DATA.value, function = self._handler_mixing_control_sync) - self.dd_dry_bicart_timestamp = 0 #: The timestamp of the last message - self.bicarb_mixing_state = 0 self.bicarb_control_interval = 0 self.acid_mixing_state = 0 @@ -88,27 +86,31 @@ self.acid_ctrl_signal.control_singal_control = 0.0 #TODO remove after final testing - self.dd_dry_bicart_bicarb_kp_gain = 0.0 - self.dd_dry_bicart_bicarb_ki_gain = 0.0 + self.dd_bicarb_kp_gain = 0.0 + self.dd_bicarb_ki_gain = 0.0 #TODO remove after final testing - self.dd_dry_bicart_acid_kp_gain = 0.0 - self.dd_dry_bicart_acid_ki_gain = 0.0 + self.dd_acid_kp_gain = 0.0 + self.dd_acid_ki_gain = 0.0 - self.dd_dialysate_mixing_timestamp = 0 + self.dd_mixing_control_timestamp = 0 #: The timestamp of the last message @publish(["msg_id_dd_mixing_control_data", - "bicarb_dose_vol", "acid_dose_vol", - "bicarb_reference", "bicarb_measured", "bicarb_error ", "bicarb_error_sum", "bicarb_error_sum_after_windup", "bicarb_proportional_output", + "bicarb_mixing_state", "bicarb_control_interval", "acid_mixing_state", "acid_control_interval", + "bicarb_reference", "bicarb_measured", "bicarb_error ", "bicarb_error_sum", + "bicarb_error_sum_after_windup", "bicarb_proportional_output", "bicarb_integral_output", "bicarb_feed_forward_output", "bicarb_control", - "bicarb_kp_gain", "bicarb_ki_gain", - "dd_dry_bicart_timestamp"]) + "acid_reference", "acid_measured", "acid_error ", "acid_error_sum", + "acid_error_sum_after_windup", "acid_proportional_output", + "acid_integral_output", "acid_feed_forward_output", "acid_control", + "bicarb_kp_gain", "bicarb_ki_gain","acid_kp_gain", "acid_ki_gain", + "dd_mixing_control_timestamp"]) def _handler_mixing_control_sync(self, message, timestamp=0.0): """ - Handles published dry bicart data messages. + Handles published mixing control data messages. - @param message: published dry bicart data message + @param message: published mixing control data message @return: None """ msg_list = [] @@ -143,21 +145,21 @@ msg_list.append(('self.acid_ctrl_signal.control_signal_feed_forward_output', DataTypes.F32)) msg_list.append(('self.acid_ctrl_signal.control_singal_control', DataTypes.F32)) - msg_list.append(('self.dd_dry_bicart_bicarb_kp_gain', DataTypes.F32)) - msg_list.append(('self.dd_dry_bicart_bicarb_ki_gain', DataTypes.F32)) + msg_list.append(('self.dd_bicarb_kp_gain', DataTypes.F32)) + msg_list.append(('self.dd_bicarb_ki_gain', DataTypes.F32)) - msg_list.append(('self.dd_dry_bicart_acid_kp_gain', DataTypes.F32)) - msg_list.append(('self.dd_dry_bicart_acid_ki_gain', DataTypes.F32)) + msg_list.append(('self.dd_acid_kp_gain', DataTypes.F32)) + msg_list.append(('self.dd_acid_ki_gain', DataTypes.F32)) self.process_into_vars(decoder_list = msg_list, message = message) - self.dd_dialysate_mixing_timestamp = timestamp + self.dd_mixing_control_timestamp = timestamp def cmd_dialysate_mixing_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: """ - Constructs and sends the dry bicart data broadcast interval override command + Constructs and sends the mixing control data broadcast interval override command Constraints: Must be logged into DD. Given interval must be non-zero and a multiple of the DD general task interval (50 ms). @@ -171,64 +173,64 @@ reset=reset, channel_id=CanChannels.dialin_to_dd_ch_id, msg_id=MsgIds.MSG_ID_DD_MIXING_CONTROL_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST, - module_name='DD Dry Bicart', + module_name='DD Mixing Control', logger=self.logger, can_interface=self.can_interface) - def cmd_dialysate_mixing_bicarb_dose_vol_control_override(self, bicarb_dose_vol: float, reset: int = NO_RESET) -> int: + def cmd_mixing_control_bicarb_mix_vol_override(self, bicarb_mix_vol: float, reset: int = NO_RESET) -> int: """ - Constructs and sends the dry bicart bicarb dose vol override command + Constructs and sends the bicarb mix vol override command Constraints: Must be logged into DD. - @param bicarb_dose_vol: float - bicarb_dose_vol value to override bicarb dose vol + @param bicarb_mix_vol: float - bicarb_mix_vol value to override bicarb mix vol @param reset: integer - 1 to reset a previous override, 0 to override @return: 1 if successful, zero otherwise """ - bicarb_dose = float_to_bytearray(bicarb_dose_vol) + bicarb_mix = float_to_bytearray(bicarb_mix_vol) reset_byte_array = integer_to_bytearray(reset) - payload = reset_byte_array + bicarb_dose + payload = reset_byte_array + bicarb_mix return cmd_generic_override( payload=payload, reset=reset, channel_id=CanChannels.dialin_to_dd_ch_id, - msg_id=MsgIds.MSG_ID_DD_BICARB_DOSE_VOL_CONTROL_OVERRIDE_REQUEST, - entity_name='bicarb dose vol', + msg_id=MsgIds.MSG_ID_DD_BICARB_MIX_VOL_OVERRIDE_REQUEST, + entity_name='DD Bicarb Mix Vol', override_text=str(bicarb_dose_vol), logger=self.logger, can_interface=self.can_interface) - def cmd_dialysate_mixing_acid_dose_vol_control_override(self, acid_dose_vol: float, reset: int = NO_RESET) -> int: + def cmd_mixing_control_acid_mix_vol_override(self, acid_mix_vol: float, reset: int = NO_RESET) -> int: """ - Constructs and sends the dry bicart acid dose vol override command + Constructs and sends the mixing control acid mix vol override command Constraints: Must be logged into DD. - @param acid_dose_vol: float - acid_dose_vol value to override acid dose vol + @param acid_mix_vol: float - acid_mix_vol value to override acid mix vol @param reset: integer - 1 to reset a previous override, 0 to override @return: 1 if successful, zero otherwise """ - acid_dose = float_to_bytearray(acid_dose_vol) + acid_mix = float_to_bytearray(acid_mix_vol) reset_byte_array = integer_to_bytearray(reset) - payload = reset_byte_array + acid_dose + payload = reset_byte_array + acid_mix return cmd_generic_override( payload=payload, reset=reset, channel_id=CanChannels.dialin_to_dd_ch_id, - msg_id=MsgIds.MSG_ID_DD_ACID_DOSE_VOL_CONTROL_OVERRIDE_REQUEST, - entity_name='acid dose vol', - override_text=str(acid_dose_vol), + msg_id=MsgIds.MSG_ID_DD_ACID_MIX_VOL_OVERRIDE_REQUEST, + entity_name='DD Acid Mix Vol', + override_text=str(acid_mix_vol), logger=self.logger, can_interface=self.can_interface) - def cmd_dialysate_mixing_bicarb_dose_vol_control_kp_gain_coeff_override(self, bicarb_kp_coeff: float, reset: int = NO_RESET) -> int: + def cmd_mixing_control_bicarb_mix_vol_kp_gain_coeff_override(self, bicarb_kp_coeff: float, reset: int = NO_RESET) -> int: """ - Constructs and sends the dry bicart bicarb kp coeff override command + Constructs and sends the mixing control bicarb kp coeff override command Constraints: Must be logged into DD. @@ -244,16 +246,16 @@ payload=payload, reset=reset, channel_id=CanChannels.dialin_to_dd_ch_id, - msg_id=MsgIds.MSG_ID_DD_BICARB_DOSE_VOL_CONTROL_KP_GAIN_COEFF_OVERRIDE_REQUEST, - entity_name='bicarb kp gain coeff', + msg_id=MsgIds.MSG_ID_DD_BICARB_MIX_VOL_KP_GAIN_COEFF_OVERRIDE_REQUEST, + entity_name='DD Bicarb KP Gain Coeff', override_text=str(bicarb_kp_coeff), logger=self.logger, can_interface=self.can_interface) - def cmd_dialysate_mixing_bicarb_dose_vol_control_ki_gain_coeff_override(self, bicarb_ki_coeff: float, reset: int = NO_RESET) -> int: + def cmd_mixing_control_bicarb_mix_vol_ki_gain_coeff_override(self, bicarb_ki_coeff: float, reset: int = NO_RESET) -> int: """ - Constructs and sends the dry bicart bicarb ki coeff override command + Constructs and sends the mixing control bicarb ki coeff override command Constraints: Must be logged into DD. @@ -269,16 +271,16 @@ payload=payload, reset=reset, channel_id=CanChannels.dialin_to_dd_ch_id, - msg_id=MsgIds.MSG_ID_DD_BICARB_DOSE_VOL_CONTROL_KI_GAIN_COEFF_OVERRIDE_REQUEST, - entity_name='bicarb ki gain coeff', + msg_id=MsgIds.MSG_ID_DD_BICARB_MIX_VOL_KI_GAIN_COEFF_OVERRIDE_REQUEST, + entity_name='DD Bicarb KI Gain Coeff', override_text=str(bicarb_ki_coeff), logger=self.logger, can_interface=self.can_interface) - def cmd_dialysate_mixing_acid_dose_vol_control_kp_gain_coeff_override(self, acid_kp_coeff: float, reset: int = NO_RESET) -> int: + def cmd_mixing_control_acid_mix_vol_control_kp_gain_coeff_override(self, acid_kp_coeff: float, reset: int = NO_RESET) -> int: """ - Constructs and sends the dry bicart acid kp coeff override command + Constructs and sends the Mixing Control acid kp coeff override command Constraints: Must be logged into DD. @@ -294,16 +296,16 @@ payload=payload, reset=reset, channel_id=CanChannels.dialin_to_dd_ch_id, - msg_id=MsgIds.MSG_ID_DD_ACID_DOSE_VOL_CONTROL_KP_GAIN_COEFF_OVERRIDE_REQUEST, - entity_name='acid kp gain coeff', + msg_id=MsgIds.MSG_ID_DD_ACID_MIX_VOL_KP_GAIN_COEFF_OVERRIDE_REQUEST, + entity_name='DD Acid KP Gain Coeff', override_text=str(acid_kp_coeff), logger=self.logger, can_interface=self.can_interface) - def cmd_dialysate_mixing_acid_dose_vol_control_ki_gain_coeff_override(self, acid_ki_coeff: float, reset: int = NO_RESET) -> int: + def cmd_mixing_control_acid_mix_vol_control_ki_gain_coeff_override(self, acid_ki_coeff: float, reset: int = NO_RESET) -> int: """ - Constructs and sends the dry bicart acid ki coeff override command + Constructs and sends the Mixing Control acid ki coeff override command Constraints: Must be logged into DD. @@ -319,24 +321,24 @@ payload=payload, reset=reset, channel_id=CanChannels.dialin_to_dd_ch_id, - msg_id=MsgIds.MSG_ID_DD_ACID_DOSE_VOL_CONTROL_KI_GAIN_COEFF_OVERRIDE_REQUEST, - entity_name='acid ki gain coeff', + msg_id=MsgIds.MSG_ID_DD_ACID_MIX_VOL_KI_GAIN_COEFF_OVERRIDE_REQUEST, + entity_name='DD Acid KI Gain Coeff', override_text=str(acid_ki_coeff), logger=self.logger, can_interface=self.can_interface) - def cmd_dialysate_mixing_target_conductivity_override(self, conductivity: float, reset: int = NO_RESET) -> int: + def cmd_mixing_control_bicarb_target_conductivity_override(self, bicarb_conductivity: float, reset: int = NO_RESET) -> int: """ - Constructs and sends the dry bicart target conductivity override command + Constructs and sends the Mixing Control bicarb target conductivity override command Constraints: Must be logged into DD. - @param conductivity: float - conductivity value to override target conductivity + @param bicarb_conductivity: float - conductivity value to override target conductivity @param reset: integer - 1 to reset a previous override, 0 to override @return: 1 if successful, zero otherwise """ - target_conductivity = float_to_bytearray(conductivity) + target_conductivity = float_to_bytearray(bicarb_conductivity) reset_byte_array = integer_to_bytearray(reset) payload = reset_byte_array + target_conductivity @@ -345,23 +347,23 @@ reset=reset, channel_id=CanChannels.dialin_to_dd_ch_id, msg_id=MsgIds.MSG_ID_DD_BICARB_TARGET_CONDUCTIVITY_OVERRIDE_REQUEST, - entity_name='target conductivity', - override_text=str(conductivity), + entity_name='DD Bicarb Target Conductivity', + override_text=str(bicarb_conductivity), logger=self.logger, can_interface=self.can_interface) - def cmd_dialysate_mixing_delta_conductivity_override(self, conductivity: float, reset: int = NO_RESET) -> int: + def cmd_mixing_control_bicarb_delta_conductivity_override(self, bicarb_delta_conductivity: float, reset: int = NO_RESET) -> int: """ - Constructs and sends the dry bicart target conductivity override command + Constructs and sends the Mixing Control bicart delta conductivity override command Constraints: Must be logged into DD. - @param conductivity: float - bicarb delta conductivity value to override delta conductivity + @param bicarb_delta_conductivity: float - bicarb delta conductivity value to override delta conductivity @param reset: integer - 1 to reset a previous override, 0 to override @return: 1 if successful, zero otherwise """ - delta_conductivity = float_to_bytearray(conductivity) + delta_conductivity = float_to_bytearray(bicarb_delta_conductivity) reset_byte_array = integer_to_bytearray(reset) payload = reset_byte_array + delta_conductivity @@ -370,7 +372,7 @@ reset=reset, channel_id=CanChannels.dialin_to_dd_ch_id, msg_id=MsgIds.MSG_ID_DD_BICARB_DELTA_CONDUCTIVITY_OVERRIDE_REQUEST, - entity_name='delta conductivity', - override_text=str(conductivity), + entity_name='DD Bicarb Delta Conductivity', + override_text=str(bicarb_delta_conductivity), logger=self.logger, can_interface=self.can_interface)