Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -r6b870cd0699bb3ee22b93981d51373a6c2d56162 -r8c00197ce69e80f1967aa3f2eb36beb3573f36f3 --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 6b870cd0699bb3ee22b93981d51373a6c2d56162) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 8c00197ce69e80f1967aa3f2eb36beb3573f36f3) @@ -353,4 +353,38 @@ } } + +/************************************************************************* + * TEST SUPPORT FUNCTIONS + *************************************************************************/ + + +/*********************************************************************//** + * @brief + * The testSetOperationMode function will transition to a given operation + * mode if the transition is legal. + * @details Inputs: none + * @details Outputs: modeRequest[] + * @param newMode ID of requested mode to transition to + * @return TRUE if request successful, FALSE if not + *************************************************************************/ +BOOL testSetOperationMode( HD_OP_MODE_T newMode ) +{ + BOOL result = FALSE; + + if ( TRUE == isTestingActivated() ) + { + HD_OP_MODE_T check = MODE_TRANSITION_TABLE[ currentMode ][ newMode ]; + + // Is mode transition legal? + if ( check == newMode ) + { + requestNewOperationMode( newMode ); + result = TRUE; + } + } + + return result; +} + /**@}*/