Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -rdaf4763d6f40baf4cbc2f9d88aba7d9faf588ad6 -rd32847d87534b3273deb7362f598aba60877e7b8 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision daf4763d6f40baf4cbc2f9d88aba7d9faf588ad6) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision d32847d87534b3273deb7362f598aba60877e7b8) @@ -7,8 +7,8 @@ * * @file ModeStandby.c * -* @author (last) Dara Navaei -* @date (last) 27-Sep-2022 +* @author (last) Bill Bracken +* @date (last) 30-Nov-2022 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -312,6 +312,7 @@ { stopSampleWaterRequest = FALSE; setValveState( VSP, VALVE_STATE_CLOSED ); + setValveState( VPI, VALVE_STATE_CLOSED ); state = DG_STANDBY_MODE_STATE_FLUSH_FILTER_IDLE; } Index: firmware/App/Services/AlarmMgmtSWFaults.h =================================================================== diff -u -r5e8f96e11c797bddeddfc009c87f20df3b7a8664 -rd32847d87534b3273deb7362f598aba60877e7b8 --- firmware/App/Services/AlarmMgmtSWFaults.h (.../AlarmMgmtSWFaults.h) (revision 5e8f96e11c797bddeddfc009c87f20df3b7a8664) +++ firmware/App/Services/AlarmMgmtSWFaults.h (.../AlarmMgmtSWFaults.h) (revision d32847d87534b3273deb7362f598aba60877e7b8) @@ -140,6 +140,7 @@ SW_FAULT_ID_INVALID_FPGA_ERROR_GROUP_SELECTED, SW_FAULT_ID_INVALID_LED_COLOR_SELECTED, // 110 SW_FAULT_ID_INVALID_SWITCH_SELECTED, + SW_FAULT_ID_DG_CHEM_DISINFECT_FLUSH_INVALID_EXEC_STATE, SW_FAULT_ID_INVALID_PI_PROFILE_SELECTED, SW_FAULT_ID_PI_CTRL_INVALID_STEP_LIMIT, NUM_OF_SW_FAULT_IDS Index: firmware/App/Services/PIControllers.h =================================================================== diff -u -r5e8f96e11c797bddeddfc009c87f20df3b7a8664 -rd32847d87534b3273deb7362f598aba60877e7b8 --- firmware/App/Services/PIControllers.h (.../PIControllers.h) (revision 5e8f96e11c797bddeddfc009c87f20df3b7a8664) +++ firmware/App/Services/PIControllers.h (.../PIControllers.h) (revision d32847d87534b3273deb7362f598aba60877e7b8) @@ -36,6 +36,7 @@ PI_CONTROLLER_ID_RO_PUMP_FLOW = 0, ///< RO Pump controller to flow PI_CONTROLLER_ID_DRAIN_PUMP, ///< Drain Pump controller PI_CONTROLLER_ID_RO_PUMP_MAX_PRES, ///< RO pump controller to maximum pressure + PI_CONTROLLER_ID_DRAIN_PUMP_VOLUME, ///< Drain pump controller using reservoir volume NUM_OF_PI_CONTROLLERS_IDS ///< Number of PI controllers } PI_CONTROLLER_ID_T; Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -rd3926e5817813a9588b77f6c382940176a5feedc -rd32847d87534b3273deb7362f598aba60877e7b8 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision d3926e5817813a9588b77f6c382940176a5feedc) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision d32847d87534b3273deb7362f598aba60877e7b8) @@ -877,6 +877,10 @@ handleStartStopDGChemicalDisinfect( message ); break; + case MSG_ID_DG_START_STOP_CHEM_DISINFECT_FLUSH: + handleStartStopDGChemicalDisinfectFlush( message ); + break; + case MSG_ID_UI_DG_SET_RTC_REQUEST: handleUIClockSyncRequest( message ); break; Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -rd3926e5817813a9588b77f6c382940176a5feedc -rd32847d87534b3273deb7362f598aba60877e7b8 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision d3926e5817813a9588b77f6c382940176a5feedc) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision d32847d87534b3273deb7362f598aba60877e7b8) @@ -1386,6 +1386,41 @@ } /*********************************************************************//** +* @brief +* The handleStartStopDGChemicalDisinfectFlush function handles a request to start +* or stop DG chemical disinfect flush mode. +* @details Inputs: none +* @details Outputs: message handled +* @param message a pointer to the message to handle +* @return none +*************************************************************************/ +BOOL handleStartStopDGChemicalDisinfectFlush( MESSAGE_T *message ) +{ + BOOL result = FALSE; + + if ( message->hdr.payloadLen == sizeof(BOOL) ) + { + BOOL startingDGChemicalDisinfectFlush; + + memcpy( &startingDGChemicalDisinfectFlush, message->payload, sizeof(BOOL) ); + + if ( TRUE == startingDGChemicalDisinfectFlush ) + { + result = startDGChemicalDisinfectFlush(); + } + else + { + result = stopChemicalDisinfectFlush(); + } + } + + // Respond to request + sendAckResponseMsg( (MSG_ID_T)message->hdr.msgID, COMM_BUFFER_OUT_CAN_DG_2_HD, result ); + + return result; +} + +/*********************************************************************//** * @brief * The handleTestSetOpModeRequest function handles a request to set the * DG operation mode. Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -rd3926e5817813a9588b77f6c382940176a5feedc -rd32847d87534b3273deb7362f598aba60877e7b8 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision d3926e5817813a9588b77f6c382940176a5feedc) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision d32847d87534b3273deb7362f598aba60877e7b8) @@ -26,6 +26,7 @@ #include "LoadCell.h" #include "MessageSupport.h" #include "ModeChemicalDisinfect.h" +#include "ModeChemicalDisinfectFlush.h" #include "ModeFlush.h" #include "ModeHeatDisinfect.h" #include "MsgQueues.h" @@ -340,6 +341,9 @@ // MSG_ID_DG_START_STOP_CHEM_DSINFECT BOOL handleStartStopDGChemicalDisinfect( MESSAGE_T *message ); +// MSG_ID_DG_START_STOP_CHEM_DISINFECT_FLUSH +BOOL handleStartStopDGChemicalDisinfectFlush( MESSAGE_T *message ); + // MSG_ID_DG_OP_MODE_PUBLISH_INTERVAL_OVERRIDE void handleSetDGOpModeBroadcastIntervalOverrideRequest( MESSAGE_T *message );