Index: dialin/common/msg_defs.py =================================================================== diff -u -rc864e886bc1b52d3a43f03c507425248c44a913f -r400926d021c357856375c533e8b0f985fa312b20 --- dialin/common/msg_defs.py (.../msg_defs.py) (revision c864e886bc1b52d3a43f03c507425248c44a913f) +++ dialin/common/msg_defs.py (.../msg_defs.py) (revision 400926d021c357856375c533e8b0f985fa312b20) @@ -1,6 +1,5 @@ import enum - class MsgIds(enum.Enum): MSG_ID_UNUSED = 0 # Zero is an undefined (un-used) message ID) MSG_ID_OFF_BUTTON_PRESS = 1 # HD/UI off button interactions @@ -60,10 +59,12 @@ MSG_ID_DG_HEAT_DISINFECT_DATA = 0x37 # DG heat disinfection publish data MSG_ID_UI_START_TREATMENT = 0x38 # UI user request to initiate a treatment MSG_ID_HD_START_TREATMENT_RESPONSE = 0x39 # HD response to user request to initiate a treatment - MSG_ID_UI_CONFIRM_TREATMENT = 0x3B # UI Confirms treatment parameters - MSG_ID_UI_END_TREATMENT = 0x3C # UI Ends a treatment - MSG_ID_UI_END_TREATMENT_RESPONSE = 0x3D # HD Responds to end treatment request MSG_ID_UI_ALARM_ACKNOWLEDGE = 0x3F # UI Tells HD an alarm has been acknowledged + MSG_ID_HD_VALVES_DATA = 0x3A # HD broadcast of valves data + MSG_ID_UI_USER_CONFIRM_TREATMENT_PARAMS = 0x3B # UI user confirmation of treatment parameters + MSG_ID_UI_TREATMENT_END_REQUEST = 0x3C # UI user treatment end request + MSG_ID_HD_TREATMENT_END_RESPONSE = 0x3D # HD response to user request to end treatment + MSG_ID_HD_AIR_TRAP_DATA = 0x003E # HD broadcast of air trap data MSG_ID_CAN_ERROR_COUNT = 0x999 # test code in support of EMC testing @@ -115,6 +116,14 @@ MSG_ID_HD_ACCEL_SET_CALIBRATION = 0x802A # HD accelerometer set calibration factors request MSG_ID_HD_BLOOD_FLOW_SET_CALIBRATION = 0x802B # Blood flow set calibration factors request MSG_ID_HD_DIALYSATE_FLOW_SET_CALIBRATION = 0x802C # Dialysate flow set calibration factors request + MSG_ID_HD_SET_PARAMETER_TREATMENT_PARAMETER = 0x802D # Set a treatment parameter (will change actual setting, not an override) + MSG_ID_HD_VALVES_HOME = 0x802E # Home an HD Valve + MSG_ID_HD_VALVES_POSITION_OVERRIDE = 0x802F # Set an HD valve to a position in counts + MSG_ID_HD_VALVES_SET_AIR_TRAP_VALVE = 0x8030 # Set the HD blood trap valve status + MSG_ID_HD_VALVES_SET_PWM_OVERRIDE = 0x8031 # Set an HD valve PWM + MSG_ID_DG_AIR_TRAP_DATA_BROADCAST_INTERVAL_OVERRIDE = 0x8032 # HD air trap data broadcast interval override request + MSG_ID_DG_AIR_TRAP_LEVEL_SENSOR_OVERRIDE = 0x8033 # HD air trap level sensor override request + MSG_ID_HD_SOFTWARE_RESET_REQUEST = 0x8034 # HD reset request MSG_ID_FIRST_DG_TESTER_MESSAGE = 0xA000 # First DG test message ID MSG_ID_DG_TESTER_LOGIN_REQUEST = MSG_ID_FIRST_DG_TESTER_MESSAGE # DG tester log-in @@ -151,7 +160,7 @@ MSG_ID_HEAT_DISINFECT_NO_OF_CYCLES_TO_RUN = 0xA020 # Heat disinfection number of cycles to run MSG_ID_HEAT_DISINFECT_PUBLISH_INTERVAL_OVERRIDE = 0xA021 # Heat disinfection data publish interval override request MSG_ID_PRIMING_STATUS = 0x0037 # The priming status - + MSG_ID_DG_SOFTWARE_RESET_REQUEST = 0xA022 # DG reset request MSG_ID_HD_DEBUG_EVENT = 0xFFF1 # HD debug event text to be logged in event log MSG_ID_DG_DEBUG_EVENT = 0xFFF2 # DG debug event text to be logged in event log Index: dialin/dg/hd_proxy.py =================================================================== diff -u -rc864e886bc1b52d3a43f03c507425248c44a913f -r400926d021c357856375c533e8b0f985fa312b20 --- dialin/dg/hd_proxy.py (.../hd_proxy.py) (revision c864e886bc1b52d3a43f03c507425248c44a913f) +++ dialin/dg/hd_proxy.py (.../hd_proxy.py) (revision 400926d021c357856375c533e8b0f985fa312b20) @@ -33,6 +33,8 @@ MSG_ID_HD_START_STOP_DG_CMD = 0x0026 MSG_ID_HD_START_STOP_DG_TRIMMER_HEATER = 0x002B + MSG_ID_DG_START_STOP_HEAT_DISINFECT = 0x2F + # Reservoir IDs RESERVOIR1 = 0 RESERVOIR2 = 1 @@ -212,3 +214,48 @@ self.logger.debug("Timeout!!!!") return False + def cmd_start_heat_disinfection(self): + """ + Constructs and sends start heat disinfect command + Constraints: + N/A + + @returns none + """ + # 1 is to start + payload = integer_to_bytearray(1) + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dg_ch_id, + message_id=self.MSG_ID_DG_START_STOP_HEAT_DISINFECT, + payload=payload) + print("Starting heat disinfection process") + received_message = self.can_interface.send(message) + + def cmd_stop_heat_disinfection(self): + """ + Constructs and sends stop heat disinfect command + Constraints: + N/A + + @returns none + """ + # 1 is to start + payload = integer_to_bytearray(0) + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dg_ch_id, + message_id=self.MSG_ID_DG_START_STOP_HEAT_DISINFECT, + payload=payload) + print("Stopping heat disinfection process") + received_message = self.can_interface.send(message) + + def cmd_stop_primary_heater(self): + """ + Constructs and sends stop heat disinfect command + + @returns none + """ + # 0 is to stop + payload = integer_to_bytearray(0) + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dg_ch_id, + message_id=self.MSG_ID_HD_START_STOP_DG_TRIMMER_HEATER, + payload=payload) + print("Stopping heat disinfection process") + self.can_interface.send(message, 0) \ No newline at end of file Index: dialin/hd/alarms.py =================================================================== diff -u -r39cffcc77c7c0ce645325cf50cad65874b2bb096 -r400926d021c357856375c533e8b0f985fa312b20 --- dialin/hd/alarms.py (.../alarms.py) (revision 39cffcc77c7c0ce645325cf50cad65874b2bb096) +++ dialin/hd/alarms.py (.../alarms.py) (revision 400926d021c357856375c533e8b0f985fa312b20) @@ -162,7 +162,6 @@ TBD = result & 32768 TBD = result & 65536 - @return: (int) The alarms flags value """ return self.alarms_flags Index: dialin/ui/hd_simulator.py =================================================================== diff -u -rc864e886bc1b52d3a43f03c507425248c44a913f -r400926d021c357856375c533e8b0f985fa312b20 --- dialin/ui/hd_simulator.py (.../hd_simulator.py) (revision c864e886bc1b52d3a43f03c507425248c44a913f) +++ dialin/ui/hd_simulator.py (.../hd_simulator.py) (revision 400926d021c357856375c533e8b0f985fa312b20) @@ -52,10 +52,10 @@ MsgIds.MSG_ID_UI_NEW_TREATMENT_PARAMS.value, self._handler_ui_validate_parameters) self.can_interface.register_receiving_publication_function(channel_id, - MsgIds.MSG_ID_UI_CONFIRM_TREATMENT.value, + MsgIds.MSG_ID_UI_USER_CONFIRM_TREATMENT_PARAMS.value, self._handler_ui_confirm_treatment) self.can_interface.register_receiving_publication_function(channel_id, - MsgIds.MSG_ID_UI_END_TREATMENT.value, + MsgIds.MSG_ID_UI_TREATMENT_END_REQUEST.value, self._handler_ui_end_treatment) self.alarms_simulator = HDProxyAlarms(self.can_interface, self.logger)