Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r4a22fc18a17947587613273eb8cc08fd8c95beb8 -r693f9ed31c3f92b6f71b22ce0ae3a6f29ae92394 --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 4a22fc18a17947587613273eb8cc08fd8c95beb8) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 693f9ed31c3f92b6f71b22ce0ae3a6f29ae92394) @@ -34,6 +34,8 @@ // ********** private data ********** +static BOOL treatStartReqReceived = FALSE; ///< Flag indicates user requests treatment begin. + // ********** private function prototypes ********** /*********************************************************************//** @@ -59,6 +61,8 @@ *************************************************************************/ void transitionToPreTreatmentMode( void ) { + treatStartReqReceived = FALSE; + #ifdef RM46_EVAL_BOARD_TARGET start = getMSTimerCount(); #endif @@ -76,8 +80,8 @@ { BOOL stop = isStopButtonPressed(); -#ifndef UF_TEST_ENABLED - if ( TRUE == stop ) +#ifndef DISABLE_UI_TREATMENT_WORKFLOW + if ( TRUE == treatStartReqReceived ) #endif { requestNewOperationMode( MODE_TREA ); @@ -92,4 +96,26 @@ return 0; // TODO - return current state } +/*********************************************************************//** + * @brief + * The signalUserBeginningTreatment function handles user start of a + * treatment. + * @details Inputs: none + * @details Outputs: requested mode transition to treatment mode + * @return TRUE if signal accepted, FALSE if not + *************************************************************************/ +BOOL signalUserBeginningTreatment( void ) +{ + BOOL result = FALSE; + + if ( MODE_PRET == getCurrentOperationMode() ) + { + treatStartReqReceived = TRUE; + result = TRUE; + } + sendTreatmentStartResponseMsg( result, 0 ); // TODO - provide reason code if rejected + + return result; +} + /**@}*/