Index: firmware/App/Modes/ModeTreatmentParams.c =================================================================== diff -u -r693f9ed31c3f92b6f71b22ce0ae3a6f29ae92394 -r7b823539be3fde41aa676263188d1af679b2f411 --- firmware/App/Modes/ModeTreatmentParams.c (.../ModeTreatmentParams.c) (revision 693f9ed31c3f92b6f71b22ce0ae3a6f29ae92394) +++ firmware/App/Modes/ModeTreatmentParams.c (.../ModeTreatmentParams.c) (revision 7b823539be3fde41aa676263188d1af679b2f411) @@ -85,6 +85,7 @@ static BOOL validTreatParamsReceived = FALSE; ///< Flag indicates user has provided treatment parameters. static BOOL treatParamsConfirmed = FALSE; ///< Flag indicates user has confirmed the treatment parameters. +static BOOL treatParamsRejected = FALSE; ///< Flag indicates user has rejected the treatment parameters. static BOOL treatmentCancelled = FALSE; ///< Flag indicates user has cancelled the treatment. // ********** private function prototypes ********** @@ -130,6 +131,7 @@ validTreatParamsReceived = FALSE; treatParamsConfirmed = FALSE; + treatParamsRejected = FALSE; treatmentCancelled = FALSE; // temporary test code. TODO - remove later @@ -201,6 +203,28 @@ /*********************************************************************//** * @brief + * The signalUserRejectionOfTreatmentParameters function sets the user + * rejection flag signaling user has rejected treatment parameters. + * @details + * Inputs : none + * Outputs : treatParamsRejected + * @return TRUE if rejection accepted, FALSE if not + *************************************************************************/ +BOOL signalUserRejectionOfTreatmentParameters( void ) +{ + BOOL result = FALSE; + + if ( ( MODE_TPAR == getCurrentOperationMode() ) && ( HD_TREATMENT_PARAMS_MODE_STATE_WAIT_4_UI_2_CONFIRM == currentTreatmentParamsState ) ) + { + treatParamsRejected = TRUE; + result = TRUE; + } + + return result; +} + +/*********************************************************************//** + * @brief * The signalUserCancelTreatment function sets the cancelled treatment * flag signaling the user has cancelled the treatment. * @details @@ -336,12 +360,18 @@ treatParamsConfirmed = FALSE; } + else if ( TRUE == treatParamsRejected ) + { + treatParamsRejected = FALSE; + // user rejected last parameter set, so reset them and wait for new set + resetAllTreatmentParameters(); + result = HD_TREATMENT_PARAMS_MODE_STATE_WAIT_4_UI_2_SEND; + } else if ( TRUE == treatmentCancelled ) { + treatmentCancelled = FALSE; // go back to standby mode requestNewOperationMode( MODE_STAN ); - - treatmentCancelled = FALSE; } return result;