Index: leahi_dialin/td/modules/treatment.py =================================================================== diff -u -r1f2bf6d939eb4033dbedb7d7005494cc12fccbc6 -r3f4937e339925dde0b95f08e49969f8983c5cba4 --- leahi_dialin/td/modules/treatment.py (.../treatment.py) (revision 1f2bf6d939eb4033dbedb7d7005494cc12fccbc6) +++ leahi_dialin/td/modules/treatment.py (.../treatment.py) (revision 3f4937e339925dde0b95f08e49969f8983c5cba4) @@ -20,7 +20,7 @@ # Project imports from leahi_dialin.common.constants import NO_RESET from leahi_dialin.common.generic_defs import DataTypes -from leahi_dialin.common.msg_defs import MsgIds +from leahi_dialin.common.msg_ids import MsgIds from leahi_dialin.common.override_templates import cmd_generic_override from leahi_dialin.common import td_enum_repository from leahi_dialin.protocols.CAN import CanMessenger, CanChannels @@ -68,12 +68,12 @@ function = self._handler_resp_treatment_parameters_sync) # Treatment param ranges data - self.min_tx_time = 0 #: Minimum Treatment time - self.max_tx_time = 0 #: Maximum Treatment time - self.min_uf_volume = 0.0 #: Minimum Ultrafiltration volume - self.max_uf_volume = 0.0 #: Maximum Ultrafiltration volume - self.min_dial_rate = 0 #: Minimum Dialysate rate - self.max_dial_rate = 0 #: Maximum Dialysate rate + self.min_tx_time = 0 + self.max_tx_time = 0 + self.min_uf_volume = 0.0 + self.max_uf_volume = 0.0 + self.min_dial_rate = 0 + self.max_dial_rate = 0 self.tx_params_timestamp = 0 #: The timestamp of the latest Treatment Parameters message # Saline Bolus data @@ -131,6 +131,82 @@ self.tx_param_req_timestamp = 0 #: The timestamp of the latest Treatment Parameters Request message + +# ============================================================ Properties ============================================================ + @property + def min_tx_time(self) -> int: + """ + The Minimum Treatment time + """ + return self._min_tx_time + + @min_tx_time.setter + def min_tx_time(self, value): + self._min_tx_time = value + + + @property + def max_tx_time(self) -> int: + """ + The Maximum Treatment time + """ + return self._max_tx_time + + @max_tx_time.setter + def max_tx_time(self, value): + self._max_tx_time = value + + + @property + def min_uf_volume(self) -> int: + """ + The Minimum Ultrafiltration volume + """ + return self._min_uf_volume + + @min_uf_volume.setter + def min_uf_volume(self, value): + self._min_uf_volume = value + + + @property + def max_uf_volume(self) -> int: + """ + The Maximum Ultrafiltration volume + """ + return self._max_uf_volume + + @max_uf_volume.setter + def max_uf_volume(self, value): + self._max_uf_volume = value + + + @property + def min_dial_rate(self) -> int: + """ + The Minimum Dialysate rate + """ + return self._min_dial_rate + + @min_dial_rate.setter + def min_dial_rate(self, value): + self._min_dial_rate = value + + + @property + def max_dial_rate(self) -> int: + """ + The Maximum Dialysate rate + """ + return self._max_dial_rate + + @max_dial_rate.setter + def max_dial_rate(self, value): + self._max_dial_rate = value + + + +# ============================================================ Handlers ============================================================ @publish(["msg_id_td_treatment_param_ranges", "min_tx_time","max_tx_time","min_uf_volume","max_uf_volume", "min_dial_rate","max_dial_rate","tx_params_timestamp"]) def _handler_treatment_param_ranges_sync(self, message, timestamp=0.0): @@ -141,15 +217,14 @@ @return: none """ msg_list = [] - msg_list.append(['self.min_tx_time', DataTypes.U32]) - msg_list.append(['self.max_tx_time', DataTypes.U32]) - msg_list.append(['self.min_uf_volume', DataTypes.F32]) - msg_list.append(['self.max_uf_volume', DataTypes.F32]) - msg_list.append(['self.min_dial_rate', DataTypes.U32]) - msg_list.append(['self.max_dial_rate', DataTypes.U32]) + msg_list.append((type(self).min_tx_time, DataTypes.U32)) + msg_list.append((type(self).max_tx_time, DataTypes.U32)) + msg_list.append((type(self).min_uf_volume, DataTypes.F32)) + msg_list.append((type(self).max_uf_volume, DataTypes.F32)) + msg_list.append((type(self).min_dial_rate, DataTypes.U32)) + msg_list.append((type(self).max_dial_rate, DataTypes.U32)) - self.process_into_vars(decoder_list = msg_list, - message = message) + self.process_into_vars(decoder_list = msg_list, message = message) self.tx_params_timestamp = timestamp @@ -163,13 +238,12 @@ @return: none """ msg_list = [] - msg_list.append(['self.tgt_saline_volume', DataTypes.U32]) - msg_list.append(['self.cum_saline_volume', DataTypes.F32]) - msg_list.append(['self.bol_saline_volume', DataTypes.F32]) - msg_list.append(['self.saline_bolus_state', DataTypes.U32]) + msg_list.append((type(self).tgt_saline_volume, DataTypes.U32)) + msg_list.append((type(self).cum_saline_volume, DataTypes.F32)) + msg_list.append((type(self).bol_saline_volume, DataTypes.F32)) + msg_list.append((type(self).saline_bolus_state, DataTypes.U32)) - self.process_into_vars(decoder_list = msg_list, - message = message) + self.process_into_vars(decoder_list = msg_list, message = message) self.saline_bolus_timestamp = timestamp @@ -183,13 +257,12 @@ @return: none """ msg_list = [] - msg_list.append(['self.set_uf_volume', DataTypes.F32]) - msg_list.append(['self.tgt_uf_rate', DataTypes.F32]) - msg_list.append(['self.uf_volume_delivered', DataTypes.F32]) - msg_list.append(['self.uf_state', DataTypes.U32]) + msg_list.append((type(self).set_uf_volume, DataTypes.F32)) + msg_list.append((type(self).tgt_uf_rate, DataTypes.F32)) + msg_list.append((type(self).uf_volume_delivered, DataTypes.F32)) + msg_list.append((type(self).uf_state, DataTypes.U32)) - self.process_into_vars(decoder_list = msg_list, - message = message) + self.process_into_vars(decoder_list = msg_list, message = message) self.uf_timestamp = timestamp @@ -203,12 +276,11 @@ @return: none """ msg_list = [] - msg_list.append(['self.tx_time_prescribed', DataTypes.U32]) - msg_list.append(['self.tx_time_elapsed', DataTypes.U32]) - msg_list.append(['self.tx_time_remaining', DataTypes.U32]) + msg_list.append((type(self).tx_time_prescribed, DataTypes.U32)) + msg_list.append((type(self).tx_time_elapsed, DataTypes.U32)) + msg_list.append((type(self).tx_time_remaining, DataTypes.U32)) - self.process_into_vars(decoder_list = msg_list, - message = message) + self.process_into_vars(decoder_list = msg_list, message = message) self.tx_time_timestamp = timestamp @@ -222,17 +294,16 @@ @return: none """ msg_list = [] - msg_list.append(['self.tx_sub_mode', DataTypes.U32]) - msg_list.append(['self.blood_prime_state', DataTypes.U32]) - msg_list.append(['self.dialysis_state', DataTypes.U32]) - msg_list.append(['self.isolated_uf_state', DataTypes.U32]) - msg_list.append(['self.tx_stop_state', DataTypes.U32]) - msg_list.append(['self.rinseback_state', DataTypes.U32]) - msg_list.append(['self.tx_recirc_state', DataTypes.U32]) - msg_list.append(['self.tx_end_state', DataTypes.U32]) + msg_list.append((type(self).tx_sub_mode, DataTypes.U32)) + msg_list.append((type(self).blood_prime_state, DataTypes.U32)) + msg_list.append((type(self).dialysis_state, DataTypes.U32)) + msg_list.append((type(self).isolated_uf_state, DataTypes.U32)) + msg_list.append((type(self).tx_stop_state, DataTypes.U32)) + msg_list.append((type(self).rinseback_state, DataTypes.U32)) + msg_list.append((type(self).tx_recirc_state, DataTypes.U32)) + msg_list.append((type(self).tx_end_state, DataTypes.U32)) - self.process_into_vars(decoder_list = msg_list, - message = message) + self.process_into_vars(decoder_list = msg_list, message = message) self.tx_state_timestamp = timestamp @@ -249,32 +320,33 @@ @return: none """ msg_list = [] - msg_list.append(['self.blood_flow_rate', DataTypes.U32]) - msg_list.append(['self.dialysate_flow_rate', DataTypes.U32]) - msg_list.append(['self.tx_duration', DataTypes.U32]) - msg_list.append(['self.saline_bolus_volume', DataTypes.U32]) - msg_list.append(['self.hep_stop_time', DataTypes.U32]) - msg_list.append(['self.hep_time', DataTypes.U32]) - msg_list.append(['self.acid_con', DataTypes.U32]) - msg_list.append(['self.bicarb_con', DataTypes.U32]) - msg_list.append(['self.dialyzer_type', DataTypes.U32]) - msg_list.append(['self.bp_interval', DataTypes.U32]) - msg_list.append(['self.rb_flow_rate', DataTypes.U32]) - msg_list.append(['self.rb_volume', DataTypes.U32]) - msg_list.append(['self.art_pressure_window', DataTypes.U32]) - msg_list.append(['self.venous_pressure_window', DataTypes.U32]) - msg_list.append(['self.venous_asymm_window', DataTypes.U32]) - msg_list.append(['self.tmp_limit_window', DataTypes.U32]) - msg_list.append(['self.dialysate_temp', DataTypes.F32]) - msg_list.append(['self.hep_dispense_rate', DataTypes.F32]) - msg_list.append(['self.hep_bolus_vol', DataTypes.F32]) - msg_list.append(['self.uf_vol', DataTypes.F32]) + msg_list.append((type(self).blood_flow_rate, DataTypes.U32)) + msg_list.append((type(self).dialysate_flow_rate, DataTypes.U32)) + msg_list.append((type(self).tx_duration, DataTypes.U32)) + msg_list.append((type(self).saline_bolus_volume, DataTypes.U32)) + msg_list.append((type(self).hep_stop_time, DataTypes.U32)) + msg_list.append((type(self).hep_time, DataTypes.U32)) + msg_list.append((type(self).acid_con, DataTypes.U32)) + msg_list.append((type(self).bicarb_con, DataTypes.U32)) + msg_list.append((type(self).dialyzer_type, DataTypes.U32)) + msg_list.append((type(self).bp_interval, DataTypes.U32)) + msg_list.append((type(self).rb_flow_rate, DataTypes.U32)) + msg_list.append((type(self).rb_volume, DataTypes.U32)) + msg_list.append((type(self).art_pressure_window, DataTypes.U32)) + msg_list.append((type(self).venous_pressure_window, DataTypes.U32)) + msg_list.append((type(self).venous_asymm_window, DataTypes.U32)) + msg_list.append((type(self).tmp_limit_window, DataTypes.U32)) + msg_list.append((type(self).dialysate_temp, DataTypes.F32)) + msg_list.append((type(self).hep_dispense_rate, DataTypes.F32)) + msg_list.append((type(self).hep_bolus_vol, DataTypes.F32)) + msg_list.append((type(self).uf_vol, DataTypes.F32)) - self.process_into_vars(decoder_list = msg_list, - message = message) + self.process_into_vars(decoder_list = msg_list, message = message) self.tx_param_req_timestamp = timestamp + +# ============================================================ Overrides and Requests ============================================================ def cmd_set_treatment_parameter(self, tx_param_id: int = 0, tx_param_value = 0 ): """ Constructs and sends set treatment parameter command to the TD.