Index: firmware/App/Controllers/BalancingChamber.c =================================================================== diff -u -r0bcac6885c8461b05da276fd245b580b7339ddfd -ree311636fcfb7db1913edef2d9fea22153465a87 --- firmware/App/Controllers/BalancingChamber.c (.../BalancingChamber.c) (revision 0bcac6885c8461b05da276fd245b580b7339ddfd) +++ firmware/App/Controllers/BalancingChamber.c (.../BalancingChamber.c) (revision ee311636fcfb7db1913edef2d9fea22153465a87) @@ -23,6 +23,7 @@ #include "FpgaDD.h" #include "Heaters.h" #include "Level.h" +#include "MessageSupport.h" #include "ModeGenDialysate.h" #include "ModeStandby.h" #include "Messaging.h" @@ -108,6 +109,8 @@ //TODO: remove later once level sensor working static U32 bicarbChamberPeriodicFillCounter; +// Balancing chamber state change tracker +static BAL_CHAMBER_EXEC_STATE_T prevState; ///< Balancing chamber Previous State tracking variable // ********** private function prototypes ********** @@ -184,6 +187,7 @@ pendingTdDialysateFlowrate = 0.0F; isBalChamberSwitchingPeriodUpdatePending = FALSE; bcSwitchingBasedOnClosedPeriodCounter = 0; + prevState = BAL_CHAMBER_STATE_IDLE; //TODO:remove once level sensor working bicarbChamberPeriodicFillCounter = 0; } @@ -414,6 +418,27 @@ break; } + if ( prevState != balChamberExecState ) + { + if ( BAL_CHAMBER_STATE_IDLE == balChamberExecState ) + { + SEND_EVENT_WITH_2_U32_DATA( DD_EVENT_BC_STATE_CHANGE, prevState, balChamberExecState ); + } + else if ( BAL_CHAMBER_STATE1_FILL_END == prevState && BAL_CHAMBER_STATE2_FILL_START == balChamberExecState ) + { + SEND_EVENT_WITH_2_U32_DATA( DD_EVENT_BC_STATE_CHANGE, prevState, balChamberExecState ); + } + else if ( BAL_CHAMBER_STATE2_FILL_END == prevState && BAL_CHAMBER_STATE1_FILL_START == balChamberExecState ) + { + SEND_EVENT_WITH_2_U32_DATA( DD_EVENT_BC_STATE_CHANGE, prevState, balChamberExecState ); + } + else if ( BAL_CHAMBER_STATE_IDLE == prevState && BAL_CHAMBER_STATE1_FILL_START == balChamberExecState ) + { + SEND_EVENT_WITH_2_U32_DATA( DD_EVENT_BC_STATE_CHANGE, prevState, balChamberExecState ); + } + } + prevState = balChamberExecState; + //Publish balancing chamber data publishBalChamberData(); @@ -1472,6 +1497,7 @@ *************************************************************************/ void setBalChamberSwitchingOnlyStatus( BOOL OnOff ) { + SEND_EVENT_WITH_2_U32_DATA( DD_EVENT_BC_SWITCH_ONLY_MODE_CHANGE, balanceChamberSwitchingOnly,isBalChamberSwitchingActive ); balanceChamberSwitchingOnly = OnOff; }