Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -re4cc37257141c5227186ac6d8ca3d6c87d009042 -r6265859000eb5aa42e3e6f4d699cfc817f1dc67d --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 6265859000eb5aa42e3e6f4d699cfc817f1dc67d) @@ -128,6 +128,7 @@ if ( currentMode != newMode ) { // Handle transition to new mode + priorSubMode = 0; lastMode = currentMode; transitionToNewOperationMode( newMode ); currentMode = newMode; @@ -176,14 +177,11 @@ } // End switch // 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( HD_EVENT_SUB_MODE_CHANGE, priorSubMode, currentSubMode ) } + priorSubMode = currentSubMode; // Broadcast current operation mode on interval broadcastOperationMode();