Index: dialin/dg/chemical_disinfect.py =================================================================== diff -u -r597b213629a8243dd0d76ee5fe16f7b83e64483f -rcea384a65cd9f07a347924eb760c012f3520d874 --- dialin/dg/chemical_disinfect.py (.../chemical_disinfect.py) (revision 597b213629a8243dd0d76ee5fe16f7b83e64483f) +++ dialin/dg/chemical_disinfect.py (.../chemical_disinfect.py) (revision cea384a65cd9f07a347924eb760c012f3520d874) @@ -20,23 +20,24 @@ DG_CHEM_DISINFECT_STATE_FLUSH_DRAIN_R2 = 7 DG_CHEM_DISINFECT_STATE_FLUSH_DRAIN_R1 = 8 DG_CHEM_DISINFECT_STATE_FILL_WITH_WATER_AND_DISINFECTANT = 9 - DG_CHEM_DISINFECT_STATE_DISINFECT_R1_TO_R2 = 10 - DG_CHEM_DISINFECT_STATE_FILL_R2_WITH_DISINFECTANT = 11 - DG_CHEM_DISINFECT_STATE_DISINFECT_R2_TO_R1 = 12 - DG_CHEM_DISINFECT_STATE_COOL_DOWN_HEATERS = 13 - DG_CHEM_DISINFECT_STATE_DISINFECTANT_DRAIN_R1 = 14 - DG_CHEM_DISINFECT_STATE_DISINFECTANT_DRAIN_R2 = 15 - DG_CHEM_DISINFECT_STATE_RINSE_R1_TO_R2 = 16 - DG_CHEM_DISINFECT_STATE_RINSE_R2_TO_R1_AND_DRAIN_R1 = 17 - DG_CHEM_DISINFECT_STATE_RINSE_R1_TO_R2_AND_DRAIN_R2 = 18 - DG_CHEM_DISINFECT_STATE_RINSE_CIRCULATION = 19 - DG_CHEM_DISINFECT_STATE_CANCEL_BASIC_PATH = 20 - DG_CHEM_DISINFECT_STATE_CANCEL_WATER_PATH = 21 - DG_CHEM_DISINFECT_STATE_COMPLETE = 22 + DG_CHEM_DISINFECT_STATE_REMOVE_ACID_BOTTLE_FROM_UI = 10 + DG_CHEM_DISINFECT_STATE_DISINFECT_R1_TO_R2 = 11 + DG_CHEM_DISINFECT_STATE_FILL_R2_WITH_DISINFECTANT = 12 + DG_CHEM_DISINFECT_STATE_DISINFECT_R2_TO_R1 = 13 + DG_CHEM_DISINFECT_STATE_COOL_DOWN_HEATERS = 14 + DG_CHEM_DISINFECT_STATE_DISINFECTANT_DRAIN_R1 = 15 + DG_CHEM_DISINFECT_STATE_DISINFECTANT_DRAIN_R2 = 16 + DG_CHEM_DISINFECT_STATE_RINSE_R1_TO_R2 = 17 + DG_CHEM_DISINFECT_STATE_RINSE_R2_TO_R1_AND_DRAIN_R1 = 18 + DG_CHEM_DISINFECT_STATE_RINSE_R1_TO_R2_AND_DRAIN_R2 = 19 + DG_CHEM_DISINFECT_STATE_RINSE_CIRCULATION = 20 + DG_CHEM_DISINFECT_STATE_CANCEL_BASIC_PATH = 21 + DG_CHEM_DISINFECT_STATE_CANCEL_WATER_PATH = 22 + DG_CHEM_DISINFECT_STATE_COMPLETE = 23 @unique -class CancellationModes(DialinEnum): +class ChemCancellationModes(DialinEnum): CANCELLATION_MODE_NONE = 0 CANCELLATION_MODE_BASIC = 1 Index: dialin/dg/conductivity_sensors.py =================================================================== diff -u -r5d36fab08811664f85c4de033dc34c51cc9bb9a4 -rcea384a65cd9f07a347924eb760c012f3520d874 --- dialin/dg/conductivity_sensors.py (.../conductivity_sensors.py) (revision 5d36fab08811664f85c4de033dc34c51cc9bb9a4) +++ dialin/dg/conductivity_sensors.py (.../conductivity_sensors.py) (revision cea384a65cd9f07a347924eb760c012f3520d874) @@ -72,7 +72,8 @@ """ return self.ro_rejection_ratio - @_publish(["ro_rejection_ratio", "conductivity_sensor_cpi", "conductivity_sensor_cpo", "conductivity_sensor_cd1", "conductivity_sensor_cd2"]) + @_publish(["ro_rejection_ratio", "conductivity_sensor_cpi", "conductivity_sensor_cpo", "conductivity_sensor_cd1", + "conductivity_sensor_cd2"]) def _handler_conductivity_sensors_sync(self, message): """ Handles published conductivity sensor data messages. Conductivity sensor data are captured Index: dialin/dg/hd_proxy.py =================================================================== diff -u -r597b213629a8243dd0d76ee5fe16f7b83e64483f -rcea384a65cd9f07a347924eb760c012f3520d874 --- dialin/dg/hd_proxy.py (.../hd_proxy.py) (revision 597b213629a8243dd0d76ee5fe16f7b83e64483f) +++ dialin/dg/hd_proxy.py (.../hd_proxy.py) (revision cea384a65cd9f07a347924eb760c012f3520d874) @@ -161,7 +161,7 @@ message_id=MsgIds.MSG_ID_STARTING_STOPPING_TREATMENT_CMD.value, payload=payload) - self.logger.debug(str+"DG cmd sent to DG") + self.logger.debug(str+" DG cmd sent to DG") # Send message received_message = self.can_interface.send(message) Index: dialin/dg/heat_disinfect.py =================================================================== diff -u -rf876b77eab64261c89b8928b038e18de8125742a -rcea384a65cd9f07a347924eb760c012f3520d874 --- dialin/dg/heat_disinfect.py (.../heat_disinfect.py) (revision f876b77eab64261c89b8928b038e18de8125742a) +++ dialin/dg/heat_disinfect.py (.../heat_disinfect.py) (revision cea384a65cd9f07a347924eb760c012f3520d874) @@ -35,7 +35,7 @@ @unique -class CancellationModes(DialinEnum): +class HeatCancellationModes(DialinEnum): CANCELLATION_MODE_NONE = 0 CANCELLATION_MODE_BASIC = 1 Index: tests/dg_heat_and_chemical_disinfect_test.py =================================================================== diff -u -r7fa5f37e738a58e4e6a784bcd3e638c06a6d0b9e -rcea384a65cd9f07a347924eb760c012f3520d874 --- tests/dg_heat_and_chemical_disinfect_test.py (.../dg_heat_and_chemical_disinfect_test.py) (revision 7fa5f37e738a58e4e6a784bcd3e638c06a6d0b9e) +++ tests/dg_heat_and_chemical_disinfect_test.py (.../dg_heat_and_chemical_disinfect_test.py) (revision cea384a65cd9f07a347924eb760c012f3520d874) @@ -3,43 +3,48 @@ import sys sys.path.append("..") from dialin.dg.dialysate_generator import DG -from dialin.dg.heat_disinfect import HeatDisinfectStates, CancellationModes -from dialin.dg.chemical_disinfect import ChemicalDisinfectStates, CancellationModes +from dialin.dg.heat_disinfect import HeatDisinfectStates, HeatCancellationModes +from dialin.dg.chemical_disinfect import ChemicalDisinfectStates, ChemCancellationModes from dialin.dg.drain_pump import DrainPumpStates from dialin.dg.thermistors import ThermistorsNames from dialin.dg.temperature_sensors import TemperatureSensorsNames from dialin.dg.dialysate_generator import DGOperationModes -from dialin.dg.valves import * from time import sleep def get_chemical_disinfect_mode_info(): + info = ('State, {}, Overall_elapsed_time, {}, State_elapsed_time, {}, Disinfect_elapsed_time, {}, ' 'Cancellation_mode, {}, R1_level, {:5.3f}, R1_drift, {:5.3f}, R2_level, {:5.3f}, R2_drift, {:5.3f}, ' 'Current_rinse_count, {}, Total_rinse_count, {}, ' .format(ChemicalDisinfectStates(dg.chemical_disinfect.chemical_disinfect_state).name, dg.chemical_disinfect.overall_elapsed_time, dg.chemical_disinfect.state_elapsed_time, dg.chemical_disinfect.disinfect_elapsed_time, - CancellationModes(dg.chemical_disinfect.cancellation_mode).name, dg.chemical_disinfect.r1_level, + ChemCancellationModes(dg.chemical_disinfect.cancellation_mode).name, dg.chemical_disinfect.r1_level, (dg.chemical_disinfect.r1_level - dg.load_cells.load_cell_A1), dg.chemical_disinfect.r2_level, (dg.chemical_disinfect.r2_level - dg.load_cells.load_cell_B1), dg.chemical_disinfect.current_post_rinse_count, dg.chemical_disinfect.target_post_rinse_count)) return info def get_concentrate_pumps_info(): - pass - # TODO add concentrate pumps and the conductivity sensors information + info = ('Bicarb_tgt_speed, {:5.3f}, Bicarb_speed, {:5.3f}, CPo, {:5.3f}, CD1, {:5.3f}, CD2, {:5.3f}, ' + .format(dg.concentrate_pumps.concentrate_pump_cp2_current_set_speed, + dg.concentrate_pumps.concentrate_pump_cp2_measured_speed, + dg.conductivity_sensors.conductivity_sensor_cpo, dg.conductivity_sensors.conductivity_sensor_cd1, + dg.conductivity_sensors.conductivity_sensor_cd2)) + return info + def get_heat_disinfect_mode_info(): info = ('State, {}, Overall_elapsed_time, {}, State_elapsed_time, {}, Disinfect_elapsed_time, {}, ' - 'Cancellation_mode, {}, R1_level, {:5.3f}, R1_drift, {:5.3f}, R2_level, {:5.3f}, R2_drift, {:5.3f} ' + 'Cancellation_mode, {}, R1_level, {:5.3f}, R1_drift, {:5.3f}, R2_level, {:5.3f}, R2_drift, {:5.3f}, ' .format(HeatDisinfectStates(dg.heat_disinfect.heat_disinfect_state).name, dg.heat_disinfect.overall_elapsed_time, dg.heat_disinfect.state_elapsed_time, dg.heat_disinfect.disinfect_elapsed_time, - CancellationModes(dg.heat_disinfect.cancellation_mode).name, dg.heat_disinfect.r1_level, + HeatCancellationModes(dg.heat_disinfect.cancellation_mode).name, dg.heat_disinfect.r1_level, (dg.heat_disinfect.r1_level - dg.load_cells.load_cell_A1), dg.heat_disinfect.r2_level, (dg.heat_disinfect.r2_level - dg.load_cells.load_cell_B1))) return info @@ -148,57 +153,68 @@ def run_dg(): counter = 1 + timer = 1 + sleep_time = 0.05 f = open("/home/fw/projects/dialin/tests/run_dg.log", "w") + """ dg.valves.cmd_valve_broadcast_interval_override(50) sleep(0.25) dg.pressures.cmd_pressure_broadcast_interval_override(50) sleep(0.25) dg.drain_pump.cmd_drain_pump_data_broadcast_interval_override(50) sleep(0.25) + dg.ro_pump.cmd_ro_pump_data_broadcast_interval_override(50) + sleep(0.25) + """ dg.hd_proxy.cmd_start_stop_dg() sleep(0.1) - #dg.hd_proxy.cmd_switch_reservoirs(reservoirID=0) - #sleep(0.1) try: while True: dg_run = get_dg_run_info() + temperature = get_temperature_sensors_info() load_cell = get_load_cells_info() drain = get_drain_states_info() ro = get_ro_info() valves = get_dg_valves_states() - var = str(counter) + ', ' + dg_run + load_cell + drain + ro + valves + '\r' + var = str(timer) + ', ' + str(counter) + ', ' + dg_run + temperature + load_cell + drain + ro + \ + valves + '\r' print(var) f.write(var) if DGOperationModes(dg.dg_operation_mode).name == DGOperationModes.DG_OP_MODE_RECIRCULATE.name and\ dg.dg_operation_sub_mode == 2 and counter == 1: - dg.hd_proxy.cmd_switch_reservoirs(reservoirID=0) - sleep(2) - counter += 1 - if DGOperationModes(dg.dg_operation_mode).name == DGOperationModes.DG_OP_MODE_RECIRCULATE.name and\ + if timer == 1: + dg.hd_proxy.cmd_switch_reservoirs(reservoirID=1) + + timer += 1 + + if timer > ((1/sleep_time) * 10): + timer = 1 + counter += 1 + + elif DGOperationModes(dg.dg_operation_mode).name == DGOperationModes.DG_OP_MODE_RECIRCULATE.name and\ dg.dg_operation_sub_mode == 2 and counter == 2: dg.hd_proxy.cmd_drain(tare_load_cell=True) counter += 1 - sleep(0.15) + timer = 1 - if DGOperationModes(dg.dg_operation_mode).name == DGOperationModes.DG_OP_MODE_RECIRCULATE.name and\ + elif DGOperationModes(dg.dg_operation_mode).name == DGOperationModes.DG_OP_MODE_RECIRCULATE.name and\ dg.dg_operation_sub_mode == 2 and counter == 3: - dg.hd_proxy.cmd_fill(volume=1900) - #dg.hd_proxy.cmd_switch_reservoirs(reservoirID=0) - #sleep(10) - #dg.hd_proxy.cmd_drain() - counter += 1 - #sleep(0.15) - sleep(0.05) + timer += 1 + if timer > 4: + dg.hd_proxy.cmd_fill(volume=1000) + counter += 1 + sleep(sleep_time) + except KeyboardInterrupt: dg.hd_proxy.cmd_start_stop_dg(start=False) f.close() @@ -213,7 +229,7 @@ try: while True: - disinfect = get_dg_run_info() + disinfect = get_heat_disinfect_mode_info() drain = get_drain_states_info() load_cell = get_load_cells_info() valves = get_dg_valves_states() @@ -259,13 +275,14 @@ disinfect = get_chemical_disinfect_mode_info() drain = get_drain_states_info() load_cell = get_load_cells_info() + conc = get_concentrate_pumps_info() valves = get_dg_valves_states() ro = get_ro_info() temp = get_temperature_sensors_info() heaters = get_heaters_info() fans = get_fans_info() - var = disinfect + load_cell + drain + ro + temp + heaters + fans + valves + '\r' + var = disinfect + load_cell + conc + drain + ro + temp + heaters + fans + valves + '\r' print(var) f.write(var) @@ -295,8 +312,8 @@ #run_heat_disinfect() - #run_chemical_disinfect() + run_chemical_disinfect() - run_dg() + #run_dg() Index: tests/hd_valves_test.py =================================================================== diff -u -r2e961b0daeddacde19f8a16718ed5eea3bd383f0 -rcea384a65cd9f07a347924eb760c012f3520d874 --- tests/hd_valves_test.py (.../hd_valves_test.py) (revision 2e961b0daeddacde19f8a16718ed5eea3bd383f0) +++ tests/hd_valves_test.py (.../hd_valves_test.py) (revision cea384a65cd9f07a347924eb760c012f3520d874) @@ -40,19 +40,22 @@ loops = 5 counter = 0 - valve = ValvesEnum.VBV + valve = ValvesEnum.VDI valves.cmd_hd_valves_broadcast_interval_override(100) sleep(3) + #valves.cmd_set_hd_valve_position(0, 2) + #sleep(3) + valves.cmd_home_hd_valve(valve.value) sleep(3) - valves.cmd_set_hd_valve_current_override(valve.value, 0.85, reset=1) - sleep(3) + #valves.cmd_set_hd_valve_current_override(valve.value, 0.85, reset=1) + #sleep(3) - valves.cmd_set_hd_valve_position_count_override(valve.value, 5000, reset=1) - sleep(2) + #valves.cmd_set_hd_valve_position_count_override(valve.value, 5000, reset=1) + #sleep(2) f = open("Valves_Test_200.log", "w")