Index: tests/dg_tests.py =================================================================== diff -u -rab24503836ed04ff6e3f14b80fc9de92efb557b5 -r5fad1b021480de4d9708932bf3f68e27095c658f --- tests/dg_tests.py (.../dg_tests.py) (revision ab24503836ed04ff6e3f14b80fc9de92efb557b5) +++ tests/dg_tests.py (.../dg_tests.py) (revision 5fad1b021480de4d9708932bf3f68e27095c658f) @@ -7,8 +7,8 @@ # # @file dg_tests.py # -# @author (last) Dara Navaei -# @date (last) 10-Nov-2022 +# @author (last) Steve Jarpe +# @date (last) 15-Dec-2022 # @author (original) Dara Navaei # @date (original) 16-Jan-2022 # @@ -21,6 +21,7 @@ from dialin.common.dg_defs import DGHeatDisinfectStates, DGHeatDisinfectUIStates from dialin.dg.heat_disinfect import HeatCancellationModes from dialin.common.dg_defs import DGChemicalDisinfectStates, DGChemDisinfectUIStates +from dialin.common.dg_defs import DGChemDisinfectFlushStates, DGChemDisinfectFlushUIStates from dialin.dg.chemical_disinfect import ChemCancellationModes from dialin.dg.drain_pump import DrainPumpStates from dialin.dg.thermistors import ThermistorsNames @@ -46,7 +47,7 @@ from dialin.hd.valves import HDValves from dialin.hd.voltages import HDMonitoredVoltages from dialin.hd.pretreatment import PreTreatmentRsrvrState -from dialin.common.dg_defs import DGFlushStates +from dialin.common.dg_defs import DGFlushStates, DGHeatDisinfectActiveCoolStates from time import sleep from datetime import datetime import sys @@ -68,26 +69,44 @@ hd.alarms.alarm_top)) return info +def get_chemical_disinfect_flush_mode_info(): + info = ('State, {}, Overall_elapsed_time, {}, State_elapsed_time, {}, r1, {:5.1f}, r2, {:5.1f}, ' + 'Target_rinse_count, {}, Rinse_count, {}, Top_alarm, {}, UI_state, {},' + .format(DGChemDisinfectFlushStates(dg.chemical_disinfect_flush.flush_state).name, + dg.chemical_disinfect_flush.overall_elapsed_time, dg.chemical_disinfect_flush.state_elapsed_time, + dg.chemical_disinfect_flush.r1, dg.chemical_disinfect_flush.r2, + dg.chemical_disinfect_flush.target_rinse_count, dg.chemical_disinfect_flush.rinse_count, + hd.alarms.alarm_top, dg.chemical_disinfect_flush.flush_UI_state)) + return info def get_heat_disinfect_mode_info(): + state = 0 + state_elapsed_time = 0 + overall_elapsed_time = 0 + if dg.dg_operation_mode == 9: + state = DGHeatDisinfectStates(dg.heat_disinfect.heat_disinfect_state).name + overall_elapsed_time = dg.heat_disinfect.overall_elapsed_time + state_elapsed_time = dg.heat_disinfect.state_elapsed_time + elif dg.dg_operation_mode == 12: + state = DGHeatDisinfectActiveCoolStates(dg.heat_disinfect_active_cool.heat_disinfect_active_cool_state).name + overall_elapsed_time = dg.heat_disinfect_active_cool.overall_elapsed_time + state_elapsed_time = dg.heat_disinfect_active_cool.state_elapsed_time + info = ('State, {}, Overall_elapsed_time, {}, State_elapsed_time, {}, Disinfect_elapsed_time, {}, ' 'R1_level, {:5.3f}, R2_level, {:5.3f}, Top_alarm, {}, UI_state, {}, ' - .format(DGHeatDisinfectStates(dg.heat_disinfect.heat_disinfect_state).name, - dg.heat_disinfect.overall_elapsed_time, dg.heat_disinfect.state_elapsed_time, + .format(state, overall_elapsed_time, state_elapsed_time, dg.heat_disinfect.heat_disinfect_count_down_time, dg.heat_disinfect.r1_level, dg.heat_disinfect.r2_level, hd.alarms.alarm_top, - DGHeatDisinfectUIStates(dg.chemical_disinfect.chemical_disinfect_ui_state).name)) + DGHeatDisinfectUIStates(dg.heat_disinfect.heat_disinfect_ui_state).name)) return info def get_flush_mode_info(): info = ('State, {}, Overall_elapsed_time, {}, State_elapsed_time, {}, Drain_vol, {:5.3f}, Top_alarm, {}, ' .format(DGFlushStates(dg.flush.flush_state).name, dg.flush.overall_elapsed_time, dg.flush.state_elapsed_time, dg.flush.flush_drain_line_volume_l, hd.alarms.alarm_top)) - return info - def get_hd_run_info(): info = ('HD_op_mode, {}, HD_sub_mode, {}, Top_alarm, {}, Target_UF_ml, {:5.3f}, Meas_UF_ml, {:5.3f}, ' 'Wet_test_state, {}, Post_tx_state, {}, Post_tx_drain_state, {}, Prime_state, {}, Pre_Tx_rsrvr_state, {}, ' @@ -272,7 +291,7 @@ info = ('Bicarb_curr_speed, {:5.3f}, Bicarb_speed, {:5.3f}, Acid_curr_speed, {:5.3f}, Acid_speed, {:5.3f}, ' 'CPo, {:5.3f}, CD1, {:5.3f}, CD2, {:5.3f}, CP1_state, {}, CP2_state, {}, CPi_status, {}, CPo_status, {}, ' 'CD1_status, {}, CD2_status, {}, CP1_pulse, {:5.3f}, CP2_pulse, {:5.3f}, Acid_tgt_speed, {:5.3f}, ' - 'Bicarb_tgt_speed, {:5.3f}, ' + 'Bicarb_tgt_speed, {:5.3f}, CP1_parked, {}, CP1_park_fault, {}, CP2_parked, {}, CP2_park_fault, {}, ' .format(dg.concentrate_pumps.concentrate_pump_cp2_current_set_speed, dg.concentrate_pumps.concentrate_pump_cp2_measured_speed, dg.concentrate_pumps.concentrate_pump_cp1_current_set_speed, @@ -286,7 +305,11 @@ dg.conductivity_sensors.cd1_sensor_status, dg.conductivity_sensors.cd2_sensor_status, dg.concentrate_pumps.cp1_temp_pulse, dg.concentrate_pumps.cp2_temp_pulse, dg.concentrate_pumps.concentrate_pump_cp1_target_speed, - dg.concentrate_pumps.concentrate_pump_cp2_target_speed)) + dg.concentrate_pumps.concentrate_pump_cp2_target_speed, + dg.concentrate_pumps.concentrate_pump_cp1_parked, + dg.concentrate_pumps.concentrate_pump_cp1_park_fault, + dg.concentrate_pumps.concentrate_pump_cp2_parked, + dg.concentrate_pumps.concentrate_pump_cp2_park_fault)) return info @@ -463,6 +486,7 @@ #dg.heaters.cmd_heaters_broadcast_interval_override(50) #sleep(1) dg.hd_proxy.cmd_start_stop_dg_heat_disinfect() + #dg.hd_proxy.cmd_start_stop_dg_heat_disinfect_active_cool() try: while True: @@ -501,6 +525,8 @@ except KeyboardInterrupt: dg.hd_proxy.cmd_start_stop_dg_heat_disinfect(start=False) + sleep(0.2) + dg.hd_proxy.cmd_start_stop_dg_heat_disinfect_active_cool(start=False) f.close() @@ -520,9 +546,10 @@ ro = get_ro_info() temp = get_temperature_sensors_info() heaters = get_heaters_info() - fans = get_dg_fans_info() + #fans = get_dg_fans_info() - var = disinfect + load_cell + conc + drain + ro + temp + heaters + fans + valves + '\r' + #var = disinfect + load_cell + conc + drain + ro + temp + heaters + fans + valves + '\r' + var = disinfect + load_cell + conc + drain + ro + temp + heaters + valves + '\r' print(var) f.write(var) @@ -543,7 +570,49 @@ dg.hd_proxy.cmd_start_stop_dg_chemical_disinfect(start=False) f.close() +def run_chem_disinfect_flush_mode(): + complete_counter = 1 + f = open("/home/fw/projects/dialin/tests/chem_disinfect_flush_mode.log", "w") + dg.hd_proxy.cmd_start_stop_dg_chemical_disinfect_flush() + #dg.cmd_dg_software_reset_request() + try: + while True: + flush = get_chemical_disinfect_flush_mode_info() + load_cell = get_load_cells_info() + drain = get_drain_states_info() + ro = get_ro_info() + temp = get_temperature_sensors_info() + conc = get_concentrate_pumps_info() + valves = get_dg_valves_states() + + var = flush + load_cell + drain + ro + + temp + conc + valves + '\r' + + print(var) + f.write(var) + sleep(1) + + # If the mode came back to standby or standby solo + if dg.dg_operation_mode == 3 or dg.dg_operation_mode == 4: + + # Write a few more complete states to make sure the complete state items are recorded + if complete_counter == 3: + f.close() + #events = dg.events.get_dg_events(2, 60) + #for event in events: + # print(event) + break + + complete_counter += 1 + + except KeyboardInterrupt: + dg.hd_proxy.cmd_start_stop_dg_chemical_disinfect_flush(start=False) + f.close() + #events = dg.events.get_dg_events(2, 50) + #for event in events: + # print(event) + + def cmd_set_disinfect_ui_screen(): hd = HD() sleep(0.5) @@ -571,7 +640,6 @@ valves = get_dg_valves_states() var = flush + uv_reactors + load_cell + drain + ro + conc + valves + '\r' - print(var) f.write(var) sleep(1) @@ -639,6 +707,8 @@ #run_chemical_disinfect() + run_chem_disinfect_flush_mode() + #run_dg() # cmd_set_disinfect_ui_screen()