Index: tests/dg_heat_disinfect_test.py =================================================================== diff -u -r2cbba85a1d29583fef38e818844c9dbe64933598 -r400e03c12e615a00c4e0a770471209fd82e184b8 --- tests/dg_heat_disinfect_test.py (.../dg_heat_disinfect_test.py) (revision 2cbba85a1d29583fef38e818844c9dbe64933598) +++ tests/dg_heat_disinfect_test.py (.../dg_heat_disinfect_test.py) (revision 400e03c12e615a00c4e0a770471209fd82e184b8) @@ -5,33 +5,31 @@ 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_disinfection import HeatDisinfectStates +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 -if __name__ == "__main__": +def run_ro_pump_test(): - dg = DG(log_level='DEBUG') - dg.cmd_log_in_to_dg() - sleep(1) f = open("RO_Pump_Low.log", "w") - try: dg.hd_proxy.cmd_start_stop_dg() - sleep(1) while True: - sleep(0.1) - var = "Mode, {}, Duty, {:5.3f}, Pres, {:5.3f}, Tgt_Pres, {:5.3f}, Flow, {:5.3f}, State, {}\r".format( - dg.dg_operation_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) + 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) @@ -40,97 +38,85 @@ f.close() - """" - while True: - sleep(0.5) +def get_heat_disinfect_mode_info(): - print('BoardT, {}, Inlet, {}, Outlet, {}, CP1, {}, CP2, {}, OutletR, {}, InletD, {}, ' - 'PHThe, {}, THThe, {}, PHCJ, {}, THCJ, {}, PHInt, {}, THInt, {}, FPGA, {}, ' - 'LCA1B1, {}, LCA2B2, {}, InTHDo, {}, IntTDi, {}, IntCond, {} Fan1, {}, Fan2, {}' - .format(dg.thermistors.thermistors[ThermistorsNames.THERMISTOR_ONBOARD_NTC.name], - 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], - dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.PRIMARY_HEATER_THERMOCOUPLE.name], - dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.TRIMMER_HEATER_THERMOCOUPLE.name], - dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.PRIMARY_HEATER_COLD_JUNCTION.name], - dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.TRIMMER_HEATER_COLD_JUNCTION.name], - dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.PRIMARY_HEATER_INTERNAL.name], - dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.TRIMMER_HEATER_INTERNAL.name], - dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.FPGA_BOARD_SENSOR.name], - dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.LOAD_CELL_A1_B1.name], - dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.LOAD_CELL_A2_B2.name], - dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.INTERNAL_THDO_RTD.name], - dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.INTERNAL_TDI_RTD.name], - dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.INTERNAL_COND_TEMP_SENSOR.name], - dg.fans.inlet_1_rpm, dg.fans.inlet_2_rpm)) - + 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 - f = open("Heat_disinfection.txt", "w") - #dg.drain_pump.cmd_drain_pump_speed_set_point_override(2800) +def get_dg_valves_states(): - #dg.valves.cmd_valve_override(0, dg.valves.VALVE_PRESSURE_OUTLET ) - #sleep(1) - #dg.valves.cmd_valve_override(0, dg.valves.VALVE_RESERVOIR_OUTLET) - #dg.valves.cmd_valve_override(1, dg.valves.VALVE_RESERVOIR_INLET) - #dg.heat_disinfect.cmd_start_stop_heat_disinfection(start=False) - #sleep(1) - #time = 1 + 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 - dg.heat_disinfect.cmd_start_stop_heat_disinfection() +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 run_heat_disinfect(): + + f = open("Heat_disinfection.log", "w") + dg.heat_disinfect.cmd_start_stop_heat_disinfect() try: while True: - - var = ('Mode, {}, State, {}, Sub, {}, RO, {}, Drain, {}, VPi, {}, VBf, {}, VSP, {}, VPd, {}, VPo, {}, VDr, {}, ' - 'VRc, {}, VRo, {}, VRd, {}, VRi, {}, VRf, {}\r' - .format(dg.dg_operation_mode, - HeatDisinfectStates(dg.dg_operation_sub_mode).name, - HeatDisinfectionInternalStates(dg.heat_disinfect.current_state).name, - dg.ro_pump.ro_pump_state, - DrainPumpStates(dg.drain_pump.drain_pump_state).name, - dg.valves.valve_states_enum[dg.valves.VALVE_PRESSURE_INLET], - dg.valves.valve_states_enum[dg.valves.VALVE_BYPASS_FILTER], - 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_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])) - - var = ('Mode, {}, State, {}, RO, {}, Flow, {:5.3f}, TgtPres, {:5.3f}, InletPres, {:5.3f}, ' - 'OutletPres, {:5.3f}, PWM, {:5.3f}, Drain, {}, DInletPres, {:5.3f}, DOutletPres, {:5.3f}, ' - 'DrainDAC, {:5.3f}, R1, {:5.3f}, R2, {:5.3f}, TPi, {:5.3f}, TPo, {:5.3f}, TDi, {:5.3f} \r' - .format(dg.dg_operation_mode, - HeatDisinfectionStates(dg.dg_operation_sub_mode).name, - dg.ro_pump.ro_pump_state, - dg.ro_pump.measured_flow_rate_lpm, - dg.ro_pump.target_pressure_psi, - dg.pressures.ro_pump_inlet_pressure, - dg.pressures.ro_pump_outlet_pressure, - dg.ro_pump.pwm_duty_cycle_pct, - DrainPumpStates(dg.drain_pump.drain_pump_state).name, - dg.pressures.drain_pump_inlet_pressure, - dg.pressures.drain_pump_outlet_pressure, dg.drain_pump.dac_value, - dg.load_cells.load_cell_A1, - dg.load_cells.load_cell_B1, - dg.temperature_sensors.inlet_primary, dg.temperature_sensors.outlet_primary, - dg.temperature_sensors.outlet_redundancy)) + 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() + + var = disinfect + ' ' + drain + ' ' + load_cell + ' ' + ro + ' ' + valves + '\r' + print(var) f.write(var) - sleep(0.25) - - + sleep(1) + except KeyboardInterrupt: - dg.hd_proxy.cmd_start_stop_dg(start=False) - dg.heat_disinfect.cmd_start_stop_heat_disinfection(start=False) + dg.heat_disinfect.cmd_start_stop_heat_disinfect(start=False) f.close() - """"" \ No newline at end of file + + +if __name__ == "__main__": + + dg = DG(log_level='DEBUG') + dg.cmd_log_in_to_dg() + sleep(1) + + #run_ro_pump_test() + + run_heat_disinfect() + +