Index: firmware/App/Modes/SampleWater.c =================================================================== diff -u -rb6b733b8d1f25bc2dbe2a94c620cd80aa3ae06f7 -r401c4027b0e59182771f0c620465b34579f203f5 --- firmware/App/Modes/SampleWater.c (.../SampleWater.c) (revision b6b733b8d1f25bc2dbe2a94c620cd80aa3ae06f7) +++ firmware/App/Modes/SampleWater.c (.../SampleWater.c) (revision 401c4027b0e59182771f0c620465b34579f203f5) @@ -15,6 +15,7 @@ * ***************************************************************************/ +#include "AlarmMgmt.h" #include "DGInterface.h" #include "HDDefs.h" #include "SampleWater.h" @@ -134,6 +135,62 @@ /*********************************************************************//** * @brief + * The signalSampleWaterUserAction function signals a sample water user action + * has been requested. The request is handled and responded to. + * @details Inputs: none + * @details Outputs: action handled, request reponsed to + * @param action User action requested + * @return none + *************************************************************************/ +void signalSampleWaterUserAction( REQUESTED_SAMPLE_WATER_USER_ACTIONS_T action ) +{ + BOOL accepted = FALSE; + REQUEST_REJECT_REASON_CODE_T rejReason = REQUEST_REJECT_REASON_NONE; + + // Reject user action requests if any alarm is currently active. User must clear alarm first. + if ( FALSE == isAnyAlarmActive() ) + { + switch ( action ) + { + case REQUESTED_USER_ACTION_SAMPLE_WATER_STOP: + if ( SAMPLE_WATER_STATE == currentSampleWaterState ) + { + sampleWaterStopRequested = TRUE; + accepted = TRUE; + } + else + { + rejReason = REQUEST_REJECT_REASON_ACTION_DISABLED_IN_CURRENT_STATE; + } + break; + + case REQUESTED_USER_ACTION_SAMPLE_WATER_START: + if ( SAMPLE_WATER_STATE == currentSampleWaterState ) + { + sampleWaterStartRequested = TRUE; + accepted = TRUE; + } + else + { + rejReason = REQUEST_REJECT_REASON_ACTION_DISABLED_IN_CURRENT_STATE; + } + break; + + default: + rejReason = REQUEST_REJECT_REASON_INVALID_COMMAND; + break; + } + } + else + { + rejReason = REQUEST_REJECT_REASON_ALARM_IS_ACTIVE; + } + + sendSampleWaterCmdResponse( accepted, (U32)rejReason ); +} + +/*********************************************************************//** + * @brief * The handleWaterSampleSetupState function waits for filter flush period elapsed. * @details Inputs: flushTimerCounter * @details Outputs: none