import sys sys.path.append("..") from dialin.dg.dialysate_generator import DG from dialin.hd.hemodialysis_device import HD from dialin.dg.hd_proxy import DGHDProxy from dialin.dg.heat_disinfect import HeatDisinfectStates from dialin.dg.drain_pump import DrainPumpStates from dialin.dg.ro_pump import ROPumpStates from dialin.dg.thermistors import Thermistors from dialin.dg.uv_reactors import ReactorsStates from dialin.dg.thermistors import ThermistorsNames from dialin.dg.temperature_sensors import TemperatureSensorsNames from time import sleep def run_ro_pump_test(): f = open("RO_Pump_Low.log", "w") try: dg.hd_proxy.cmd_start_stop_dg() while True: sleep(0.5) var = "Mode, {}, Sub-Mode, {}, Duty, {:5.3f}, Pres, {:5.3f}, Tgt_Pres, {:5.3f}, Flow, {:5.3f}, " \ "State, {}\r".format( dg.dg_operation_mode, dg.dg_operation_sub_mode, dg.ro_pump.pwm_duty_cycle_pct, dg.pressures.ro_pump_outlet_pressure, dg.ro_pump.target_pressure_psi, dg.ro_pump.measured_flow_rate_lpm, dg.ro_pump.ro_pump_state) print(var) f.write(var) except KeyboardInterrupt: dg.hd_proxy.cmd_start_stop_dg(start=False) f.close() def get_heat_disinfect_mode_info(): info = ('State, {}, Overall_time, {}, State_elapsed_time, {}, ' .format(HeatDisinfectStates(dg.heat_disinfect.current_state).name, dg.heat_disinfect.overall_elapsed_time, dg.heat_disinfect.state_elapsed_time)) return info def get_dg_valves_states(): info = ('VPi, {}, VSP, {}, VPd, {}, VBf, {}, VPo, {}, VDr, {}, VRc, {}, VRo, {}, VRd, {}, VRi, {}, VRf, {}, ' .format(dg.valves.valve_states_enum[dg.valves.VALVE_PRESSURE_INLET], dg.valves.valve_states_enum[dg.valves.VALVE_SAMPLING_PORT], dg.valves.valve_states_enum[dg.valves.VALVE_PRODUCTION_DRAIN], dg.valves.valve_states_enum[dg.valves.VALVE_BYPASS_FILTER], dg.valves.valve_states_enum[dg.valves.VALVE_PRESSURE_OUTLET], dg.valves.valve_states_enum[dg.valves.VALVE_DRAIN], dg.valves.valve_states_enum[dg.valves.VALVE_RECIRCULATE], dg.valves.valve_states_enum[dg.valves.VALVE_RESERVOIR_OUTLET], dg.valves.valve_states_enum[dg.valves.VALVE_RESERVOIR_DRAIN], dg.valves.valve_states_enum[dg.valves.VALVE_RESERVOIR_INLET], dg.valves.valve_states_enum[dg.valves.VALVE_RESERVOIR_FILL])) return info def get_drain_states_info(): info = ('Drain, {}, DAC, {}, PRd, {:5.3f}, PDr, {:5.3f} '. format(DrainPumpStates(dg.drain_pump.drain_pump_state).name, dg.drain_pump.dac_value, dg.pressures.drain_pump_inlet_pressure, dg.pressures.drain_pump_outlet_pressure)) return info def get_load_cells_info(): info = ('Primary_A1, {:5.3f}, Primary_B1, {:5.3f}, '.format(dg.load_cells.load_cell_A1, dg.load_cells.load_cell_B1)) return info def get_ro_info(): info = ('RO, {}, PPi, {:5.3f}, PPo, {:5.3f}, PWM, {:5.3f}, Flow, {:5.3f}, ' .format(dg.ro_pump.ro_pump_state, dg.pressures.ro_pump_outlet_pressure, dg.pressures.ro_pump_outlet_pressure, dg.ro_pump.pwm_duty_cycle_pct, dg.ro_pump.measured_flow_rate_lpm)) return info def get_heaters_info(): info = ('Pri_main_DC, {:5.3f}, Pri_small_DC, {:5.3f}, Trimmer_DC, {:5.3f}, '. format(dg.heaters.main_primary_heater_duty_cycle, dg.heaters.small_primary_heater_duty_cycle, dg.heaters.trimmer_heater_duty_cycle)) return info def get_temperature_sensors_info(): info = ('TPi, {:5.3f}, TPo, {:5.3f}, TD1, {:5.3f}, TD2, {:5.3f}, TRo, {:5.3f}, TDi, {:5.3f}, ' .format(dg.temperature_sensors.temperature_sensors(TemperatureSensorsNames.INLET_PRIMARY_HEATER.name), dg.temperature_sensors.temperature_sensors(TemperatureSensorsNames.OUTLET_PRIMARY_HEATER.name), dg.temperature_sensors.temperature_sensors(TemperatureSensorsNames.CONDUCTIVITY_SENSOR_1.name), dg.temperature_sensors.temperature_sensors(TemperatureSensorsNames.CONDUCTIVITY_SENSOR_2.name), dg.temperature_sensors.temperature_sensors(TemperatureSensorsNames.OUTLET_DIALYSATE_REDUNDANT.name), dg.temperature_sensors.temperature_sensors(TemperatureSensorsNames.INLET_DIALYSATE.name))) return info def run_heat_disinfect(): f = open("Heat_disinfect.log", "w") dg.heat_disinfect.cmd_start_stop_heat_disinfect() try: while True: disinfect = get_heat_disinfect_mode_info() drain = get_drain_states_info() load_cell = get_load_cells_info() valves = get_dg_valves_states() ro = get_ro_info() temp = get_temperature_sensors_info() heaters = get_heaters_info() var = disinfect + load_cell + drain + ro + temp + heaters + valves + '\r' print(var) f.write(var) sleep(1) except KeyboardInterrupt: dg.heat_disinfect.cmd_start_stop_heat_disinfect(start=False) f.close() if __name__ == "__main__": dg = DG(log_level='DEBUG') dg.cmd_log_in_to_dg() sleep(1) #run_ro_pump_test() run_heat_disinfect()