########################################################################### # # Copyright (c) 2019-2019 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_UFTest.py # # @date 28-Jan-2020 # @author S. Nash # # @brief This script simulates 300 grams of load cell increase over 15 minutes (20 mL/min). # ############################################################################ import sys sys.path.append("..") from dialin.hd.hemodialysis_device import HD from dialin.dg.dialysate_generator import DG from time import sleep if __name__ == "__main__": # create an HD object called hd hd = HD() # create a DG object called dg dg = DG() sleep(2) # log in to HD and DG as tester if hd.cmd_log_in_to_hd() == 0: exit(1) if dg.cmd_log_in_to_dg() == 0: exit(1) sleep(1) # create log file with open("UF_test.log", "w") as f: # collect UF related data from HD and DG while True: sleep(1) modes = "HD.m," + str(hd.hd_operation_mode) + \ ",DG.m," + str(dg.dg_operation_mode) + \ ",Dg.s," + str(dg.dg_operation_sub_mode) pumpSetPts = ",B.s," + str(hd.bloodflow.target_blood_flow_rate) + \ ",DI.s," + str(hd.dialysate_inlet_flow.target_dialysate_inlet_flow_rate) + \ ",DO.s,N/A,RO.s," + str(dg.ro_pump.target_pressure_psi) + \ ",DR.s," + str(dg.drain_pump.target_drain_pump_speed_RPM) pumpMeasSpds = ",B.m," + str(hd.bloodflow.measured_blood_pump_speed) + \ ",B.r," + str(hd.bloodflow.measured_blood_pump_rotor_speed) + \ ",B.f," + str(hd.bloodflow.measured_blood_flow_rate) + \ ",DI.m," + str(hd.dialysate_inlet_flow.measured_dialysate_inlet_pump_speed) + \ ",DI.r," + str(hd.dialysate_inlet_flow.measured_dialysate_inlet_pump_rotor_speed) + \ ",DI.f," + str(hd.dialysate_inlet_flow.measured_dialysate_inlet_flow_rate) + \ ",DO.m," + str(hd.dialysate_outlet_flow.measured_dialysate_outlet_pump_speed) + \ ",DO.r," + str(hd.dialysate_outlet_flow.measured_dialysate_outlet_pump_rotor_speed) + \ ",RO.f," + str(dg.ro_pump.measured_flow_rate_lpm) pumpPWMs = ",B.w,"+str(hd.bloodflow.pwm_duty_cycle_pct) + \ ",DI.w," + str(hd.dialysate_inlet_flow.pwm_duty_cycle_pct) + \ ",DO.w," + str(hd.dialysate_outlet_flow.pwm_duty_cycle_pct) + \ ",RO.w," + str(dg.ro_pump.pwm_duty_cycle_pct) + \ ",DR.w," + str(dg.drain_pump.dac_value) loadCells = ",A1," + str(dg.load_cells.load_cell_A1) + \ ",B1," + str(dg.load_cells.load_cell_B1) + \ ",A2," + str(dg.load_cells.load_cell_A2) + \ ",B2," + str(dg.load_cells.load_cell_B2) ultraFilt = ",RfUF," + str(hd.dialysate_outlet_flow.reference_dialysate_outlet_uf_volume) + \ ",MsUF," + str(hd.dialysate_outlet_flow.measured_dialysate_outlet_uf_volume) dgPres = ",ROi," + str(dg.pressures.ro_pump_inlet_pressure) + \ ",ROo," + str(dg.pressures.ro_pump_outlet_pressure) + \ ",DRi," + str(dg.pressures.drain_pump_inlet_pressure) + \ ",DRo," + str(dg.pressures.drain_pump_outlet_pressure) # log data f.write(modes) f.write(pumpSetPts) f.write(pumpMeasSpds) f.write(pumpPWMs) f.write(loadCells) f.write(ultraFilt) f.write(dgPres) f.write("\n") # print to console print(" Modes: "+modes) print("Pump Set Points: "+pumpSetPts) print(" Pump Speeds: "+pumpMeasSpds) print(" Pump PWMs/DACs: "+pumpPWMs) print(" Load Cells: "+loadCells) print("Ultrafiltration: "+ultraFilt) print(" DG Pressures: "+dgPres) # exit(1)