Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -r992dce16d63424ddd30fe9ac2f819e9a53b21977 -r2468e56fbecd26da713bc78535bd727f4b105fe1 --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 992dce16d63424ddd30fe9ac2f819e9a53b21977) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 2468e56fbecd26da713bc78535bd727f4b105fe1) @@ -122,6 +122,7 @@ void execOperationModes( void ) { DG_OP_MODE_T newMode; + U32 priorSubMode = currentSubMode; // any new mode requests? newMode = arbitrateModeRequest(); // will return current mode if no pending requests @@ -197,6 +198,13 @@ break; } + // Send sub-mode change event when appropriate + if ( priorSubMode != currentSubMode ) + { + SEND_EVENT_WITH_2_U32_DATA( DG_EVENT_SUB_MODE_CHANGE, priorSubMode, currentSubMode ); + } + priorSubMode = currentSubMode; + // publish op mode on interval broadcastOperationMode(); } @@ -296,6 +304,8 @@ *************************************************************************/ static void transitionToNewOperationMode( DG_OP_MODE_T newMode ) { + SEND_EVENT_WITH_2_U32_DATA( DG_EVENT_OP_MODE_CHANGE, lastMode, newMode ); + // setup for new operating mode switch ( newMode ) {