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; } Index: firmware/App/Controllers/DryBiCart.c =================================================================== diff -u -r581f75133863205963703e6e6970ac66ee5228c1 -ree311636fcfb7db1913edef2d9fea22153465a87 --- firmware/App/Controllers/DryBiCart.c (.../DryBiCart.c) (revision 581f75133863205963703e6e6970ac66ee5228c1) +++ firmware/App/Controllers/DryBiCart.c (.../DryBiCart.c) (revision ee311636fcfb7db1913edef2d9fea22153465a87) @@ -24,6 +24,7 @@ #include "DryBiCart.h" #include "Level.h" #include "Messaging.h" +#include "MessageSupport.h" #include "ModeGenDialysate.h" #include "OperationModes.h" #include "PIControllers.h" @@ -219,6 +220,8 @@ static PI_CONTROLLER_SIGNALS_DATA bicarbControlSignals; ///< Bicarb closed loop control signal data static PI_CONTROLLER_SIGNALS_DATA acidControlSignals; ///< Acid closed loop control signal data +static DRY_BICART_OPERATION_T prevState; ///< Last dry bicart operation prior to current state. + // ********** private function prototypes ********** static void updateDrybicartOperation(void); @@ -399,6 +402,7 @@ dryBiCartDrainCondStableCount = 0; dryBiCartDrainTimePeriod = 0; dryBiCartPersistanceStartTime = 0; + prevState = DRY_BICART_IDLE; initializePIController( PI_CONTROLLER_ID_BICARB_VOL, 0.0F,\ getBicarbKpGainCoefficient(), getBicarbKiGainCoefficient(),\ @@ -515,6 +519,12 @@ break; } + if ( prevState != dryBicartStartRequest ) + { + SEND_EVENT_WITH_2_U32_DATA( DD_EVENT_DRY_BICART_STATE_CHANGE, prevState, dryBicartStartRequest ); + prevState = dryBicartStartRequest; + } + // Publish dry bicart data publishDryBicartData(); } Index: firmware/App/Controllers/Heaters.c =================================================================== diff -u -r9eae2f683887bededd2240f51ddfc667d8c1d566 -ree311636fcfb7db1913edef2d9fea22153465a87 --- firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision 9eae2f683887bededd2240f51ddfc667d8c1d566) +++ firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision ee311636fcfb7db1913edef2d9fea22153465a87) @@ -788,6 +788,7 @@ // update duty cycle setHeaterControl( heater ); + SEND_EVENT_WITH_2_U32_DATA( DD_EVENT_HEATER_STATE_CHANGE, heater, 0); } else { @@ -919,6 +920,7 @@ // proceed to setup state state = HEATER_EXEC_STATE_RAMP_TO_TARGET; + SEND_EVENT_WITH_2_U32_DATA( DD_EVENT_HEATER_STATE_CHANGE, heater, 1 ); } return state; Index: firmware/App/Controllers/Ultrafiltration.c =================================================================== diff -u -r0bcac6885c8461b05da276fd245b580b7339ddfd -ree311636fcfb7db1913edef2d9fea22153465a87 --- firmware/App/Controllers/Ultrafiltration.c (.../Ultrafiltration.c) (revision 0bcac6885c8461b05da276fd245b580b7339ddfd) +++ firmware/App/Controllers/Ultrafiltration.c (.../Ultrafiltration.c) (revision ee311636fcfb7db1913edef2d9fea22153465a87) @@ -204,8 +204,9 @@ *************************************************************************/ static void updateUFRequest( void ) { - F32 qd = getTDDialysateFlowrate(); - BOOL bypass = getTDDialyzerBypass(); + F32 qd = getTDDialysateFlowrate(); + BOOL bypass = getTDDialyzerBypass(); + BOOL prevState = isUltrafiltrationRequested; // update latest UF run/pause request // if qd is zero or dialyzer is bypassed, UF pump should be turn off @@ -217,6 +218,12 @@ { isUltrafiltrationRequested = FALSE; } + + // event update on state switch + if( prevState != isUltrafiltrationRequested ) + { + SEND_EVENT_WITH_2_U32_DATA( DD_EVENT_UF_STATE_CHANGE, prevState, isUltrafiltrationRequested ); + } } /*********************************************************************//** Index: firmware/App/Tasks/TaskPriority.c =================================================================== diff -u -r9eae2f683887bededd2240f51ddfc667d8c1d566 -ree311636fcfb7db1913edef2d9fea22153465a87 --- firmware/App/Tasks/TaskPriority.c (.../TaskPriority.c) (revision 9eae2f683887bededd2240f51ddfc667d8c1d566) +++ firmware/App/Tasks/TaskPriority.c (.../TaskPriority.c) (revision ee311636fcfb7db1913edef2d9fea22153465a87) @@ -107,7 +107,7 @@ // Monitor rinse pump execRinsePumpMonitor(); - // Monitor Substituion pump + // Monitor Substitution pump execSubstitutionPumpMonitor(); // Second pass for FPGA