Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r82bd1d24c050e79690a7f5b236e49dd7db7e2a91 -r5c3d2c3b1f54008cfdf8fb66ed73f1a8015d9b51 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 82bd1d24c050e79690a7f5b236e49dd7db7e2a91) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 5c3d2c3b1f54008cfdf8fb66ed73f1a8015d9b51) @@ -60,6 +60,7 @@ static BOOL heatDisinfectStartReqReceived; ///< Flag indicates user has requested initiation of heat disinfect mode. static BOOL chemDisinfectStartReqReceived; ///< Flag indicates user has requested initiation of chemical disinfect mode. static BOOL chemDisinfectFlushStartReqReceived; ///< Flag indicates user has requested initiation of chemical disinfect flush mode. +static BOOL roPermeateSampleStartReqReceived; ///< Flag indicates user has requested initiation of RO permeate sample mode. static GENERIC_CONFIRM_ID_T disinfectCancelReqID; ///< ID of requested cancel disinfect mode. static DG_DISINFECT_STATE_T dgDisinfectState; ///< DG disinfect state to be boadcast to UI. static U32 dataPublishCounter; ///< Disinfects data publish counter. @@ -501,7 +502,7 @@ * The signalUserInitiateChemcialDisinfectFlushMode function handles user * initiation of chemical disinfect flush mode. * @details Inputs: currentStandbyState - * @details Outputs: chemDisinfectFlushStartReqReceived + * @details Outputs: chemDisinfectFlushStartReqReceived, currentStandbyState * @return TRUE if signal accepted, FALSE if not *************************************************************************/ BOOL signalUserInitiateChemcialDisinfectFlushMode( void ) @@ -534,6 +535,42 @@ /*********************************************************************//** * @brief + * The signalUserInitiateROPermeateSampleMode function handles user + * initiation of RO permeate sample mode. + * @details Inputs: currentStandbyState + * @details Outputs: roPermeateSampleStartReqReceived, currentStandbyState + * @return TRUE if signal accepted, FALSE if not + *************************************************************************/ +BOOL signalUserInitiateROPermeateSampleMode( void ) +{ + BOOL result = FALSE; + REQUEST_REJECT_REASON_CODE_T rejReason = REQUEST_REJECT_REASON_NOT_ALLOWED_IN_CURRENT_MODE; + + if ( MODE_STAN == getCurrentOperationMode() ) + { + if ( ( STANDBY_WAIT_FOR_DISINFECT_STATE == currentStandbyState ) || ( STANDBY_WAIT_FOR_TREATMENT_STATE == currentStandbyState ) ) + { + if ( TRUE == isDGCommunicating() ) + { + roPermeateSampleStartReqReceived = TRUE; + result = TRUE; + currentStandbyState = STANDBY_WAIT_FOR_DISINFECT_STATE; + rejReason = REQUEST_REJECT_REASON_NONE; + } + else + { + rejReason = REQUEST_REJECT_REASON_DG_COMM_LOST; + } + } + } + + sendDisinfectConfirmResponse( result, rejReason ); + + return result; +} + +/*********************************************************************//** + * @brief * The signalInitiateStandbyDisinfectSubmode function handles user * initiation of setting the disinfects submode. * @details Inputs: currentStandbyState Index: firmware/App/Modes/ModeStandby.h =================================================================== diff -u -r19f13e67288117e7f81c1245a75cc6b5f8aaf899 -r5c3d2c3b1f54008cfdf8fb66ed73f1a8015d9b51 --- firmware/App/Modes/ModeStandby.h (.../ModeStandby.h) (revision 19f13e67288117e7f81c1245a75cc6b5f8aaf899) +++ firmware/App/Modes/ModeStandby.h (.../ModeStandby.h) (revision 5c3d2c3b1f54008cfdf8fb66ed73f1a8015d9b51) @@ -52,6 +52,7 @@ BOOL signalUserInitiateHeatDisinfectMode( void ); BOOL signalUserInitiateChemicalDisinfectMode( void ); BOOL signalUserInitiateChemcialDisinfectFlushMode( void ); +BOOL signalUserInitiateROPermeateSampleMode( void ); BOOL signalInitiateStandbyDisinfectSubmode( U32 cmd ); BOOL testSetStandbyModePublishIntervalOverride( U32 ms ); Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -re5167d0700038c1faf8b689b844a905f20c0d3c6 -r5c3d2c3b1f54008cfdf8fb66ed73f1a8015d9b51 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision e5167d0700038c1faf8b689b844a905f20c0d3c6) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 5c3d2c3b1f54008cfdf8fb66ed73f1a8015d9b51) @@ -855,6 +855,10 @@ { result = signalUserInitiateChemcialDisinfectFlushMode(); } + else if ( DG_DISINFECT_RO_PERMEATE_SAMPLE_STATE == cmd ) // Command 4 = RO permeate sample + { + result = signalUserInitiateROPermeateSampleMode(); + } } sendAckResponseMsg( (MSG_ID_T)message->hdr.msgID, COMM_BUFFER_OUT_CAN_HD_2_UI, result );