Index: firmware/App/Modes/ModePostTreat.c =================================================================== diff -u -r43d1739837a207e6d4d2960f3f0442af85b22a8c -r75e1ae332d1446dddf9b8d4ce6e8317449c57d67 --- firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision 43d1739837a207e6d4d2960f3f0442af85b22a8c) +++ firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision 75e1ae332d1446dddf9b8d4ce6e8317449c57d67) @@ -7,8 +7,8 @@ * * @file ModePostTreat.c * -* @author (last) Sean Nash -* @date (last) 04-Jan-2023 +* @author (last) Michael Garthwaite +* @date (last) 19-Jan-2023 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -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; @@ -510,6 +516,8 @@ *************************************************************************/ static void execDrainReservoirs( void ) { + DRAIN_STATE_T priorSubState = currentDrainReservoirState; + switch ( currentDrainReservoirState ) { case DRAIN_DG_DEPRIME_STATE: @@ -536,6 +544,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 ); + } } /*********************************************************************//**