Index: firmware/App/Modes/ModePostTreat.c =================================================================== diff -u -r4add9605a250a0b953217c8673204b705128561b -r8b09199bae9870a8d63d4be9636ef66c849f8531 --- firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision 4add9605a250a0b953217c8673204b705128561b) +++ firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision 8b09199bae9870a8d63d4be9636ef66c849f8531) @@ -171,6 +171,7 @@ U32 execPostTreatmentMode( void ) { BOOL stop = isStopButtonPressed(); + HD_POST_TREATMENT_STATE_T priorSubState = currentPostTreatmentState; switch ( currentPostTreatmentState ) { @@ -195,6 +196,11 @@ break; } + if ( priorSubState != currentPostTreatmentState ) + { + SEND_EVENT_WITH_2_U32_DATA( HD_EVENT_SUB_MODE_CHANGE, priorSubState, currentPostTreatmentState ); + } + if ( ++postTreatmentPublishTimerCounter >= getU32OverrideValue( &postTreatmentModePublishInterval ) ) { POST_TREATMENT_STATE_DATA_T data; @@ -512,6 +518,8 @@ *************************************************************************/ static void execDrainReservoirs( void ) { + DRAIN_STATE_T priorSubState = currentDrainReservoirState; + switch ( currentDrainReservoirState ) { case DRAIN_DG_DEPRIME_STATE: @@ -538,6 +546,11 @@ SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_POST_TREATMENT_RESERVOIR_MGMT_INVALID_STATE, currentDrainReservoirState ); break; } + + if ( priorSubState != currentDrainReservoirState ) + { + SEND_EVENT_WITH_2_U32_DATA( HD_EVENT_SUB_STATE_CHANGE, priorSubState, currentDrainReservoirState ); + } } /*********************************************************************//**