Index: tests/hd_test_pumps_open_loop.py =================================================================== diff -u --- tests/hd_test_pumps_open_loop.py (revision 0) +++ tests/hd_test_pumps_open_loop.py (revision 31e54f25bc55ee863fbec78bc23dabdaac30e114) @@ -0,0 +1,99 @@ +########################################################################### +# +# Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. +# +# THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN +# WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. +# +# @file hd_pumps_open_loop.py +# +# @author (last) Peman Montazemi +# @date (last) 30-Jul-2020 +# @author (original) Peman Montazemi +# @date (original) 24-Jul-2020 +# +############################################################################ +import sys +sys.path.append("..") +from dialin.hd.constants import RESET, NO_RESET +from dialin.hd.hemodialysis_device import HD +from time import sleep +import unittest + + +class Test(unittest.TestCase): + def hd_test_pumps_open_loop(self): + """ + Sets the target flow rate for all HD pumps using + \returns None + """ + + # Create an instance of the HD Class called hd + hd = HD() + sleep(1) + + # Pump control modes + PUMP_CONTROL_MODE_CLOSED_LOOP = 0 + PUMP_CONTROL_MODE_OPEN_LOOP = 1 + + # Set HD open loop pumps flow rates in mL/min + HD_BLOOD_PUMP_FLOW_RATE = 200 + HD_DIALYSATE_PUMP_IN_FLOW_RATE = 200 + HD_DIALYSATE_PUMP_OUT_FLOW_RATE = 200 + + # Log in to HD as tester + if hd.cmd_log_in_to_hd() == 0: + print("HD login failed.") + exit(1) + sleep(1) + + # Reset all flow rate broadcast intervals + hd.bloodflow.cmd_blood_flow_broadcast_interval_override(RESET, 0) + sleep(1) + hd.dialysate_inlet_flow.cmd_dialysate_inlet_flow_broadcast_interval_override(RESET, 0) + sleep(1) + hd.dialysate_outlet_flow.cmd_dialysate_outlet_flow_broadcast_interval_override(RESET, 0) + sleep(1) + + # Reset all flow rate set points + hd.bloodflow.cmd_blood_flow_set_point_override(RESET, 0) + sleep(1) + hd.dialysate_inlet_flow.cmd_dialysate_inlet_flow_set_point_override(RESET, 0) + sleep(1) + hd.dialysate_outlet_flow.cmd_dialysate_outlet_flow_set_point_override(RESET, 0) + sleep(1) + + # Reset all flow rate measures + hd.bloodflow.cmd_blood_flow_measured_override(RESET, 0) + sleep(1) + hd.dialysate_inlet_flow.cmd_dialysate_inlet_flow_measured_override(RESET, 0) + sleep(1) + hd.dialysate_outlet_flow.cmd_dialysate_outlet_flow_measured_override(RESET, 0) + sleep(1) + + # Set HD pumps flow rates (open loop) + hd.bloodflow.cmd_blood_flow_set_point_override(HD_BLOOD_PUMP_FLOW_RATE, PUMP_CONTROL_MODE_OPEN_LOOP) + hd.dialysate_inlet_flow.cmd_dialysate_inlet_flow_set_point_override(HD_DIALYSATE_PUMP_IN_FLOW_RATE, PUMP_CONTROL_MODE_OPEN_LOOP) + hd.dialysate_outlet_flow.cmd_dialysate_outlet_flow_set_point_override(HD_DIALYSATE_PUMP_OUT_FLOW_RATE, PUMP_CONTROL_MODE_OPEN_LOOP) + sleep(5) + + print("Blood Flow Target = {}".format(hd.bloodflow.target_blood_flow_rate)) + print("Dialysate Flow In Target = {}".format(hd.dialysate_inlet_flow.target_dialysate_inlet_flow_rate)) + print("Dialysate Flow Out Target = {}".format(hd.dialysate_outlet_flow.target_dialysate_outlet_flow_rate)) + sleep(1) + + i = 0 + while True: + sleep(0.5) + print("Measured Blood Flow = {} mL/min".format(hd.bloodflow.measured_blood_flow_rate)) + print("Measured Dialysate Flow In = {} mL/min".format(hd.dialysate_inlet_flow.measured_dialysate_inlet_flow_rate)) + print("Measured Dialysate Flow Out = {} mL/min".format(hd.dialysate_outlet_flow.measured_dialysate_outlet_flow_rate)) + if i > 0 and i % 60 == 0: + resp = input("Press 'Enter' to continue or 'q' to quit: ") + if resp.lower() == "q": + break + i += 1 + + +if __name__ == '__main__': + unittest.main(verbosity=2) Index: tests/hd_test_script.py =================================================================== diff -u -r4bdb012848d1b59be5edc31d677b77b9d95f6190 -r31e54f25bc55ee863fbec78bc23dabdaac30e114 --- tests/hd_test_script.py (.../hd_test_script.py) (revision 4bdb012848d1b59be5edc31d677b77b9d95f6190) +++ tests/hd_test_script.py (.../hd_test_script.py) (revision 31e54f25bc55ee863fbec78bc23dabdaac30e114) @@ -76,10 +76,9 @@ # hd.bloodflow.cmd_blood_flow_broadcast_interval_override(RESET,0) - # FIXME: Update passing criteria + # TODO: Update passing criteria self.assertTrue(True) if __name__ == '__main__': unittest.main(verbosity=2) -