Index: leahi_dialin/ro/modules/boost_pump.py =================================================================== diff -u -rcc62efcf5a2ca1bf566234f8b4447f4fbc8e1ab2 -rf57dc553d3b4af35cdd40cfb5051c4955da0cff2 --- leahi_dialin/ro/modules/boost_pump.py (.../boost_pump.py) (revision cc62efcf5a2ca1bf566234f8b4447f4fbc8e1ab2) +++ leahi_dialin/ro/modules/boost_pump.py (.../boost_pump.py) (revision f57dc553d3b4af35cdd40cfb5051c4955da0cff2) @@ -23,7 +23,12 @@ from leahi_dialin.utils.checks import check_broadcast_interval_override_ms from leahi_dialin.utils.conversions import integer_to_bytearray, float_to_bytearray +@unique +class ROPumpNames(DialinEnum): + PUMP_RO = 0 + PUMP_BOOSTER = 1 + class ROPumps(AbstractSubSystem): """ Treatment Device (RO) Dialin API sub-class for blood-flow related commands. Index: leahi_dialin/ro/modules/valves.py =================================================================== diff -u -r4ef1f9521c81e763573383b62e7ff184b9c8a889 -rf57dc553d3b4af35cdd40cfb5051c4955da0cff2 --- leahi_dialin/ro/modules/valves.py (.../valves.py) (revision 4ef1f9521c81e763573383b62e7ff184b9c8a889) +++ leahi_dialin/ro/modules/valves.py (.../valves.py) (revision f57dc553d3b4af35cdd40cfb5051c4955da0cff2) @@ -218,15 +218,15 @@ self.logger.debug("Timeout!!!!") return False - def cmd_valve_override(self, valve: int, state: bool, reset: int = NO_RESET) -> int: + def cmd_valve_override(self, valve: int, state: int, reset: int = NO_RESET) -> int: """ Constructs and sends the valve state override command. Constraints: Must be logged into RO. Given valve ID must be one of the valve IDs listed below. @param valve: unsigned int - valve ID - @param state: bool - valve state + @param state: int - valve state (0=de-energized/closed, 1=energized/open) @param reset: integer - 1 to reset a previous override, 0 to override @return: 1 if successful, zero otherwise """ Index: tests/test_ro.py =================================================================== diff -u -r36304223d29e68ad9b8e5942543a38765a62e7ff -rf57dc553d3b4af35cdd40cfb5051c4955da0cff2 --- tests/test_ro.py (.../test_ro.py) (revision 36304223d29e68ad9b8e5942543a38765a62e7ff) +++ tests/test_ro.py (.../test_ro.py) (revision f57dc553d3b4af35cdd40cfb5051c4955da0cff2) @@ -18,37 +18,26 @@ sys.path.append("..") from time import sleep -from leahi_dialin.ro.modules.constants import NO_RESET -#from leahi_dialin.td.treatment_delivery import TD -#from leahi_dialin.dd.dialysate_delivery import DD from leahi_dialin.ro.reverse_osmosis import RO - -from leahi_dialin.ro.modules.valves import ROValveStates +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 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") # create a RO object called ro ro = RO(log_level="DEBUG") - sleep(2) - # log in to TD, DD and RO as tester + # log in to RO as a tester if ro.cmd_log_in_to_ro() == 0: exit(1) -# if dd.cmd_log_in_to_dd() == 0: -# exit(1) -# if ro.cmd_log_in_to_ro() == 0: -# exit(1) -# sleep(1) - # ro.valves.cmd_valve_override(0,True,NO_RESET) - # sleep(5) - # ro.valves.cmd_valve_override(0,False,NO_RESET) + ro.valves.cmd_valve_override(ROValveNames.VWI,ROValveStates.VALVE_STATE_OPEN) + sleep(15) + ro.valves.cmd_valve_override(ROValveNames.VWI,ROValveStates.VALVE_STATE_CLOSED) - ro.pumps.cmd_boost_pump_set_pwm_request(0,50) + ro.pumps.cmd_boost_pump_set_pwm_request(ROPumpNames.PUMP_RO,50) + sleep(15) + ro.pumps.cmd_boost_pump_set_pwm_request(ROPumpNames.PUMP_RO,0) # create log file with open("RO_test.log", "w") as f: @@ -58,45 +47,37 @@ sleep(1) modes = "RO.m, " + '{:2d}'.format(ro.ro_operation_mode) + \ ", RO.s, " + '{:2d}'.format(ro.ro_operation_sub_mode) - # ", DD.m, " + '{:2d}'.format(dd.dd_operation_mode) + \ - # ", DD.s, " + '{:2d}'.format(dd.dd_operation_sub_mode) - pumpSetPts = ", RO.st, " + '{:4d}'.format(ro.pumps.ro_pump_state) + \ - ", RO.dc, " + '{:9.2f}'.format(ro.pumps.ro_pump_duty_cycle) - # ", ROP.s, " + '{:9.2f}'.format(ro.ro_pump.TBD) - pumpMeasSpds = ", RO.m, " + '{:7.1f}'.format(ro.pumps.ro_pump_speed) - # ", BP.r, " + '{:6.1f}'.format(td.blood_flow.measured_blood_pump_rotor_speed) + \ - # ", BP.f, " + '{:7.1f}'.format(td.blood_flow.measured_blood_flow_rate) + 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) - # valves = ", VBA, " + td.valves.valves_status[ValvesEnum.VBA.name]["PosID"] + \ - # ", VBV, " + td.valves.valves_status[ValvesEnum.VBV.name]["PosID"] - # air = ", ADV, " + '{:1d}'.format(td.bubbles.air_bubbles_status) + \ - # ", ULBl, " + '{:1d}'.format(td.air_trap.lower_level) + \ - # ", ULBu, " + '{:1d}'.format(td.air_trap.upper_level) + \ - # ", AP, " + '{:1d}'.format(td.air_pump.air_pump_state) + \ - # ", VBT, " + '{:1d}'.format(td.air_trap.valve_state) + valves = ", VWi, " + '{:4d}'.format(ro.valves.valve_state_VWI) + \ + ", VFb, " + '{:4d}'.format(ro.valves.valve_state_VFB) + \ + ", VFf, " + '{:4d}'.format(ro.valves.valve_state_VFF) + \ + ", VPi, " + '{:4d}'.format(ro.valves.valve_state_VPI) + \ + ", VCr, " + '{:4d}'.format(ro.valves.valve_state_VCR) + \ + ", VCb, " + '{:4d}'.format(ro.valves.valve_state_VCB) + \ + ", VCd, " + '{:4d}'.format(ro.valves.valve_state_VCD) + \ + ", VROD, " + '{:4d}'.format(ro.valves.valve_state_VROD) # 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(pumpSetPts) - f.write(pumpMeasSpds) + f.write(pumps) f.write(press) - # f.write(valves) - # f.write(air) + f.write(valves) # f.write(alarms) f.write("\n") # print to console print(" Modes: "+modes) - print("Pump Set Pts: "+pumpSetPts) - print(" Pump Speeds: "+pumpMeasSpds) + print("Pump Set Pts: "+pumps) print(" Pressures: "+press) - # print(" Valves: "+valves) - # print(" Air: "+air) + print(" Valves: "+valves) # print(" Alarms: "+alarms) Index: tests/test_td.py =================================================================== diff -u -r75e45186be1231371bf2ab6f9dfdbf3ca9b50bdb -rf57dc553d3b4af35cdd40cfb5051c4955da0cff2 --- tests/test_td.py (.../test_td.py) (revision 75e45186be1231371bf2ab6f9dfdbf3ca9b50bdb) +++ tests/test_td.py (.../test_td.py) (revision f57dc553d3b4af35cdd40cfb5051c4955da0cff2) @@ -1,48 +1,19 @@ -########################################################################### -# -# 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.td.treatment_delivery import TD -#from leahi_dialin.dd.dialysate_delivery import DD -#from leahi_dialin.ro.reverse_osmosis import RO -from leahi_dialin.td.modules.valves import ValvesEnum - 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") - # create a RO object called ro -# ro = RO(log_level="DEBUG") - sleep(2) - # log in to TD, DD and RO as tester + # log in to TD as a tester if td.cmd_log_in_to_td() == 0: exit(1) -# if dd.cmd_log_in_to_dd() == 0: -# exit(1) -# if ro.cmd_log_in_to_ro() == 0: -# exit(1) -# sleep(1) - # send command to show round-trip communication w/ firmware is working + # set BP RPM td.blood_flow.cmd_blood_flow_set_speed_rate_request(1000) # create log file @@ -53,42 +24,22 @@ sleep(1) modes = "TD.m, " + '{:2d}'.format(td.td_operation_mode) + \ ", TD.s, " + '{:2d}'.format(td.td_operation_sub_mode) - # ", DD.m, " + '{:2d}'.format(dd.dd_operation_mode) + \ - # ", DD.s, " + '{:2d}'.format(dd.dd_operation_sub_mode) pumpSetPts = ", BP.sf, " + '{:4d}'.format(td.blood_flow.set_blood_flow_rate) + \ ", BP.ss, " + '{:9.2f}'.format(td.blood_flow.set_rpm) - # ", ROP.s, " + '{:9.2f}'.format(ro.ro_pump.TBD) pumpMeasSpds = ", BP.m, " + '{:7.1f}'.format(td.blood_flow.measured_blood_pump_speed) - # ", BP.r, " + '{:6.1f}'.format(td.blood_flow.measured_blood_pump_rotor_speed) + \ - # ", BP.f, " + '{:7.1f}'.format(td.blood_flow.measured_blood_flow_rate) press = ", PBA, " + '{:9.2f}'.format(td.pressure_sensors.arterial_pressure) + \ ", PBV, " + '{:9.2f}'.format(td.pressure_sensors.venous_pressure) - # valves = ", VBA, " + td.valves.valves_status[ValvesEnum.VBA.name]["PosID"] + \ - # ", VBV, " + td.valves.valves_status[ValvesEnum.VBV.name]["PosID"] - # air = ", ADV, " + '{:1d}'.format(td.bubbles.air_bubbles_status) + \ - # ", ULBl, " + '{:1d}'.format(td.air_trap.lower_level) + \ - # ", ULBu, " + '{:1d}'.format(td.air_trap.upper_level) + \ - # ", AP, " + '{:1d}'.format(td.air_pump.air_pump_state) + \ - # ", VBT, " + '{:1d}'.format(td.air_trap.valve_state) - # 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(pumpSetPts) f.write(pumpMeasSpds) f.write(press) - # f.write(valves) - # f.write(air) - # f.write(alarms) f.write("\n") # print to console - print(" Modes: "+modes) +# print(" Modes: "+modes) print("Pump Set Pts: "+pumpSetPts) print(" Pump Speeds: "+pumpMeasSpds) print(" Pressures: "+press) - # print(" Valves: "+valves) - # print(" Air: "+air) - # print(" Alarms: "+alarms)