########################################################################### # # 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(1.000) dialPump = ", D12.fr, " + '{:7.1f}'.format(dd.dialysate_pumps.d12_pump_target_rpm_fresh) + \ ", D48.sr, " + '{:7.1f}'.format(dd.dialysate_pumps.d48_pump_target_rpm_spent) + \ ", D12.fs, " + '{:6.1f}'.format(dd.dialysate_pumps.d12_pump_measured_spd_fresh) + \ ", D48.ss, " + '{:7.1f}'.format(dd.dialysate_pumps.d48_pump_measured_spd_spent) + \ ", D12.fc, " + '{:7.1f}'.format(dd.dialysate_pumps.d12_pump_current_spd_fresh) + \ ", D48.sc, " + '{:6.1f}'.format(dd.dialysate_pumps.d48_pump_current_spd_spent) + \ ", D12.s1, " + '{:2d}'.format(dd.dialysate_pumps.d12_pump_state_fresh) + \ ", D48.s2, " + '{:2d}'.format(dd.dialysate_pumps.d48_pump_state_spent) + \ ", D12.ft, " + '{:6.1f}'.format(dd.dialysate_pumps.d12_pump_tgt_pressure_fresh) + \ ", D48.st, " + '{:6.1f}'.format(dd.dialysate_pumps.d48_pump_tgt_pressure_spent) + \ ", D12.fp, " + '{:7.1f}'.format(dd.dialysate_pumps.d12_pump_measured_pressure_fresh) + \ ", D48.sp, " + '{:7.1f}'.format(dd.dialysate_pumps.d48_pump_measured_pressure_spent) + \ ", D12.fm, " + '{:8.1f}'.format(dd.dialysate_pumps.d12_pump_measured_current_fresh) + \ ", D48.sm, " + '{:8.1f}'.format(dd.dialysate_pumps.d48_pump_measured_current_spent) + \ ", D12.c1, " + '{:2d}'.format(dd.dialysate_pumps.d12_pump_control_fresh) + \ ", D48.c2, " + '{:2d}'.format(dd.dialysate_pumps.d48_pump_control_spent) + \ ", D12.fd, " + '{:2d}'.format(dd.dialysate_pumps.d12_pump_dir_err_cnt_fresh) + \ ", D48.sd, " + '{:2d}'.format(dd.dialysate_pumps.d48_pump_dir_err_cnt_spent) + \ ", D12.d1, " + '{:2d}'.format(dd.dialysate_pumps.d12_pump_measured_dir_fresh) + \ ", D48.d2, " + '{:2d}'.format(dd.dialysate_pumps.d48_pump_measured_dir_spent) Levels = "L.d6, " + '{:2d}'.format(dd.levels.d6_level) + \ ", L.d63, " + '{:2d}'.format(dd.levels.d63_level) + \ ", L.d46, " + '{:2d}'.format(dd.levels.d46_level) pressure = ",P.m1, " + '{:8.1f}'.format(dd.pressure_sensors.m1_pres) + \ ", P.m3, " + '{:8.1f}'.format(dd.pressure_sensors.m3_pres) + \ ", P.d9, " + '{:8.1f}'.format(dd.pressure_sensors.d9_pres) + \ ", P.d66, " + '{:8.1f}'.format(dd.pressure_sensors.d66_pres) + \ ", P.d51, " + '{:8.1f}'.format(dd.pressure_sensors.d51_pres) + \ ", P.d18, " + '{:8.1f}'.format(dd.pressure_sensors.d18_pres) + \ ", P.d41, " + '{:8.1f}'.format(dd.pressure_sensors.d41_pres) + \ ", Pt.m1, " + '{:8.1f}'.format(dd.pressure_sensors.m1_pres_temp) + \ ", Pt.m3, " + '{:8.1f}'.format(dd.pressure_sensors.m3_pres_temp) + \ ", Pt.d9, " + '{:8.1f}'.format(dd.pressure_sensors.d9_pres_temp) + \ ", Pt.d66, " + '{:8.1f}'.format(dd.pressure_sensors.d66_pres_temp) + \ ", Pt.d51, " + '{:8.1f}'.format(dd.pressure_sensors.d51_pres_temp) + \ ", Pt.d18, " + '{:8.1f}'.format(dd.pressure_sensors.d18_pres_temp) + \ ", Pt.d41, " + '{:8.1f}'.format(dd.pressure_sensors.d41_pres_temp) valves = ", DDVlvs, " + '{:8X}'.format(dd.valves.valve_states_all) Temperature = "Temp " + '{}'.format(dd.temperature_sensors.dd_temperatures) ConcPumps = ", D11.cs, " + '{:8.1f}'.format(dd.concentrate_pumps.d11_cp1_current_set_speed) + \ ", D11.MeS, " + '{:8.1f}'.format(dd.concentrate_pumps.d11_cp1_measured_speed) + \ ", D10.cs, " + '{:8.1f}'.format(dd.concentrate_pumps.d10_cp2_current_set_speed ) + \ ", D10.MeS, " + '{:8.1f}'.format(dd.concentrate_pumps.d10_cp2_measured_speed) + \ ", D11.Trev, " + '{:2d}'.format(dd.concentrate_pumps.d11_cp1_target_rev_count) + \ ", D11.Mrev, " + '{:2d}'.format(dd.concentrate_pumps.d11_cp1_measured_rev_count) + \ ", D10.Trev, " + '{:2d}'.format(dd.concentrate_pumps.d10_cp2_target_rev_count) + \ ", D10.Mrev, " + '{:2d}'.format(dd.concentrate_pumps.d10_cp2_measured_rev_count) + \ ", D11.ex, " + '{:2d}'.format(dd.concentrate_pumps.d11_cp1_current_state) + \ ", D10.ex, " + '{:2d}'.format(dd.concentrate_pumps.d10_cp2_current_state) + \ ", D11.pul, " + '{:8.1f}'.format(dd.concentrate_pumps.d11_cp1_pulse_us) + \ ", D10.pul, " + '{:8.1f}'.format(dd.concentrate_pumps.d10_cp2_pulse_us) + \ ", D11.ts, " + '{:8.1f}'.format(dd.concentrate_pumps.d11_cp1_target_speed) + \ ", D10.ts, " + '{:8.1f}'.format(dd.concentrate_pumps.d10_cp2_target_speed) + \ ", D11.p, " + '{:b}'.format(dd.concentrate_pumps.d11_cp1_parked) + \ ", D10.p, " + '{:b}'.format(dd.concentrate_pumps.d10_cp2_parked) + \ ", D11.PF, " + '{:b}'.format(dd.concentrate_pumps.d11_cp1_park_fault) + \ ", D10.PF, " + '{:b}'.format(dd.concentrate_pumps.d10_cp2_park_fault ) + \ ", D76.ts, " + '{:8.1f}'.format(dd.concentrate_pumps.d76_target_speed) + \ ", D76.cs, " + '{:8.1f}'.format(dd.concentrate_pumps.d76_current_set_speed) + \ ", D76.MeS, " + '{:8.1f}'.format(dd.concentrate_pumps.d76_measured_speed) + \ ", D76.Trev, " + '{:2d}'.format(dd.concentrate_pumps.d76_target_rev_count) + \ ", D76.Mrev, " + '{:2d}'.format(dd.concentrate_pumps.d76_measured_rev_count) + \ ", D76.ex, " + '{:2d}'.format(dd.concentrate_pumps.d76_current_state) + \ ", D76.pul, " + '{:8.1f}'.format(dd.concentrate_pumps.d76_pulse_us) Heaters = ",D5.DC, " + '{:8.1f}'.format(dd.heaters.d5_heat_duty_cycle) + \ ", D45.DC, " + '{:8.1f}'.format(dd.heaters.d45_heat_duty_cycle) + \ ", D5.TT, " + '{:8.1f}'.format(dd.heaters.d5_heat_target_temperature) + \ ", D45.TT, " + '{:8.1f}'.format(dd.heaters.d45_heat_target_temperature) + \ ", D5.S, " + '{:2d}'.format(dd.heaters.d5_heat_state ) + \ ", D45.S, " + '{:2d}'.format(dd.heaters.d45_heat_state) + \ ", D5.cnt, " + '{:2d}'.format(dd.heaters.d5_heat_control_counter) + \ ", D45.cnt, " + '{:2d}'.format(dd.heaters.d45_heat_control_counter) + \ ", dbg1, " + '{:8.3f}'.format(dd.heaters.dbg1) + \ ", dbg2, " + '{:8.3f}'.format(dd.heaters.dbg2) + \ ", dbg3, " + '{:8.3f}'.format(dd.heaters.dbg3) + \ ", dbg4, " + '{:8.3f}'.format(dd.heaters.dbg4) + \ ", dbg5, " + '{:8.3f}'.format(dd.heaters.dbg5) + \ ", dbg6, " + '{:8.3f}'.format(dd.heaters.dbg6) + \ ", dbg7, " + '{:8.3f}'.format(dd.heaters.dbg7) + \ ", dbg8, " + '{:8.3f}'.format(dd.heaters.dbg8) + \ ", dbg9, " + '{:8.3f}'.format(dd.heaters.dbg9) 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) + \ ", BSo, " + '{:2d}'.format(dd.balancing_chamber.bal_chamber_switch_only_state) PistonPumps = ", AcExSt, " + '{:2d}'.format(dd.piston_pumps.acid_control_state) + \ ", BiExSt, " + '{:2d}'.format(dd.piston_pumps.bicarb_control_state) + \ ", UfExSt, " + '{:2d}'.format(dd.piston_pumps.uf_control_state) + \ ", AcSW, " + '{:2d}'.format(dd.piston_pumps.acid_sw_counter) + \ ", BiSw, " + '{:2d}'.format(dd.piston_pumps.bicarb_sw_counter) + \ ", UFSw, " + '{:2d}'.format(dd.piston_pumps.uf_sw_counter) + \ ", AcCy, " + '{:2d}'.format(dd.piston_pumps.acid_cycle_counter) + \ ", BiCy, " + '{:2d}'.format(dd.piston_pumps.bicarb_cycle_counter) + \ ", UFCy, " + '{:2d}'.format(dd.piston_pumps.uf_cycle_counter) GenDialysate = ", ExSt, " + '{:2d}'.format(dd.gen_dialysate.execution_state) + \ ", InPro, " + '{:2d}'.format(dd.gen_dialysate.dialysate_delivery_in_progress) + \ ", D6.l, " + '{:2d}'.format(dd.gen_dialysate.d6_level) + \ ", D63.l, " + '{:2d}'.format(dd.gen_dialysate.d63_level) + \ ", D46.l, " + '{:2d}'.format(dd.gen_dialysate.d46_level) + \ ", D9.p, " + '{:8.1f}'.format(dd.gen_dialysate.d9_pressure) + \ ", D18.p, " + '{:8.1f}'.format(dd.gen_dialysate.d18_pressure) + \ ", D51.p, " + '{:8.1f}'.format(dd.gen_dialysate.d51_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(PistonPumps) f.write(GenDialysate) f.write("\n") # print to console #print("Dialysate Pumps: "+dialPump) #print(" Levels: "+Levels) #print(" Piston Pumps: " + PistonPumps) #print(" Heaters: " +Heaters) #print(" Pressure: "+pressure) #print(" Temperature: "+Temperature) #print(" ConcenPumps: "+ConcPumps) #print(" DD Valves: "+valves) #print("Balancing Chamb: "+BalChamber) #print(" Gen Dialysate: "+GenDialysate)