Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -recf20c9111729fe3264aa381ccb06cdd695bf98a -r50a01b77ced16a3ceaec0ea3828502c7a2a286d4 --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision ecf20c9111729fe3264aa381ccb06cdd695bf98a) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 50a01b77ced16a3ceaec0ea3828502c7a2a286d4) @@ -139,6 +139,7 @@ if ( currentMode != newMode ) { // handle transition to new mode + priorSubMode = 0; lastMode = currentMode; transitionToNewOperationMode( newMode ); currentMode = newMode; @@ -199,14 +200,11 @@ } // Send sub-mode change event when appropriate - if ( lastMode != currentMode ) + if ( priorSubMode != currentSubMode ) { - priorSubMode = 0; - } - if ( ( priorSubMode != currentSubMode ) || ( lastMode != currentMode ) ) - { SEND_EVENT_WITH_2_U32_DATA( DG_EVENT_SUB_MODE_CHANGE, priorSubMode, currentSubMode ) } + priorSubMode = currentSubMode; // publish op mode on interval broadcastOperationMode();