########################################################################### # # Copyright (c) 2024-2024 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 test_dd.py # # @author (last) Vinayakam Mani # @date (last) 26-Nov-2024 # @author (original) Vinayakam Mani # @date (original) 26-Nov-2024 # ############################################################################ import sys sys.path.append("..") from leahi_dialin.td.treatment_delivery import TD from leahi_dialin.dd.dialysate_delivery import DD #from leahi_dialin.td.valves import ValvesEnum #from leahi_dialin.dd.temperatures import DGTemperaturesNames from leahi_dialin.dd.modules.constants import NO_RESET, RESET from time import sleep if __name__ == "__main__": # create an TD object called td td = TD(log_level="DEBUG") # create a DD object called dd dd = DD(log_level="DEBUG") sleep(2) # td.ui.cmd_ui_start_treatment_request() # exit(0) # log in to TD and DD as tester # if td.cmd_log_in_to_td() == 0: # exit(1) #while True: # sleep(1) if dd.cmd_log_in_to_dd() == 0: #sleep(1) exit(1) sleep(2) #dd.dialysate_pumps.cmd_dialysate_set_start_stop(0,1,500) #sleep(20) # valves = '{:4X}'.format(dd.valves.valve_states_all) # print("DD Valves: " + valves) # dd.valves.cmd_valve_override(1, True, NO_RESET) # sleep(2) # valves = '{:4X}'.format(dd.valves.valve_states_all) # print("DD Valves: " + valves) # sleep(5) # dd.valves.cmd_valve_override(1, False, NO_RESET) # exit(1) #dd.dialysate_pumps.cmd_dialysate_set_start_stop(0,1,300) #sleep(30) #dd.dialysate_pumps.cmd_dialysate_set_start_stop(0, 0, 300) #sleep(5) #dd.dialysate_pumps.cmd_dialysate_pump_target_speed_override(0, 500.0, NO_RESET) #sleep(5) #dd.dialysate_pumps.cmd_dialysate_pump_target_speed_override(0, 0.0, NO_RESET) #exit(1) # dd.pressure_sensors.cmd_pressure_readings_override(1,10.0, RESET) # create log file with open("DD_test.log", "w") as f: # collect sensors log from DD while True: #if dd.levels.floater1 == 2: #print (" float level is high") #dd.valves.cmd_valve_override(12,False,0) #else: #print (" float level is low") #dd.valves.cmd_valve_override(12,True,0) sleep(0.25) dialPump = ", DP.fr, " + '{:7.1f}'.format(dd.dialysate_pumps.dial_pump_target_rpm_fresh) + \ ", DP.sr, " + '{:7.1f}'.format(dd.dialysate_pumps.dial_pump_target_rpm_spent) + \ ", DP.fs, " + '{:6.1f}'.format(dd.dialysate_pumps.dial_pump_measured_spd_fresh) + \ ", DP.ss, " + '{:7.1f}'.format(dd.dialysate_pumps.dial_pump_measured_spd_spent) + \ ", DP.fc, " + '{:7.1f}'.format(dd.dialysate_pumps.dial_pump_current_spd_fresh) + \ ", DP.sc, " + '{:6.1f}'.format(dd.dialysate_pumps.dial_pump_current_spd_spent) + \ ", DP.s1, " + '{:2d}'.format(dd.dialysate_pumps.dial_pump_state_fresh) + \ ", DP.s2, " + '{:2d}'.format(dd.dialysate_pumps.dial_pump_state_spent) + \ ", DP.ft, " + '{:6.1f}'.format(dd.dialysate_pumps.dial_pump_tgt_pressure_fresh) + \ ", DP.st, " + '{:6.1f}'.format(dd.dialysate_pumps.dial_pump_tgt_pressure_spent) + \ ", DP.fp, " + '{:7.1f}'.format(dd.dialysate_pumps.dial_pump_measured_pressure_fresh) + \ ", DP.sp, " + '{:7.1f}'.format(dd.dialysate_pumps.dial_pump_measured_pressure_spent) + \ ", DP.fm, " + '{:6.1f}'.format(dd.dialysate_pumps.dial_pump_measured_current_fresh) + \ ", DP.sm, " + '{:7.1f}'.format(dd.dialysate_pumps.dial_pump_measured_current_spent) + \ ", DP.c1, " + '{:2d}'.format(dd.dialysate_pumps.dial_pump_control_fresh) + \ ", DP.c2, " + '{:2d}'.format(dd.dialysate_pumps.dial_pump_control_spent) + \ ", DP.fd, " + '{:2d}'.format(dd.dialysate_pumps.dial_pump_dir_err_cnt_fresh) + \ ", DP.sd, " + '{:2d}'.format(dd.dialysate_pumps.dial_pump_dir_err_cnt_spent) + \ ", DP.d1, " + '{:2d}'.format(dd.dialysate_pumps.dial_pump_measured_dir_fresh) + \ ", DP.d2, " + '{:2d}'.format(dd.dialysate_pumps.dial_pump_measured_dir_spent) Levels = "L.f1, " + '{:2d}'.format(dd.levels.floater1) + \ ", L.f2, " + '{:2d}'.format(dd.levels.bicarb_level) + \ ", L.s, " + '{:2d}'.format(dd.levels.spent_dialysate_level) pressure = ", Pwi, " + '{:8.1f}'.format(dd.pressure_sensors.filtered_water_inlet_input_pressure) + \ ", Pwo, " + '{:8.1f}'.format(dd.pressure_sensors.filtered_water_inlet_output_pressure) + \ ", Pho, " + '{:8.1f}'.format(dd.pressure_sensors.filtered_hydraulics_output_pressure) + \ ", PBi, " + '{:8.1f}'.format(dd.pressure_sensors.filtered_bibag_presssure) + \ ", Psd, " + '{:8.1f}'.format(dd.pressure_sensors.filtered_spent_dialysate_pressure) + \ ", Pfd, " + '{:8.1f}'.format(dd.pressure_sensors.filtered_fresh_dialysate_pressure) + \ ", Ptm, " + '{:8.1f}'.format(dd.pressure_sensors.filtered_transmembrane_pressure) + \ ", Twi, " + '{:8.1f}'.format(dd.pressure_sensors.filtered_water_inlet_input_temp) + \ ", Two, " + '{:8.1f}'.format(dd.pressure_sensors.filtered_water_inlet_output_temp) + \ ", Tho, " + '{:8.1f}'.format(dd.pressure_sensors.filtered_hydraulics_output_temp) + \ ", Tbi, " + '{:8.1f}'.format(dd.pressure_sensors.filtered_bibag_temp) + \ ", Tsd, " + '{:8.1f}'.format(dd.pressure_sensors.filtered_spent_dialysate_temp) + \ ", Tfd, " + '{:8.1f}'.format(dd.pressure_sensors.filtered_fresh_dialysate_temp) + \ ", Ttm, " + '{:8.1f}'.format(dd.pressure_sensors.transmembrane_temp) valves = ", DDVlvs, " + '{:8X}'.format(dd.valves.valve_states_all) Levels = "L.f1, " + '{:2d}'.format(dd.levels.floater1) + \ ", L.Bi, " + '{:2d}'.format(dd.levels.bicarb_level) + \ ", L.s, " + '{:2d}'.format(dd.levels.spent_dialysate_level) Temperature = "Temp " + '{}'.format(dd.temperature_sensors.dd_temperatures) ConcPumps = ", 1SetS, " + '{:8.1f}'.format(dd.concentrate_pumps.concentrate_pump_cp1_current_set_speed) + \ ", 1MeS, " + '{:8.1f}'.format(dd.concentrate_pumps.concentrate_pump_cp1_measured_speed) + \ ", 2SetS, " + '{:8.1f}'.format(dd.concentrate_pumps.concentrate_pump_cp2_current_set_speed ) + \ ", 2MeS, " + '{:8.1f}'.format(dd.concentrate_pumps.concentrate_pump_cp2_measured_speed) + \ ", 1TRev, " + '{:2d}'.format(dd.concentrate_pumps.concentrate_pump_cp1_target_rev_count) + \ ", 1Mrev, " + '{:2d}'.format(dd.concentrate_pumps.concentrate_pump_cp1_measured_rev_count) + \ ", 2Trev, " + '{:2d}'.format(dd.concentrate_pumps.concentrate_pump_cp2_target_rev_count) + \ ", 2Mrev, " + '{:2d}'.format(dd.concentrate_pumps.concentrate_pump_cp2_measured_rev_count) + \ ", 1Ex, " + '{:2d}'.format(dd.concentrate_pumps.concentrate_pump_cp1_current_state) + \ ", 2Ex, " + '{:2d}'.format(dd.concentrate_pumps.concentrate_pump_cp2_current_state) + \ ", 1Pul, " + '{:8.1f}'.format(dd.concentrate_pumps.concentrate_pump_cp1_pulse_us) + \ ", 2Pul, " + '{:8.1f}'.format(dd.concentrate_pumps.concentrate_pump_cp2_pulse_us) + \ ", 1TS, " + '{:8.1f}'.format(dd.concentrate_pumps.concentrate_pump_cp1_target_speed) + \ ", 2TS, " + '{:8.1f}'.format(dd.concentrate_pumps.concentrate_pump_cp2_target_speed) + \ ", 1P, " + '{:b}'.format(dd.concentrate_pumps.concentrate_pump_cp1_parked) + \ ", 2P, " + '{:b}'.format(dd.concentrate_pumps.concentrate_pump_cp2_parked) + \ ", 1PF, " + '{:b}'.format(dd.concentrate_pumps.concentrate_pump_cp1_park_fault) + \ ", 2PF, " + '{:b}'.format(dd.concentrate_pumps.concentrate_pump_cp2_park_fault ) Heaters = ", PCnt, " + '{:8.1f}'.format(dd.heaters.main_primary_heater_duty_cycle) + \ ", TCnt, " + '{:8.1f}'.format(dd.heaters.trimmer_heater_duty_cycle) + \ ", PTemp, " + '{:8.1f}'.format(dd.heaters.primary_heaters_target_temperature) + \ ", TTemp, " + '{:8.1f}'.format(dd.heaters.trimmer_heater_target_temperature) + \ ", PSt, " + '{:2d}'.format(dd.heaters.primary_heater_state ) + \ ", Tst, " + '{:2d}'.format(dd.heaters.trimmer_heater_state) + \ ", PCtr, " + '{:2d}'.format(dd.heaters.primary_control_counter) + \ ", TCtr, " + '{:2d}'.format(dd.heaters.trimmer_control_counter) BalChamber = ", ExSt, " + '{:2d}'.format(dd.balancing_chamber.execution_state) + \ ", SwSt, " + '{:2d}'.format(dd.balancing_chamber.switching_state) + \ ", SwFr, " + '{:8.1f}'.format(dd.balancing_chamber.switching_frequency) + \ ", SwPd, " + '{:2d}'.format(dd.balancing_chamber.switching_period) + \ ", Fill, " + '{:2d}'.format(dd.balancing_chamber.bal_chamber_fill_in_progress) + \ ", Cnt, " + '{:2d}'.format(dd.balancing_chamber.current_bal_chamber_switching_counter) + \ ", PSt, " + '{:2d}'.format(dd.balancing_chamber.is_pressure_stabilized_during_fill) GenDialysate = ", ExSt, " + '{:2d}'.format(dd.gen_dialysate.execution_state) + \ ", InPro, " + '{:2d}'.format(dd.gen_dialysate.dialysate_delivery_in_progress) + \ ", Float, " + '{:2d}'.format(dd.gen_dialysate.floater_level) + \ ", Blvl, " + '{:2d}'.format(dd.gen_dialysate.bicarb_level) + \ ", Slvl, " + '{:2d}'.format(dd.gen_dialysate.spent_chamber_level) + \ ", Np, " + '{:8.1f}'.format(dd.gen_dialysate.hydraulics_negative_pressure) + \ ", Pp, " + '{:8.1f}'.format(dd.gen_dialysate.hydraulics_positive_pressure) + \ ", Sp, " + '{:8.1f}'.format(dd.gen_dialysate.spent_dialysate_pressure) + \ ", Del, " + '{:2d}'.format(dd.gen_dialysate.dialysate_good_to_deliver) # log data f.write(dialPump) f.write(Levels) f.write(pressure) f.write(Temperature) f.write(valves) f.write(ConcPumps) f.write(Heaters) f.write(BalChamber) f.write(GenDialysate) f.write("\n") # print to console #print("Dialysate Pumps: "+dialPump) #print(" Levels: "+Levels) #print(" Heaters: " +Heaters) print(" Pressure: "+pressure) #print(" Temperature: "+Temperature) #print(" ConcenPumps: "+ConcPumps) #print(" DD Valves: "+valves) print("Balancing Chamb: "+BalChamber) #print(" Gen Dialysate: "+GenDialysate)