Index: firmware/App/Modes/FPModes/FPOperationModes.c =================================================================== diff -u -r6c1e038c32aae95cd5649320d12c1d7239834425 -r3c79a984d1e08549ee2f5e7167ec97972ed3146c --- firmware/App/Modes/FPModes/FPOperationModes.c (.../FPOperationModes.c) (revision 6c1e038c32aae95cd5649320d12c1d7239834425) +++ firmware/App/Modes/FPModes/FPOperationModes.c (.../FPOperationModes.c) (revision 3c79a984d1e08549ee2f5e7167ec97972ed3146c) @@ -72,6 +72,7 @@ static FP_OP_MODE_T arbitrateModeRequest( void ); static void transitionToNewOperationMode( FP_OP_MODE_T newMode ); static void broadcastOperationMode( void ); +static void sendFPOperationStatusEvent( void ); static void testRequestNewFPOperationSubMode( void ); static BOOL testValidateSubModeChangeRequest( FP_OP_MODE_T reqMode, U32 reqSubMode ); @@ -153,7 +154,7 @@ // Handle transition to new mode transitionToNewOperationMode( newMode ); currentMode = newMode; -// sendOperationStatusEvent(); + sendFPOperationStatusEvent(); } // Is sub mode change request active? if ( TRUE == testChangeSubMode ) @@ -209,7 +210,7 @@ if ( ( priorSubMode != currentSubMode ) || ( priorSubState != currentSubState ) || ( prior4thLevelState != current4thLevelState ) ) #endif { -// sendOperationStatusEvent(); + sendFPOperationStatusEvent(); SEND_EVENT_WITH_2_U32_DATA( FP_EVENT_SUB_MODE_CHANGE, priorSubMode, currentSubMode ) } @@ -529,6 +530,34 @@ } +/*********************************************************************//** + * @brief + * The sendFPOperationStatusEvent function constructs and sends an FP operation + * status event. + * @details \b Inputs: currentMode, currentSubMode, currentSubState + * @details \b Outputs: dat1, dat2. + * @details \b Message \b Sent: FP_EVENT_OPERATION_STATUS to update + * operation mode, sub mode and sub state details. + * @return none + *************************************************************************/ +static void sendFPOperationStatusEvent() +{ + EVENT_DATA_T dat1; + EVENT_DATA_T dat2; + U32 opData = ( (U08)currentMode + + ( (U08)currentSubMode << SHIFT_8_BITS_FOR_BYTE_SHIFT ) + + ( (U08)currentSubState << SHIFT_16_BITS_FOR_WORD_SHIFT ) ); + + dat2.dataType = EVENT_DATA_TYPE_U32; + dat2.data.uInt.data = 0; + + dat1.dataType = EVENT_DATA_TYPE_U32; + dat1.data.uInt.data = opData; + + sendEvent( FP_EVENT_OPERATION_STATUS, dat1, dat2 ); +} + + /************************************************************************* * TEST SUPPORT FUNCTIONS *************************************************************************/