########################################################################### # # 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 import DD from leahi_dialin.common import dd_enum_repository #from leahi_dialin.td.valves import ValvesEnum #from leahi_dialin.dd.temperatures import DGTemperaturesNames from leahi_dialin.common.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(5) #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) #dd.pressure_sensors.cmd_pressure_broadcast_interval_override(50,0) #sleep(0.5) dd.balancing_chamber.cmd_balancing_chamber_broadcast_interval_override(50,0) #sleep(0.5) #dd.valves.cmd_valve_broadcast_interval_override(50,0) #sleep(0.5) #dd.concentrate_pumps.cmd_concentrate_pump_broadcast_interval_override(50,0) #sleep(0.5) #dd.spent_chamber_fill.cmd_spent_chamber_fill_broadcast_interval_override(50,0) #sleep(0.5) #dd.levels.cmd_levels_broadcast_interval_override(50,0) #sleep(0.5) #dd.dialysate_pumps.cmd_dialysate_pump_broadcast_interval_override(50,0) #sleep(0.5) #dd.drybicart.cmd_dry_bicart_broadcast_interval_override(50,0) # dd.heaters.cmd_heaters_broadcast_interval_override(50,0) # sleep(0.1) # dd.temperature_sensors.cmd_temperatures_data_broadcast_interval_override(50,0) # 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.050) sleep(0.05) dialPump = ", D12.fr, " + '{:7.1f}'.format(dd.dialysate_pumps.dd_dialysate_pumps[dd_enum_repository.DDDialysatePumpNames.D12_PUMP.name][dd_enum_repository.DDDialysatePumpAttributes.TARGET_RPM.name]) + \ ", D48.sr, " + '{:7.1f}'.format(dd.dialysate_pumps.dd_dialysate_pumps[dd_enum_repository.DDDialysatePumpNames.D48_PUMP.name][dd_enum_repository.DDDialysatePumpAttributes.TARGET_RPM.name]) + \ ", D12.fs, " + '{:6.1f}'.format(dd.dialysate_pumps.dd_dialysate_pumps[dd_enum_repository.DDDialysatePumpNames.D12_PUMP.name][dd_enum_repository.DDDialysatePumpAttributes.MEASURED_SPEED.name]) + \ ", D48.ss, " + '{:7.1f}'.format(dd.dialysate_pumps.dd_dialysate_pumps[dd_enum_repository.DDDialysatePumpNames.D48_PUMP.name][dd_enum_repository.DDDialysatePumpAttributes.MEASURED_SPEED.name]) + \ ", D12.fc, " + '{:7.1f}'.format(dd.dialysate_pumps.dd_dialysate_pumps[dd_enum_repository.DDDialysatePumpNames.D12_PUMP.name][dd_enum_repository.DDDialysatePumpAttributes.CURRENT_SPEED.name]) + \ ", D48.sc, " + '{:6.1f}'.format(dd.dialysate_pumps.dd_dialysate_pumps[dd_enum_repository.DDDialysatePumpNames.D48_PUMP.name][dd_enum_repository.DDDialysatePumpAttributes.CURRENT_SPEED.name]) + \ ", D12.s1, " + '{:2d}'.format(dd.dialysate_pumps.dd_dialysate_pumps[dd_enum_repository.DDDialysatePumpNames.D12_PUMP.name][dd_enum_repository.DDDialysatePumpAttributes.STATE.name]) + \ ", D48.s2, " + '{:2d}'.format(dd.dialysate_pumps.dd_dialysate_pumps[dd_enum_repository.DDDialysatePumpNames.D48_PUMP.name][dd_enum_repository.DDDialysatePumpAttributes.STATE.name]) + \ ", D12.ft, " + '{:6.1f}'.format(dd.dialysate_pumps.dd_dialysate_pumps[dd_enum_repository.DDDialysatePumpNames.D12_PUMP.name][dd_enum_repository.DDDialysatePumpAttributes.TARGET_PRESSURE.name]) + \ ", D48.st, " + '{:6.1f}'.format(dd.dialysate_pumps.dd_dialysate_pumps[dd_enum_repository.DDDialysatePumpNames.D48_PUMP.name][dd_enum_repository.DDDialysatePumpAttributes.TARGET_PRESSURE.name]) + \ ", D12.fp, " + '{:7.1f}'.format(dd.dialysate_pumps.dd_dialysate_pumps[dd_enum_repository.DDDialysatePumpNames.D12_PUMP.name][dd_enum_repository.DDDialysatePumpAttributes.MEASURED_PRESSURE.name]) + \ ", D48.sp, " + '{:7.1f}'.format(dd.dialysate_pumps.dd_dialysate_pumps[dd_enum_repository.DDDialysatePumpNames.D48_PUMP.name][dd_enum_repository.DDDialysatePumpAttributes.MEASURED_PRESSURE.name]) + \ ", D12.fm, " + '{:8.2f}'.format(dd.dialysate_pumps.dd_dialysate_pumps[dd_enum_repository.DDDialysatePumpNames.D12_PUMP.name][dd_enum_repository.DDDialysatePumpAttributes.MEASURED_CURRENT.name]) + \ ", D48.sm, " + '{:8.2f}'.format(dd.dialysate_pumps.dd_dialysate_pumps[dd_enum_repository.DDDialysatePumpNames.D48_PUMP.name][dd_enum_repository.DDDialysatePumpAttributes.MEASURED_CURRENT.name]) + \ ", D12.c1, " + '{:2d}'.format(dd.dialysate_pumps.dd_dialysate_pumps[dd_enum_repository.DDDialysatePumpNames.D12_PUMP.name][dd_enum_repository.DDDialysatePumpAttributes.CONTROL.name]) + \ ", D48.c2, " + '{:2d}'.format(dd.dialysate_pumps.dd_dialysate_pumps[dd_enum_repository.DDDialysatePumpNames.D48_PUMP.name][dd_enum_repository.DDDialysatePumpAttributes.CONTROL.name]) + \ ", D12.fd, " + '{:2d}'.format(dd.dialysate_pumps.dd_dialysate_pumps[dd_enum_repository.DDDialysatePumpNames.D12_PUMP.name][dd_enum_repository.DDDialysatePumpAttributes.DIRECTION_ERROR_COUNT.name]) + \ ", D48.sd, " + '{:2d}'.format(dd.dialysate_pumps.dd_dialysate_pumps[dd_enum_repository.DDDialysatePumpNames.D48_PUMP.name][dd_enum_repository.DDDialysatePumpAttributes.DIRECTION_ERROR_COUNT.name]) + \ ", D12.d1, " + '{:2d}'.format(dd.dialysate_pumps.dd_dialysate_pumps[dd_enum_repository.DDDialysatePumpNames.D12_PUMP.name][dd_enum_repository.DDDialysatePumpAttributes.MEASURED_DIRECTION.name]) + \ ", D48.d2, " + '{:2d}'.format(dd.dialysate_pumps.dd_dialysate_pumps[dd_enum_repository.DDDialysatePumpNames.D48_PUMP.name][dd_enum_repository.DDDialysatePumpAttributes.MEASURED_DIRECTION.name]) Levels = "L.d6, " + '{:2d}'.format(dd.levels.dd_level_sensors[dd_enum_repository.DDLevelSensorNames.D6_LEVEL.name]) + \ ", L.d63, " + '{:2d}'.format(dd.levels.dd_level_sensors[dd_enum_repository.DDLevelSensorNames.D63_LEVEL.name]) + \ ", L.d46, " + '{:2d}'.format(dd.levels.dd_level_sensors[dd_enum_repository.DDLevelSensorNames.D46_LEVEL.name]) pressure = "P.d9, " + '{:8.1f}'.format(dd.pressure_sensors.dd_pressures[dd_enum_repository.DDPressureSensorNames.D9_PRES.name]) + \ ", P.d66, " + '{:8.1f}'.format(dd.pressure_sensors.dd_pressures[dd_enum_repository.DDPressureSensorNames.D66_PRES.name]) + \ ", P.d51, " + '{:8.1f}'.format(dd.pressure_sensors.dd_pressures[dd_enum_repository.DDPressureSensorNames.D51_PRES.name]) + \ ", P.d18, " + '{:8.1f}'.format(dd.pressure_sensors.dd_pressures[dd_enum_repository.DDPressureSensorNames.D18_PRES.name]) + \ ", P.d41, " + '{:8.1f}'.format(dd.pressure_sensors.dd_pressures[dd_enum_repository.DDPressureSensorNames.D41_PRES.name]) valves = ", DDVlvs, " + '{:8X}'.format(dd.valves.valve_states_all) #", V.d79, " + '{:2d}'.format(dd.valves.d79_pmp_valv) Temperature = "Temp " + '{}'.format(dd.temperature_sensors.dd_temperatures) ConcPumps = ", D11.cs, " + '{:8.1f}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D11_CP1_ACID.name][dd_enum_repository.DDConcentratePumpAttributes.CURRENT_SET_SPEED.name]) + \ ", D11.MeS, " + '{:8.1f}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D11_CP1_ACID.name][dd_enum_repository.DDConcentratePumpAttributes.MEASURED_SPEED.name]) + \ ", D10.cs, " + '{:8.1f}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D10_CP2_BICARB.name][dd_enum_repository.DDConcentratePumpAttributes.CURRENT_SET_SPEED.name] ) + \ ", D10.MeS, " + '{:8.1f}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D10_CP2_BICARB.name][dd_enum_repository.DDConcentratePumpAttributes.MEASURED_SPEED.name]) + \ ", D11.Trev, " + '{:2d}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D11_CP1_ACID.name][dd_enum_repository.DDConcentratePumpAttributes.TARGET_REV_COUNT.name]) + \ ", D11.Mrev, " + '{:2d}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D11_CP1_ACID.name][dd_enum_repository.DDConcentratePumpAttributes.MEASURED_REV_COUNT.name]) + \ ", D10.Trev, " + '{:2d}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D10_CP2_BICARB.name][dd_enum_repository.DDConcentratePumpAttributes.TARGET_REV_COUNT.name]) + \ ", D10.Mrev, " + '{:2d}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D10_CP2_BICARB.name][dd_enum_repository.DDConcentratePumpAttributes.MEASURED_REV_COUNT.name]) + \ ", D11.ex, " + '{:2d}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D11_CP1_ACID.name][dd_enum_repository.DDConcentratePumpAttributes.CURRENT_STATE.name]) + \ ", D10.ex, " + '{:2d}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D10_CP2_BICARB.name][dd_enum_repository.DDConcentratePumpAttributes.CURRENT_STATE.name]) + \ ", D11.pul, " + '{:8.1f}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D11_CP1_ACID.name][dd_enum_repository.DDConcentratePumpAttributes.PULSE_US.name]) + \ ", D10.pul, " + '{:8.1f}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D10_CP2_BICARB.name][dd_enum_repository.DDConcentratePumpAttributes.PULSE_US.name]) + \ ", D11.ts, " + '{:8.1f}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D11_CP1_ACID.name][dd_enum_repository.DDConcentratePumpAttributes.TARGET_SPEED.name]) + \ ", D10.ts, " + '{:8.1f}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D10_CP2_BICARB.name][dd_enum_repository.DDConcentratePumpAttributes.TARGET_SPEED.name]) + \ ", D11.p, " + '{:b}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D11_CP1_ACID.name][dd_enum_repository.DDConcentratePumpAttributes.PARKED.name]) + \ ", D10.p, " + '{:b}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D10_CP2_BICARB.name][dd_enum_repository.DDConcentratePumpAttributes.PARKED.name]) + \ ", D11.PF, " + '{:b}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D11_CP1_ACID.name][dd_enum_repository.DDConcentratePumpAttributes.PARK_FAULT.name]) + \ ", D10.PF, " + '{:b}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D10_CP2_BICARB.name][dd_enum_repository.DDConcentratePumpAttributes.PARK_FAULT.name] ) + \ ", D76.ts, " + '{:8.1f}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D76_UF.name][dd_enum_repository.DDConcentratePumpAttributes.TARGET_SPEED.name]) + \ ", D76.cs, " + '{:8.1f}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D76_UF.name][dd_enum_repository.DDConcentratePumpAttributes.CURRENT_SET_SPEED.name]) + \ ", D76.MeS, " + '{:8.1f}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D76_UF.name][dd_enum_repository.DDConcentratePumpAttributes.MEASURED_SPEED.name]) + \ ", D76.Trev, " + '{:2d}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D76_UF.name][dd_enum_repository.DDConcentratePumpAttributes.TARGET_REV_COUNT.name]) + \ ", D76.Mrev, " + '{:2d}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D76_UF.name][dd_enum_repository.DDConcentratePumpAttributes.MEASURED_REV_COUNT.name]) + \ ", D76.ex, " + '{:2d}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D76_UF.name][dd_enum_repository.DDConcentratePumpAttributes.CURRENT_STATE.name]) + \ ", D76.pul, " + '{:8.1f}'.format(dd.concentrate_pumps.dd_concentrate_pumps[dd_enum_repository.DDConcentratePumpNames.D76_UF.name][dd_enum_repository.DDConcentratePumpAttributes.PULSE_US.name]) # Heaters = ",D5.DC, " + '{:8.1f}'.format(dd.heaters.dd_heaters[dd_enum_repository.DDHeaterNames.D5_HEAT.name][dd_enum_repository.DDHeaterAttributes.HEAT_DUTY_CYCLE.name]) + \ # ", D45.DC, " + '{:8.1f}'.format(dd.heaters.dd_heaters[dd_enum_repository.DDHeaterNames.D45_HEAT.name][dd_enum_repository.DDHeaterAttributes.HEAT_DUTY_CYCLE.name]) + \ # ", D5.TT, " + '{:8.1f}'.format(dd.heaters.dd_heaters[dd_enum_repository.DDHeaterNames.D5_HEAT.name][dd_enum_repository.DDHeaterAttributes.HEAT_TARGET_TEMP.name]) + \ # ", D45.TT, " + '{:8.1f}'.format(dd.heaters.dd_heaters[dd_enum_repository.DDHeaterNames.D45_HEAT.name][dd_enum_repository.DDHeaterAttributes.HEAT_TARGET_TEMP.name]) + \ # ", D5.S, " + '{:2d}'.format(dd.heaters.dd_heaters[dd_enum_repository.DDHeaterNames.D5_HEAT.name][dd_enum_repository.DDHeaterAttributes.HEAT_STATE.name] ) + \ # ", D45.S, " + '{:2d}'.format(dd.heaters.dd_heaters[dd_enum_repository.DDHeaterNames.D45_HEAT.name][dd_enum_repository.DDHeaterAttributes.HEAT_STATE.name]) + \ # ", D5.duty, " + '{:8.3f}'.format(dd.heaters.dd_heaters[dd_enum_repository.DDHeaterNames.D5_HEAT.name][dd_enum_repository.DDHeaterAttributes.DUTY_CYCLE_COUNT.name]) + \ # ", D5.period, " + '{:8.3f}'.format(dd.heaters.dd_heaters[dd_enum_repository.DDHeaterNames.D5_HEAT.name][dd_enum_repository.DDHeaterAttributes.PWM_PERIOD.name]) + \ # ", D5.adjTar, " + '{:8.3f}'.format(dd.heaters.dd_heaters[dd_enum_repository.DDHeaterNames.D5_HEAT.name][dd_enum_repository.DDHeaterAttributes.ADJUSTED_TARGET_TEMP.name]) + \ # ", D5.TdTar, " + '{:8.3f}'.format(dd.heaters.dd_heaters[dd_enum_repository.DDHeaterNames.D5_HEAT.name][dd_enum_repository.DDHeaterAttributes.TARGET_TEMP_TD.name]) + \ # ", D5.eff, " + '{:8.3f}'.format(dd.heaters.dd_heaters[dd_enum_repository.DDHeaterNames.D5_HEAT.name][dd_enum_repository.DDHeaterAttributes.HEAT_EFFICIENCY.name]) + \ # ", 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) + \ ", BcSwEnbl, " + '{:2d}'.format(dd.balancing_chamber.is_bal_chamber_switching_active) # GenDialysate = ", ExSt, " + '{:2d}'.format(dd.gen_dialysate.execution_state) + \ # ", InPro, " + '{:2d}'.format(dd.gen_dialysate.dialysate_delivery_in_progress) + \ # ", 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) Ultrafiltration = ", ExSt, " + '{:2d}'.format(dd.ultrafiltration.uf_exec_state) + \ ", isUFreq, " + '{:2d}'.format(dd.ultrafiltration.is_uf_requested) + \ ", ufRate, " + '{:8.1f}'.format(dd.ultrafiltration.uf_rate) + \ ", CompUF, " + '{:8.1f}'.format(dd.ultrafiltration.compensated_uf_rate) OperationMode = ", OpMode, " + '{:2d}'.format(dd.dd_operation_mode) + \ ", SubMode, " + '{:2d}'.format(dd.dd_operation_sub_mode) SpentChamberFill = ", ExSt, " + '{:2d}'.format(dd.spent_chamber_fill.execution_state) + \ ", Swprd, " + '{:2d}'.format(dd.spent_chamber_fill.switching_period) + \ ", Cnt, " + '{:2d}'.format(dd.spent_chamber_fill.total_spent_chamber_fill_counter) #Drybicart = ", CrtFillExSt, " + '{:2d}'.format(dd.drybicart.dd_dry_bicart_fill_execution_state) + \ # ", ChFillExSt, " + '{:2d}'.format(dd.drybicart.dd_bicarb_chamber_fill_execution_state) + \ # ", FillCycCnt, " + '{:2d}'.format(dd.drybicart.dd_dry_bicart_fill_cycle_counter) + \ # ", MaxfillCycleCount, " + '{:2d}'.format(dd.drybicart.dd_dry_bicart_max_fill_cycle_count) + \ # ", bicartfillreq, " + '{:2d}'.format(dd.drybicart.dd_dry_bicart_fill_request) + \ # ", bicarbfillreq, " + '{:2d}'.format(dd.drybicart.dd_bicarb_chamber_fill_request) + \ # ", lastfilltime, " + '{:2d}'.format(dd.drybicart.dd_dry_bicart_last_fill_time) + \ # ", currFilltime, " + '{:2d}'.format(dd.drybicart.dd_dry_bicart_current_fill_time) # 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(Ultrafiltration) f.write(OperationMode) f.write(SpentChamberFill) #f.write(Drybicart) f.write("\n") # print to console #print("Dialysate Pumps: "+dialPump) #print(" Levels: "+Levels) #print(" Piston Pumps: " + PistonPumps) # print(" Heaters: " +Heaters) #print(" Pressure: "+pressure) #print(" SpentChamberFill: " + SpentChamberFill) # print(" Temperature: "+Temperature) #print(" ConcenPumps: "+ConcPumps) #print(" DD Valves: "+valves) print("Balancing Chamb: "+BalChamber) #print(" Gen Dialysate: "+GenDialysate) #print(" UF: "+Ultrafiltration) #print(" OP: "+OperationMode) #print("drybicart Chamb: "+Drybicart)