Index: dialin/dg/chemical_disinfect.py =================================================================== diff -u -rf876b77eab64261c89b8928b038e18de8125742a -r1261e3824e07dc805e6bf3d73c5ee340bb88fc15 --- dialin/dg/chemical_disinfect.py (.../chemical_disinfect.py) (revision f876b77eab64261c89b8928b038e18de8125742a) +++ dialin/dg/chemical_disinfect.py (.../chemical_disinfect.py) (revision 1261e3824e07dc805e6bf3d73c5ee340bb88fc15) @@ -30,16 +30,17 @@ DG_CHEM_DISINFECT_STATE_RINSE_R1_TO_R2_AND_DRAIN_R2 = 17 DG_CHEM_DISINFECT_STATE_RINSE_CIRCULATION = 18 DG_CHEM_DISINFECT_STATE_CANCEL_BASIC_PATH = 19 - DG_CHEM_DISINFECT_STATE_COMPLETE = 20 + DG_CHEM_DISINFECT_STATE_CANCEL_WATER_PATH = 20 + DG_CHEM_DISINFECT_STATE_COMPLETE = 21 @unique class CancellationModes(DialinEnum): CANCELLATION_MODE_NONE = 0 CANCELLATION_MODE_BASIC = 1 - CANCELLATION_MODE_HOT = 2 - CANCELLATION_MODE_COLD = 3 + CANCELLATION_MODE_WATER = 2 + CANCELLATION_MODE_CHEMICAL = 3 class ChemicalDisinfect(_AbstractSubSystem): @@ -70,8 +71,8 @@ self.can_interface.register_receiving_publication_function(channel_id, msg_id, self._handler_chemical_disinfect_sync) - @_publish(["chemical_disinfect_state", "overall_elapsed_time", "state_elapsed_time", "cancellation_mode", "r1_level", - "r2_level"]) + @_publish(["chemical_disinfect_state", "overall_elapsed_time", "state_elapsed_time", "cancellation_mode", + "r1_level", "r2_level"]) def _handler_chemical_disinfect_sync(self, message): """ Handles published chemical disinfect message Index: dialin/dg/valves.py =================================================================== diff -u -rdd42e4d9cfe821b0a755ccc86cc1a4a2a3dd2f37 -r1261e3824e07dc805e6bf3d73c5ee340bb88fc15 --- dialin/dg/valves.py (.../valves.py) (revision dd42e4d9cfe821b0a755ccc86cc1a4a2a3dd2f37) +++ dialin/dg/valves.py (.../valves.py) (revision 1261e3824e07dc805e6bf3d73c5ee340bb88fc15) @@ -29,7 +29,7 @@ @unique -class VPiVSPVBfStates(DialinEnum): +class VPiVSPVBfVRD1VRD2States(DialinEnum): VALVE_STATE_CLOSED = 0 VALVE_STATE_OPEN = 1 @@ -38,8 +38,8 @@ @unique class VPdStates(DialinEnum): - VALVE_STATE_OPEN_C_TO_NO = 0 - VALVE_STATE_DRAIN_C_TO_NC = 1 + VALVE_STATE_DRAIN_C_TO_NO = 0 + VALVE_STATE_OPEN_C_TO_NC = 1 @unique @@ -90,8 +90,8 @@ VALVE_DRAIN = 7 # VDR VALVE_PRESSURE_INLET = 8 # VPI VALVE_SAMPLING_PORT = 9 # VSP - VALVE_RESERVOIR_1 = 10 # VR1 - VALVE_RESERVOIR_2 = 11 # VR2 + VALVE_RESERVOIR_DRAIN_1 = 10 # VRD1 + VALVE_RESERVOIR_DRAIN_2 = 11 # VRD2 VALVE_PRODUCTION_DRAIN = 12 # VPD NUM_OF_VALVES = 13 # Number of valves @@ -121,8 +121,8 @@ self.valve_state_VDR = {"id": self.VALVE_DRAIN, "state": DEENERGIZED} self.valve_state_VPI = {"id": self.VALVE_PRESSURE_INLET, "state": DEENERGIZED} self.valve_state_VSP = {"id": self.VALVE_SAMPLING_PORT, "state": DEENERGIZED} - self.valve_state_VR1 = {"id": self.VALVE_RESERVOIR_1, "state": DEENERGIZED} - self.valve_state_VR2 = {"id": self.VALVE_RESERVOIR_2, "state": DEENERGIZED} + self.valve_state_VRD1 = {"id": self.VALVE_RESERVOIR_DRAIN_1, "state": DEENERGIZED} + self.valve_state_VRD2 = {"id": self.VALVE_RESERVOIR_DRAIN_2, "state": DEENERGIZED} self.valve_state_VPD = {"id": self.VALVE_PRODUCTION_DRAIN, "state": DEENERGIZED} self.valve_states_enum = [0 for i in range(self.NUM_OF_VALVES)] @@ -143,8 +143,8 @@ Valve Drain \n Valve Pressure Inlet \n Valve Sampling Port \n - Valve Reservoir 1 (spare for now including DG FPGA, as valve is of passive air relief type) \n - Valve Reservoir 2 (spare for now including DG FPGA, as valve is of passive air relief type) \n + Valve Reservoir 1 Drain \n + Valve Reservoir 2 Drain \n Valve Production Drain \n ]\n """ @@ -159,8 +159,8 @@ self.valve_state_VDR.get("state", None), self.valve_state_VPI.get("state", None), self.valve_state_VSP.get("state", None), - self.valve_state_VR1.get("state", None), - self.valve_state_VR2.get("state", None), + self.valve_state_VRD1.get("state", None), + self.valve_state_VRD2.get("state", None), self.valve_state_VPD.get("state", None) ] @@ -239,8 +239,8 @@ "valve_state_VDR", "valve_state_VPI", "valve_state_VSP", - "valve_state_VR1", - "valve_state_VR2", + "valve_state_VRD1", + "valve_state_VRD2", "valve_state_VPD", "valve_states_enum" ]) @@ -265,22 +265,22 @@ self.valve_state_VDR["state"] = self._binary_to_valve_state(vst[0] & 128) self.valve_state_VPI["state"] = self._binary_to_valve_state(vst[0] & 256) self.valve_state_VSP["state"] = self._binary_to_valve_state(vst[0] & 512) - self.valve_state_VR1["state"] = self._binary_to_valve_state(vst[0] & 1024) - self.valve_state_VR2["state"] = self._binary_to_valve_state(vst[0] & 2048) + self.valve_state_VRD1["state"] = self._binary_to_valve_state(vst[0] & 1024) + self.valve_state_VRD2["state"] = self._binary_to_valve_state(vst[0] & 2048) self.valve_state_VPD["state"] = self._binary_to_valve_state(vst[0] & 4096) self.valve_states_enum[self.VALVE_RESERVOIR_FILL] = VRdVRfStates(self._binary_to_valve_state(vst[0] & 1)).name # VRF self.valve_states_enum[self.VALVE_RESERVOIR_INLET] = VRoVRiStates(self._binary_to_valve_state(vst[0] & 2)).name # VRI self.valve_states_enum[self.VALVE_RESERVOIR_DRAIN] = VRdVRfStates(self._binary_to_valve_state(vst[0] & 4)).name # VRD self.valve_states_enum[self.VALVE_RESERVOIR_OUTLET] = VRoVRiStates(self._binary_to_valve_state(vst[0] & 8)).name # VRO self.valve_states_enum[self.VALVE_PRESSURE_OUTLET] = VPoStates(self._binary_to_valve_state(vst[0] & 16)).name # VPO - self.valve_states_enum[self.VALVE_BYPASS_FILTER] = VPiVSPVBfStates(self._binary_to_valve_state(vst[0] & 32)).name # VBF + self.valve_states_enum[self.VALVE_BYPASS_FILTER] = VPiVSPVBfVRD1VRD2States(self._binary_to_valve_state(vst[0] & 32)).name # VBF self.valve_states_enum[self.VALVE_RECIRCULATE] = VDrVRcStates(self._binary_to_valve_state(vst[0] & 64)).name # VRC self.valve_states_enum[self.VALVE_DRAIN] = VDrVRcStates(self._binary_to_valve_state(vst[0] & 128)).name # VDR - self.valve_states_enum[self.VALVE_PRESSURE_INLET] = VPiVSPVBfStates(self._binary_to_valve_state(vst[0] & 256)).name # VPI - self.valve_states_enum[self.VALVE_SAMPLING_PORT] = VPiVSPVBfStates(self._binary_to_valve_state(vst[0] & 512)).name # VSP - self.valve_states_enum[self.VALVE_RESERVOIR_1] = self._binary_to_valve_state(vst[0] & 1024) # VR1 - self.valve_states_enum[self.VALVE_RESERVOIR_2] = self._binary_to_valve_state(vst[0] & 2048) # VR2 + self.valve_states_enum[self.VALVE_PRESSURE_INLET] = VPiVSPVBfVRD1VRD2States(self._binary_to_valve_state(vst[0] & 256)).name # VPI + self.valve_states_enum[self.VALVE_SAMPLING_PORT] = VPiVSPVBfVRD1VRD2States(self._binary_to_valve_state(vst[0] & 512)).name # VSP + self.valve_states_enum[self.VALVE_RESERVOIR_DRAIN_1] = VPiVSPVBfVRD1VRD2States(self._binary_to_valve_state(vst[0] & 1024)).name # VRD1 + self.valve_states_enum[self.VALVE_RESERVOIR_DRAIN_2] = VPiVSPVBfVRD1VRD2States(self._binary_to_valve_state(vst[0] & 2048)).name # VRD2 self.valve_states_enum[self.VALVE_PRODUCTION_DRAIN] = VPdStates(self._binary_to_valve_state(vst[0] & 4096)).name # VPD def cmd_valve_override(self, state, valve, reset=NO_RESET): @@ -306,8 +306,8 @@ 7 = Valve Drain \n 8 = Valve Pressure Inlet \n 9 = Valve Sampling Port \n - 10 = Valve Reservoir 1 (spare for now including DG FPGA, as valve is of passive air relief type) \n - 11 = Valve Reservoir 2 (spare for now including DG FPGA, as valve is of passive air relief type) \n + 10 = Valve Reservoir 1 Drain \n + 11 = Valve Reservoir 2 Drain \n 12 = Valve Production Drain \n """ Index: dialin/hd/valves.py =================================================================== diff -u -r2e961b0daeddacde19f8a16718ed5eea3bd383f0 -r1261e3824e07dc805e6bf3d73c5ee340bb88fc15 --- dialin/hd/valves.py (.../valves.py) (revision 2e961b0daeddacde19f8a16718ed5eea3bd383f0) +++ dialin/hd/valves.py (.../valves.py) (revision 1261e3824e07dc805e6bf3d73c5ee340bb88fc15) @@ -235,7 +235,7 @@ self.logger.debug("HD current override Timeout!!!") return False - def cmd_set_hd_valve_position_count_override(self, valve:int, position:int, reset:int=NO_RESET) -> int: + def cmd_set_hd_valve_position_count_override(self, valve:int, position_count:int, reset:int=NO_RESET) -> int: """ Constructs and sends the HD valves set position for a valve @@ -244,13 +244,13 @@ VDO = 1 VBA = 2 VBV = 3 - @param position: integer value + @param position_count: integer value @param reset: integer - 1 to reset a previous override, 0 to override @returns 1 if successful, zero otherwise """ reset_value = integer_to_bytearray(reset) vlv = integer_to_bytearray(valve) - pos = integer_to_bytearray(position) + pos = integer_to_bytearray(position_count) payload = reset_value + pos + vlv message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_hd_ch_id, @@ -262,7 +262,7 @@ # If there is content... if received_message is not None: - self.logger.debug("Setting {} position to {} ".format(str(ValvesEnum(valve).name), position)) + self.logger.debug("Setting {} position to {} ".format(str(ValvesEnum(valve).name), position_count)) # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] @@ -332,7 +332,7 @@ self.logger.debug("HD Homing Valve Timeout!!!") return False - def cmd_set_hd_air_trap_valve(self, valve_state:int=AirTrapState.STATE_CLOSED.name) -> int: + def cmd_set_hd_air_trap_valve(self, valve_state:int=AirTrapState.STATE_CLOSED.value) -> int: """ Constructs and sends an open/close command to the HD air trap valve Index: tests/dg_heat_and_chemical_disinfect_test.py =================================================================== diff -u -rf876b77eab64261c89b8928b038e18de8125742a -r1261e3824e07dc805e6bf3d73c5ee340bb88fc15 --- tests/dg_heat_and_chemical_disinfect_test.py (.../dg_heat_and_chemical_disinfect_test.py) (revision f876b77eab64261c89b8928b038e18de8125742a) +++ tests/dg_heat_and_chemical_disinfect_test.py (.../dg_heat_and_chemical_disinfect_test.py) (revision 1261e3824e07dc805e6bf3d73c5ee340bb88fc15) @@ -136,6 +136,7 @@ complete_counter = 1 f = open("/home/fw/projects/dialin/tests/Heat_disinfect.log", "w") dg.hd_proxy.cmd_start_stop_heat_disinfect() + #dg.hd_proxy.cmd_start_stop_dg() try: while True: @@ -155,11 +156,13 @@ 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: # If it is the first call, stop heat disinfect if complete_counter == 1: dg.hd_proxy.cmd_start_stop_heat_disinfect(start=False) + # Write a few more complete states to make sure the complete state items are recorded elif complete_counter == 3: #pass @@ -168,8 +171,10 @@ complete_counter += 1 + except KeyboardInterrupt: dg.hd_proxy.cmd_start_stop_heat_disinfect(start=False) + #dg.hd_proxy.cmd_start_stop_dg(start=False) f.close() @@ -201,7 +206,7 @@ if dg.dg_operation_mode == 3 or dg.dg_operation_mode == 4: # If it is the first call, stop heat disinfect if complete_counter == 1: - dg.hd_proxy.cmd_start_stop_heat_disinfect(start=False) + dg.hd_proxy.cmd_start_stop_dg_chemical_disinfect(start=False) # Write a few more complete states to make sure the complete state items are recorded elif complete_counter == 3: #pass @@ -211,7 +216,7 @@ complete_counter += 1 except KeyboardInterrupt: - dg.hd_proxy.cmd_start_stop_heat_disinfect(start=False) + dg.hd_proxy.cmd_start_stop_dg_chemical_disinfect(start=False) f.close() Index: tests/test_flush.py =================================================================== diff -u -r7d528c2109af39ed65e9dd3d61162de89ad22d96 -r1261e3824e07dc805e6bf3d73c5ee340bb88fc15 --- tests/test_flush.py (.../test_flush.py) (revision 7d528c2109af39ed65e9dd3d61162de89ad22d96) +++ tests/test_flush.py (.../test_flush.py) (revision 1261e3824e07dc805e6bf3d73c5ee340bb88fc15) @@ -10,13 +10,14 @@ info = ('State, {}, Overall_elapsed_time, {}, State_elapsed_time, {}, Drain_vol, {:5.3f}, ' .format(dg.flush.flush_state, dg.flush.overall_elapsed_time, dg.flush.state_elapsed_time, - dg.flush.flush_drain_line_volume)) + dg.flush.flush_drain_line_volume_l)) return info def get_dg_valves_states(): info = ('VPi, {}, VSP, {}, VPd, {}, VBf, {}, VPo, {}, VDr, {}, VRc, {}, VRo, {}, VRd, {}, VRi, {}, VRf, {}, ' + 'VRD1, {}, VRD2, {}, ' .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], @@ -27,7 +28,9 @@ 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])) + dg.valves.valve_states_enum[dg.valves.VALVE_RESERVOIR_FILL], + dg.valves.valve_states_enum[dg.valves.VALVE_RESERVOIR_DRAIN_1], + dg.valves.valve_states_enum[dg.valves.VALVE_RESERVOIR_DRAIN_2])) return info @@ -80,11 +83,11 @@ # If the mode came back to standby or standby solo if dg.dg_operation_mode == 3 or dg.dg_operation_mode == 4: # If it is the first call, stop heat disinfect - if complete_counter == 1: - dg.hd_proxy.cmd_start_stop_dg_flush(start=False) + #if complete_counter == 1: + #dg.hd_proxy.cmd_start_stop_dg_flush(start=False) # Write a few more complete states to make sure the complete state items are recorded - elif complete_counter == 3: + if complete_counter == 3: f.close() break