Index: dialin/common/msg_ids.py =================================================================== diff -u -rf9ade5206d6da9dc2ef510ef0d985ecc4bf44924 -r6e92c24e6e1bc8b22bfbe188085578ad3f3359d9 --- dialin/common/msg_ids.py (.../msg_ids.py) (revision f9ade5206d6da9dc2ef510ef0d985ecc4bf44924) +++ dialin/common/msg_ids.py (.../msg_ids.py) (revision 6e92c24e6e1bc8b22bfbe188085578ad3f3359d9) @@ -169,6 +169,8 @@ MSG_ID_HD_SERIAL_NUMBER = 0x99, MSG_ID_HD_SET_STANDBY_DISINFECT_SUB_MODE_REQUEST = 0x9A MSG_ID_HD_SET_STANDBY_DISINFECT_SUB_MODE_RESPONSE = 0x9B + MSG_ID_HD_DISINFECTS_UI_STATE_READINGS_FROM_DG = 0x9C + MSG_ID_HD_DISINFECTS_UI_STATES_DATA = 0x9D MSG_ID_DIALYSATE_FLOW_DATA = 0X8 MSG_ID_TESTER_LOGIN_REQUEST = 0X8000 MSG_ID_DIAL_OUT_FLOW_SET_PT_OVERRIDE = 0X8001 Index: dialin/dg/heat_disinfect.py =================================================================== diff -u -rbaa70892bff2030d325d472c58129915872e3755 -r6e92c24e6e1bc8b22bfbe188085578ad3f3359d9 --- dialin/dg/heat_disinfect.py (.../heat_disinfect.py) (revision baa70892bff2030d325d472c58129915872e3755) +++ dialin/dg/heat_disinfect.py (.../heat_disinfect.py) (revision 6e92c24e6e1bc8b22bfbe188085578ad3f3359d9) @@ -41,11 +41,13 @@ HEAT_DISINFECT_UI_STATE_NOT_RUNNING = 0 HEAT_DISINFECT_UI_STATE_FLUSH_BEFORE_DISINFECT = 1 HEAT_DISINFECT_UI_STATE_HEAT_UP_WATER = 2 - HEAT_DISINFECT_UI_STATE_DISINFECT_DEVICE = 3 - HEAT_DISINFECT_UI_STATE_COOL_DOWN_DEVICE = 4 - HEAT_DISINFECT_UI_STATE_FLUSH_AFTER_DISINFECT = 5 - HEAT_DISINFECT_UI_STATE_CANCEL_DISINFECT = 6 - HEAT_DISINFECT_UI_STATE_COMPLETE = 7 + HEAT_DISINFECT_UI_STATE_DISINFECT_RESERVOIR_1 = 3 + HEAT_DISINFECT_UI_STATE_TRANSITION_HOT_WATER = 4 + HEAT_DISINFECT_UI_STATE_DISINFECT_RESERVOIR_2 = 5 + HEAT_DISINFECT_UI_STATE_COOL_DOWN_DEVICE = 6 + HEAT_DISINFECT_UI_STATE_FLUSH_AFTER_DISINFECT = 7 + HEAT_DISINFECT_UI_STATE_CANCEL_DISINFECT = 8 + HEAT_DISINFECT_UI_STATE_COMPLETE = 9 @unique Index: dialin/hd/ui_proxy.py =================================================================== diff -u -r0cca339a72337e4c56665e7c5aff65944909cfb3 -r6e92c24e6e1bc8b22bfbe188085578ad3f3359d9 --- dialin/hd/ui_proxy.py (.../ui_proxy.py) (revision 0cca339a72337e4c56665e7c5aff65944909cfb3) +++ dialin/hd/ui_proxy.py (.../ui_proxy.py) (revision 6e92c24e6e1bc8b22bfbe188085578ad3f3359d9) @@ -193,6 +193,10 @@ 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) + self.can_interface.\ + register_receiving_publication_function(DenaliChannels.hd_to_ui_ch_id, + MsgIds.MSG_ID_HD_DISINFECTS_UI_STATES_DATA.value, + self._handler_disinfects_data_publish) # initialize variables that will be populated by HD version response self.hd_version = None @@ -243,6 +247,9 @@ self.treatment_end_cmd_succeeded = False self.treatment_end_cmd_reject_reason = 0 + self.disinfects_hd_mode = 0 + self.disinfects_submode = 0 + self.reject_reasons = OrderedDict() for attr in dir(self): if not callable(getattr(self, attr)) and attr.startswith("REQUEST_REJECT"): @@ -1658,4 +1665,21 @@ self.logger.debug("Sending setting standby submode to wait for disinfect to HD.") self.can_interface.send(message, 0) + @_publish(["disinfects_hd_mode", "disinfects_submode"]) + def _handler_disinfects_data_publish(self, message: dict) -> None: + """ + Handles published disinfect mode and submode that is published to UI + @param message: published RO pump data message + + @return: None + """ + hd_state = struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] + dg_submode = struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] + + self.disinfects_hd_mode = hd_state + self.disinfects_submode = dg_submode + + Index: tests/dg_heat_and_chemical_disinfect_test.py =================================================================== diff -u -r6b97d90c9c2b662d3cb4e7826ab9f91c56de0a9a -r6e92c24e6e1bc8b22bfbe188085578ad3f3359d9 --- tests/dg_heat_and_chemical_disinfect_test.py (.../dg_heat_and_chemical_disinfect_test.py) (revision 6b97d90c9c2b662d3cb4e7826ab9f91c56de0a9a) +++ tests/dg_heat_and_chemical_disinfect_test.py (.../dg_heat_and_chemical_disinfect_test.py) (revision 6e92c24e6e1bc8b22bfbe188085578ad3f3359d9) @@ -324,22 +324,24 @@ sleep(0.5) hd.ui.cmd_ui_set_standby_submode_to_disinfect() + while True: + print(hd.ui.disinfects_hd_mode, hd.ui.disinfects_submode) + sleep(1) + if __name__ == "__main__": dg = DG(log_level='DEBUG') dg.cmd_log_in_to_dg() sleep(1) - run_heat_disinfect() + #run_heat_disinfect() #run_chemical_disinfect() #run_dg() cmd_set_disinfect_ui_screen() - #dg.valves.cmd_valve_override(9,0) -