Index: dialin/dg/drain_pump.py =================================================================== diff -u -r1b2e845397cd3f595eaaf743567f09742c737a6d -r65cf1d8021361e0f51aed3a60fceefb54cc784e1 --- dialin/dg/drain_pump.py (.../drain_pump.py) (revision 1b2e845397cd3f595eaaf743567f09742c737a6d) +++ dialin/dg/drain_pump.py (.../drain_pump.py) (revision 65cf1d8021361e0f51aed3a60fceefb54cc784e1) @@ -119,31 +119,25 @@ Must be logged into DG. @param speed: (int) speed set point (in RPM) to override with - @param reset: (int) 1 to reset a previous override, 0 to override @return: 1 if successful, zero otherwise """ - #rst = integer_to_bytearray(reset) spd = integer_to_bytearray(speed) - payload = spd #rst + spd + payload = spd message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dg_ch_id, message_id=MsgIds.MSG_ID_DRAIN_PUMP_SET_RPM_OVERRIDE.value, payload=payload) - self.logger.debug("override drain pump speed set point") + self.logger.debug("Override drain pump speed set point") # Send message received_message = self.can_interface.send(message) # If there is content... if received_message is not None: - if reset == RESET: - str_res = "reset back to normal" - else: - str_res = str(speed) - self.logger.debug("Drain pump set point overridden to " + str_res + " RPM: " + + self.logger.debug("Drain pump set point overridden to " + str(speed) + " RPM: " + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] Index: dialin/dg/ro_pump.py =================================================================== diff -u -rcc425128f399de5414b0aee1942986653ca42c92 -r65cf1d8021361e0f51aed3a60fceefb54cc784e1 --- dialin/dg/ro_pump.py (.../ro_pump.py) (revision cc425128f399de5414b0aee1942986653ca42c92) +++ dialin/dg/ro_pump.py (.../ro_pump.py) (revision 65cf1d8021361e0f51aed3a60fceefb54cc784e1) @@ -154,6 +154,32 @@ self.logger.debug("Timeout!!!!") return False + def cmd_ro_pump_duty_cycle_pct(self, duty): + # TODO add comments + dc = float_to_bytearray(duty/100) + payload = dc + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dg_ch_id, + message_id=MsgIds.MSG_ID_DG_RO_PUMP_DUTY_CYCLE_OVERRIDE.value, + payload=payload) + + self.logger.debug("RO pump duty cycle set") + + # Send message + received_message = self.can_interface.send(message) + + # If there is content... + if received_message is not None: + + self.logger.debug( + "RO pump duty cycle set to " + str(duty) + " %" + + 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 + def cmd_ro_flow_rate_override(self, flow, reset=NO_RESET): """ Constructs and sends the RO rate override command. @@ -234,3 +260,4 @@ else: self.logger.debug("Timeout!!!!") return False + Index: tests/dg_heat_disinfect_test.py =================================================================== diff -u -r1b2e845397cd3f595eaaf743567f09742c737a6d -r65cf1d8021361e0f51aed3a60fceefb54cc784e1 --- tests/dg_heat_disinfect_test.py (.../dg_heat_disinfect_test.py) (revision 1b2e845397cd3f595eaaf743567f09742c737a6d) +++ tests/dg_heat_disinfect_test.py (.../dg_heat_disinfect_test.py) (revision 65cf1d8021361e0f51aed3a60fceefb54cc784e1) @@ -22,12 +22,14 @@ #dg.thermistors.cmd_thermistors_value_override(52.2, ThermistorsNames.THERMISTOR_ONBOARD_NTC.value, reset=1) #sleep(2) - dg.drain_pump.cmd_drain_pump_speed_set_point_override(500) + #dg.drain_pump.cmd_drain_pump_speed_set_point_override(1000) + dg.ro_pump.cmd_ro_pump_duty_cycle_pct(50) while True: sleep(0.5) - print(dg.drain_pump.drain_pump_state) - print(dg.drain_pump.target_drain_pump_rpm) + print(dg.ro_pump.get_pwm_duty_cycle_pct()) + #print(dg.drain_pump.drain_pump_state) + #print(dg.drain_pump.target_drain_pump_rpm) while True: Index: tests/test_dg_calibration.py =================================================================== diff -u -r1b2e845397cd3f595eaaf743567f09742c737a6d -r65cf1d8021361e0f51aed3a60fceefb54cc784e1 --- tests/test_dg_calibration.py (.../test_dg_calibration.py) (revision 1b2e845397cd3f595eaaf743567f09742c737a6d) +++ tests/test_dg_calibration.py (.../test_dg_calibration.py) (revision 65cf1d8021361e0f51aed3a60fceefb54cc784e1) @@ -1,26 +1,33 @@ from ctypes import * -import struct +from collections import OrderedDict from dialin.dg.dialysate_generator import DG -from dialin.dg.calibration import DGCalibration if __name__ == "__main__": # Create an instance of the DG Class - dg = DG(log_level='DEBUG') + #dg = DG(log_level='DEBUG') - if dg.cmd_log_in_to_dg() == 0: - exit(1) + #if dg.cmd_log_in_to_dg() == 0: + # exit(1) - cal = dg.calibration + #cal = dg.calibration - test = {'sensors': {'ppi': {'gain': ['