Index: dialin/common/msg_ids.py =================================================================== diff -u -r8cc6f4843c77fc7bfe358c9f752740919c25f65f -r0cca339a72337e4c56665e7c5aff65944909cfb3 --- dialin/common/msg_ids.py (.../msg_ids.py) (revision 8cc6f4843c77fc7bfe358c9f752740919c25f65f) +++ dialin/common/msg_ids.py (.../msg_ids.py) (revision 0cca339a72337e4c56665e7c5aff65944909cfb3) @@ -22,6 +22,7 @@ class MsgIds(DialinEnum): MSG_ID_UNUSED = 0X0 MSG_ID_OFF_BUTTON_PRESS = 0X1 + MSG_ID_PRESSURE_OCCLUSION_DATA = 0x9 MSG_ID_USER_UF_PAUSE_RESUME_REQUEST = 0X10 MSG_ID_USER_UF_SETTINGS_CHANGE_REQUEST = 0X11 MSG_ID_USER_SALINE_BOLUS_REQUEST = 0X12 @@ -140,6 +141,12 @@ MSG_ID_HD_ALARM_INFORMATION = 0X7D MSG_ID_HD_STANDBY_STATE = 0X7E MSG_ID_UI_DISINFECT_REQUEST = 0X7F + MSG_ID_HD_DISINFECT_RESPONSE = 0x80 + MSG_ID_UI_CHEM_DISINFECT_CONFIRM = 0X81 + MSG_ID_HD_CHEM_DISINFECT_CONFIRM_RESPONSE = 0X82 + MSG_ID_DG_FLUSH_TIME_DATA = 0X83 + MSG_ID_DG_HEAT_DISINFECT_TIME_DATA = 0X84 + MSG_ID_DG_CHEM_DISINFECT_TIME_DATA = 0X85 MSG_ID_DG_VOLTAGES_DATA = 0X86 MSG_ID_DG_CHEM_DISINFECT_DATA = 0X87 MSG_ID_DG_SERIAL_NUMBER = 0x88 @@ -162,8 +169,9 @@ MSG_ID_HD_SERIAL_NUMBER = 0x99, MSG_ID_DG_CHEM_DISINFECT_TO_UI_DATA_PUBLISH = 0x9A MSG_ID_DG_HEAT_DISINFECT_TO_UI_DATA_PUBLISH = 0x9B + MSG_ID_HD_SET_STANDBY_DISINFECT_SUB_MODE_REQUEST = 0x9C + MSG_ID_HD_SET_STANDBY_DISINFECT_SUB_MODE_RESPONSE = 0x9D MSG_ID_DIALYSATE_FLOW_DATA = 0X8 - MSG_ID_HD_DISINFECT_RESPONSE = 0X80 MSG_ID_TESTER_LOGIN_REQUEST = 0X8000 MSG_ID_DIAL_OUT_FLOW_SET_PT_OVERRIDE = 0X8001 MSG_ID_OFF_BUTTON_STATE_OVERRIDE = 0X8002 @@ -259,12 +267,6 @@ MSG_ID_HD_BUBBLES_DATA_SEND_INTERVAL_OVERRIDE = 0X805D MSG_ID_HD_BUBBLE_STATUS_OVERRIDE = 0X805E MSG_ID_HD_BUBBLE_SELF_TEST_REQUEST = 0X8060 - MSG_ID_UI_CHEM_DISINFECT_CONFIRM = 0X81 - MSG_ID_HD_CHEM_DISINFECT_CONFIRM_RESPONSE = 0X82 - MSG_ID_DG_FLUSH_TIME_DATA = 0X83 - MSG_ID_DG_HEAT_DISINFECT_TIME_DATA = 0X84 - MSG_ID_DG_CHEM_DISINFECT_TIME_DATA = 0X85 - MSG_ID_PRESSURE_OCCLUSION_DATA = 0X9 MSG_ID_CAN_ERROR_COUNT = 0X999 MSG_ID_RTC_EPOCH = 0XA MSG_ID_DG_TESTER_LOGIN_REQUEST = 0XA000 Index: dialin/hd/ui_proxy.py =================================================================== diff -u -r9d116c25f6482d61d324558b8a1f745468030740 -r0cca339a72337e4c56665e7c5aff65944909cfb3 --- dialin/hd/ui_proxy.py (.../ui_proxy.py) (revision 9d116c25f6482d61d324558b8a1f745468030740) +++ dialin/hd/ui_proxy.py (.../ui_proxy.py) (revision 0cca339a72337e4c56665e7c5aff65944909cfb3) @@ -189,6 +189,10 @@ self._handler_recirc_cmd_response) self.can_interface.register_receiving_publication_function(DenaliChannels.hd_to_ui_ch_id, MsgIds.MSG_ID_HD_TX_END_CMD_RESPONSE.value, self._handler_treatment_end_cmd_response) + self.can_interface.\ + register_receiving_publication_function(DenaliChannels.hd_to_ui_ch_id, + MsgIds.MSG_ID_HD_SET_STANDBY_DISINFECT_SUB_MODE_RESPONSE.value, + self._handler_treatment_end_cmd_response) # initialize variables that will be populated by HD version response self.hd_version = None @@ -1641,3 +1645,17 @@ self.logger.debug("Sending user disposable removal confirm msg to HD.") self.can_interface.send(message, 0) + def cmd_ui_set_standby_submode_to_disinfect(self) -> None: + """ + Constructs and sends a ui set standby submode to wait for disinfect + + @return: none + """ + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_hd_ch_id, + message_id=MsgIds.MSG_ID_HD_SET_STANDBY_DISINFECT_SUB_MODE_REQUEST.value) + + self.logger.debug("Sending setting standby submode to wait for disinfect to HD.") + self.can_interface.send(message, 0) + + Index: tests/dg_heat_and_chemical_disinfect_test.py =================================================================== diff -u -r8ded14e44a1f69305149bfb2cd638252eaae8d1a -r0cca339a72337e4c56665e7c5aff65944909cfb3 --- tests/dg_heat_and_chemical_disinfect_test.py (.../dg_heat_and_chemical_disinfect_test.py) (revision 8ded14e44a1f69305149bfb2cd638252eaae8d1a) +++ tests/dg_heat_and_chemical_disinfect_test.py (.../dg_heat_and_chemical_disinfect_test.py) (revision 0cca339a72337e4c56665e7c5aff65944909cfb3) @@ -9,7 +9,7 @@ from dialin.dg.thermistors import ThermistorsNames from dialin.dg.temperature_sensors import TemperatureSensorsNames from dialin.dg.dialysate_generator import DGOperationModes -from dialin.ui.hd_simulator import HDSimulator +from dialin.hd.hemodialysis_device import HD from time import sleep @@ -154,7 +154,7 @@ counter = 1 timer = 1 - sleep_time = 0.05 + sleep_time = 1 f = open("/home/fw/projects/dialin/tests/run_dg.log", "w") """ @@ -177,22 +177,25 @@ dg_run = get_dg_run_info() temperature = get_temperature_sensors_info() + heaters = get_heaters_info() load_cell = get_load_cells_info() drain = get_drain_states_info() ro = get_ro_info() valves = get_dg_valves_states() - var = str(timer) + ', ' + str(counter) + ', ' + dg_run + temperature + load_cell + drain + ro + \ + var = str(timer) + ', ' + str(counter) + ', ' + dg_run + temperature + heaters + load_cell + drain + ro + \ valves + '\r' print(var) f.write(var) + tpo = dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.OUTLET_PRIMARY_HEATER.name] + if DGOperationModes(dg.dg_operation_mode).name == DGOperationModes.DG_OP_MODE_RECIRCULATE.name and\ dg.dg_operation_sub_mode == 2 and counter == 1: if timer == 1: - dg.hd_proxy.cmd_switch_reservoirs(reservoirID=0) + dg.hd_proxy.cmd_switch_reservoirs(reservoirID=1) timer += 1 @@ -207,11 +210,11 @@ timer = 1 elif DGOperationModes(dg.dg_operation_mode).name == DGOperationModes.DG_OP_MODE_RECIRCULATE.name and\ - dg.dg_operation_sub_mode == 2 and counter == 3: + dg.dg_operation_sub_mode == 2 and counter == 3 and tpo > 39.0: timer += 1 if timer > 4: - dg.hd_proxy.cmd_fill(volume=1000) + dg.hd_proxy.cmd_fill(volume=1700) counter += 1 sleep(sleep_time) @@ -315,9 +318,11 @@ #run_chemical_disinfect() - #run_dg() + run_dg() - ui = HDSimulator(log_level='DEBUG') - sleep(1) - ui.cmd_set_hd_operation_mode_data(2) + #hd = HD() + #sleep(1) + #hd.ui.cmd_ui_set_standby_submode_to_disinfect() + +