Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -r99498a5bab0a1f4c706376feceadc66df6d1c22e -rd36643be8a309f2ee587b5975663e7519b3addf9 --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 99498a5bab0a1f4c706376feceadc66df6d1c22e) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision d36643be8a309f2ee587b5975663e7519b3addf9) @@ -374,4 +374,60 @@ current4thLevelState = state; } + +/************************************************************************* + * TEST SUPPORT FUNCTIONS + *************************************************************************/ + + +/*********************************************************************//** + * @brief + * The testSetOperationMode function will transition to a given operation + * mode if the transition is legal. + * @details \b Inputs: none + * @details \b Outputs: modeRequest[] + * @param message message from Dialin which includes the op mode to + * transition to. + * @return TRUE if request successful, FALSE if not + *************************************************************************/ +BOOL testSetOperationMode( MESSAGE_T *message ) +{ + BOOL result = FALSE; + + // Verify message payload length is valid + if ( sizeof( U32 ) == message->hdr.payloadLen ) + { + U32 newMode; + + memcpy( &newMode, message->payload, sizeof( U32 ) ); + if ( (RO_OP_MODE_T)newMode < NUM_OF_RO_MODES ) + { + RO_OP_MODE_T reqMode = (RO_OP_MODE_T)newMode; + + requestNewOperationMode( reqMode ); + result = TRUE; + } + } + + return result; +} + +/*********************************************************************//** + * @brief + * The testSetOpModePublishIntervalOverride function sets the override of the + * operation mode publication interval. + * @details \b Inputs: none + * @details \b Outputs: opModePublishInterval + * @param message override message from Dialin which includes the interval + * (in ms) to set the op mode publish to. + * @return TRUE if override set successful, FALSE if not + *************************************************************************/ +BOOL testSetOpModePublishIntervalOverride( MESSAGE_T *message ) +{ + BOOL result = u32BroadcastIntervalOverride( message, &opModePublishInterval, TASK_GENERAL_INTERVAL ); + + return result; +} + + /**@}*/