Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -rc13864f02c391265d9d369a6c2d606d9de0f91f2 -r862620800213fc9bbd9ec95079246c4323c79a4b --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision c13864f02c391265d9d369a6c2d606d9de0f91f2) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 862620800213fc9bbd9ec95079246c4323c79a4b) @@ -155,6 +155,7 @@ if ( currentMode != newMode ) { // handle transition to new mode + lastMode = currentMode; transitionToNewOperationMode( newMode ); currentMode = newMode; @@ -329,6 +330,7 @@ { SEND_EVENT_WITH_2_U32_DATA( DG_EVENT_OP_MODE_CHANGE, lastMode, newMode ) + U32 priorSubMode = currentSubMode; // setup for new operating mode switch ( newMode ) { @@ -375,6 +377,11 @@ SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_OP_MODES_INVALID_MODE_TO_TRANSITION_TO, (U32)newMode ) break; } + // Send sub-mode change event when appropriate + if ( priorSubMode != currentSubMode ) + { + SEND_EVENT_WITH_2_U32_DATA( DG_EVENT_SUB_MODE_CHANGE, priorSubMode, currentSubMode ) + } } /*********************************************************************//**