########################################################################### # # Copyright (c) 2020-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_uf.py # # @author (last) Sean Nash # @date (last) 24-Sep-2022 # @author (original) Peter Lucia # @date (original) 14-Jul-2020 # ############################################################################ import sys sys.path.append("..") from time import sleep from leahi_dialin.ro.reverse_osmosis import RO from leahi_dialin.ro.modules.boost_pump import ROPumpNames from leahi_dialin.ro.modules.valves import ROValveNames from leahi_dialin.ro.modules.valves import ROValveStates from leahi_dialin.ro.modules.levels import ROFloaterLevels from leahi_dialin.ro.modules.flow_sensors import ROFlowSensorNames if __name__ == "__main__": # create a RO object called ro ro = RO(log_level="DEBUG") # log in to RO as a tester if ro.cmd_log_in_to_ro() == 0: exit(1) ro.valves.cmd_valve_override(ROValveNames.VWI.value,ROValveStates.VALVE_STATE_OPEN.value) ro.valves.cmd_valve_override(ROValveNames.VPI.value,ROValveStates.VALVE_STATE_OPEN.value) ro.valves.cmd_valve_override(ROValveNames.VROD.value,ROValveStates.VALVE_STATE_OPEN.value) ro.valves.cmd_valve_override(ROValveNames.VCR.value,ROValveStates.VALVE_STATE_OPEN.value) ro.pumps.cmd_boost_pump_set_pwm_request(ROPumpNames.PUMP_RO.value,250) # ro.valves.cmd_valve_override(ROValveNames.VWI.value, ROValveStates.VALVE_STATE_CLOSED.value) # ro.valves.cmd_valve_override(ROValveNames.VPI.value, ROValveStates.VALVE_STATE_CLOSED.value) # ro.valves.cmd_valve_override(ROValveNames.VROD.value, ROValveStates.VALVE_STATE_CLOSED.value) # ro.valves.cmd_valve_override(ROValveNames.VCR.value, ROValveStates.VALVE_STATE_CLOSED.value) # ro.pumps.cmd_boost_pump_set_pwm_request(ROPumpNames.PUMP_RO.value,0) # sleep(15) # ro.valves.cmd_valve_override(ROValveNames.VCR.value,ROValveStates.VALVE_STATE_CLOSED.value) # ro.pumps.cmd_boost_pump_set_pwm_request(ROPumpNames.PUMP_RO.value,100) # sleep(15) # ro.pumps.cmd_boost_pump_set_pwm_request(ROPumpNames.PUMP_RO.value,0) # ro.levels.cmd_level_state_override(ROFloaterLevels.LEVEL_STATE_HIGH.value) # ro.flows.cmd_flow_rate_override(ROFlowSensorNames.FLOW_SENSOR_RO_OUTLET.value, 0.5) # create log file with open("RO_test.log", "w") as f: # collect data and display/log it while True: sleep(1) modes = "RO.m, " + '{:2d}'.format(ro.ro_operation_mode) + \ ", RO.s, " + '{:2d}'.format(ro.ro_operation_sub_mode) pumps = ", RO.st, " + '{:4d}'.format(ro.pumps.ro_pump_state) + \ ", RO.dc, " + '{:9.2f}'.format(ro.pumps.ro_pump_duty_cycle) +\ ", RO.sp, " + '{:9.2f}'.format(ro.pumps.ro_pump_speed) press = ", PRi, " + '{:9.2f}'.format(ro.pressures.pressure_sensor_water_inlet_pre_reg) + \ ", PRo, " + '{:9.2f}'.format(ro.pressures.pressure_sensor_water_inlet_post_reg) + \ ", PC2o, " + '{:9.2f}'.format(ro.pressures.pressure_sensor_water_inlet_pre_cond) + \ ", PPo, " + '{:9.2f}'.format(ro.pressures.pressure_sensor_pre_ro_filter) + \ ", PMp, " + '{:9.2f}'.format(ro.pressures.pressure_sensor_post_ro_filter) + \ ", PPi, " + '{:9.2f}'.format(ro.pressures.pressure_sensor_pre_ro_pump) valves = ", VWi, " + '{:4d}'.format(ro.valves.valve_state_VWI.get("state")) + \ ", VFb, " + '{:4d}'.format(ro.valves.valve_state_VFB.get("state")) + \ ", VFf, " + '{:4d}'.format(ro.valves.valve_state_VFF.get("state")) + \ ", VPi, " + '{:4d}'.format(ro.valves.valve_state_VPI.get("state")) + \ ", VCr, " + '{:4d}'.format(ro.valves.valve_state_VCR.get("state")) + \ ", VCb, " + '{:4d}'.format(ro.valves.valve_state_VCB.get("state")) + \ ", VCd, " + '{:4d}'.format(ro.valves.valve_state_VCD.get("state")) + \ ", VROD, " + '{:4d}'.format(ro.valves.valve_state_VROD.get("state")) level = ", LRO, " + '{:4d}'.format(ro.levels.floater) flows = ", FMS, " + '{:9.2f}'.format(ro.flows.flowFMS) + \ ", FMP, " + '{:9.2f}'.format(ro.flows.flowFMP) # # alarms = ", AL.s, " + '{:1d}'.format(td.alarms.get_current_alarms_state()) + \ # ", AL.t, " + '{:4d}'.format(td.alarms.alarm_top) # log data f.write(modes) f.write(pumps) f.write(press) f.write(valves) f.write(level) f.write(flows) # f.write(alarms) f.write("\n") # print to console print(" Modes: "+modes) print(" Pumps: "+pumps) print(" Pressures: "+press) print(" Valves: "+valves) print(" Level: "+level) print(" Flows: "+flows) # print(" Alarms: "+alarms)