Index: dialin/common/hd_defs.py =================================================================== diff -u -r78422482a3cf189f2aa65a3405e0f21833ec6b01 -r60299303c0465f4519217d1a26fd5404f0f8f067 --- dialin/common/hd_defs.py (.../hd_defs.py) (revision 78422482a3cf189f2aa65a3405e0f21833ec6b01) +++ dialin/common/hd_defs.py (.../hd_defs.py) (revision 60299303c0465f4519217d1a26fd5404f0f8f067) @@ -230,22 +230,7 @@ HD_POST_TREATMENT_VERIFY_STATE = 3 # Verify cartridge removed, syringe removed, and reservoirs drained state NUM_OF_HD_POST_TREATMENT_STATES = 4 # Number of post-treatment mode states - @unique -class PreTreatmentModeStates(DialinEnum): - HD_PRE_TREATMENT_START_STATE = 0 # Start pre-treatment mode state - HD_PRE_TREATMENT_WATER_SAMPLE_STATE = 1 # Water sample state - HD_PRE_TREATMENT_SELF_TEST_CONSUMABLE_STATE = 2 # Consumable self-tests state - HD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE = 3 # No cartridge self-tests state - HD_PRE_TREATMENT_CART_INSTALL_STATE = 4 # Consumable and cartridge installation state - HD_PRE_TREATMENT_SELF_TEST_DRY_STATE = 5 # Self-tests when the cartridge is dry state - HD_PRE_TREATMENT_PRIME_STATE = 6 # Prime blood and dialysate circuits and run wet self-tests state - HD_PRE_TREATMENT_RECIRCULATE_STATE = 7 # Re-circulate blood and dialysate circuits state - HD_PRE_TREATMENT_PATIENT_CONNECTION_STATE = 8 # Patient connection state - NUM_OF_HD_PRE_TREATMENT_STATES = 9 # Number of pre-treatment mode states - - -@unique class PreTreatmentSampleWaterStates(DialinEnum): SAMPLE_WATER_SETUP_STATE = 0 # Sample water setup (flush filter) state SAMPLE_WATER_STATE = 1 # Sample water state, receiving sample water commands from the user Index: dialin/common/msg_ids.py =================================================================== diff -u -r5eb006b08eb1d7b641b22fff20072ab7b685cfec -r60299303c0465f4519217d1a26fd5404f0f8f067 --- dialin/common/msg_ids.py (.../msg_ids.py) (revision 5eb006b08eb1d7b641b22fff20072ab7b685cfec) +++ dialin/common/msg_ids.py (.../msg_ids.py) (revision 60299303c0465f4519217d1a26fd5404f0f8f067) @@ -337,6 +337,9 @@ MSG_ID_HD_SET_BLOOD_LEAK_EMB_MODE_COMMAND = 0x8082 MSG_ID_HD_SEND_BLOOD_LEAK_EMB_MODE_RESPONSE = 0x8083 MSG_ID_HD_SEND_ALARMS_COMMAND = 0x8084 + MSG_ID_HD_BLOOD_PUMP_SET_PWM = 0x8085 + MSG_ID_HD_DIAL_IN_SET_PWM = 0x8086 + MSG_ID_HD_DIAL_OUT_SET_PWM = 0x8087 MSG_ID_DG_TESTER_LOGIN_REQUEST = 0xA000 MSG_ID_DG_ALARM_STATE_OVERRIDE = 0xA001 Index: dialin/hd/blood_flow.py =================================================================== diff -u -r8ff49bb248b9b98b18dde057d836b5c2d308922c -r60299303c0465f4519217d1a26fd5404f0f8f067 --- dialin/hd/blood_flow.py (.../blood_flow.py) (revision 8ff49bb248b9b98b18dde057d836b5c2d308922c) +++ dialin/hd/blood_flow.py (.../blood_flow.py) (revision 60299303c0465f4519217d1a26fd5404f0f8f067) @@ -513,3 +513,29 @@ self.logger.debug("Timeout!!!!") return False + def cmd_blood_flow_pump_set_pwm(self, pwm_pct: float) -> int: + """ + Constructs and sends a blood flow pump set pwm message to the HD. + Constraints: + Must be logged into HD. + Valid parameters are between 0.10 (stop) and 0.89 (full speed) + + @return: 1 if successful, zero otherwise + """ + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_hd_ch_id, + message_id=MsgIds.MSG_ID_HD_BLOOD_PUMP_SET_PWM.value) + + self.logger.debug("Setting blood pump PWM") + + # Send message + received_message = self.can_interface.send(message) + + # If there is content... + if received_message is not None: + self.logger.debug("Blood pump set pwm to " + + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) + # response payload is OK or not OK + return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] + else: + self.logger.debug("Timeout!!!!") + return False \ No newline at end of file Index: dialin/hd/dialysate_inlet_flow.py =================================================================== diff -u -r3a70bfb451b74106348c064c34f19934aadd9119 -r60299303c0465f4519217d1a26fd5404f0f8f067 --- dialin/hd/dialysate_inlet_flow.py (.../dialysate_inlet_flow.py) (revision 3a70bfb451b74106348c064c34f19934aadd9119) +++ dialin/hd/dialysate_inlet_flow.py (.../dialysate_inlet_flow.py) (revision 60299303c0465f4519217d1a26fd5404f0f8f067) @@ -471,3 +471,30 @@ else: self.logger.debug("Timeout!!!!") return False + + def cmd_dialysate_inlet_pump_set_pwm(self, pwm_pct: float) -> int: + """ + Constructs and sends a dialysate inlet pump set pwm message to the HD. + Constraints: + Must be logged into HD. + Valid parameters are between 0.10 (stop) and 0.89 (full speed) + + @return: 1 if successful, zero otherwise + """ + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_hd_ch_id, + message_id=MsgIds.MSG_ID_HD_DIAL_IN_SET_PWM.value) + + self.logger.debug("Setting dialysate inlet pump PWM") + + # Send message + received_message = self.can_interface.send(message) + + # If there is content... + if received_message is not None: + self.logger.debug("Dialysate inlet pump set pwm to " + + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) + # response payload is OK or not OK + return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] + else: + self.logger.debug("Timeout!!!!") + return False \ No newline at end of file Index: dialin/hd/dialysate_outlet_flow.py =================================================================== diff -u -r3a70bfb451b74106348c064c34f19934aadd9119 -r60299303c0465f4519217d1a26fd5404f0f8f067 --- dialin/hd/dialysate_outlet_flow.py (.../dialysate_outlet_flow.py) (revision 3a70bfb451b74106348c064c34f19934aadd9119) +++ dialin/hd/dialysate_outlet_flow.py (.../dialysate_outlet_flow.py) (revision 60299303c0465f4519217d1a26fd5404f0f8f067) @@ -586,3 +586,30 @@ else: self.logger.debug("Timeout!!!!") return False + + def cmd_dialysate_outlet_pump_set_pwm(self, pwm_pct: float) -> int: + """ + Constructs and sends a dialysate outlet pump set pwm message to the HD. + Constraints: + Must be logged into HD. + Valid parameters are between 0.10 (stop) and 0.89 (full speed) + + @return: 1 if successful, zero otherwise + """ + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_hd_ch_id, + message_id=MsgIds.MSG_ID_HD_DIAL_OUT_SET_PWM.value) + + self.logger.debug("Setting dialysate outlet pump PWM") + + # Send message + received_message = self.can_interface.send(message) + + # If there is content... + if received_message is not None: + self.logger.debug("Dialysate outlet pump set pwm to " + + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) + # response payload is OK or not OK + return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] + else: + self.logger.debug("Timeout!!!!") + return False \ No newline at end of file