Index: firmware/App/Controllers/DryBiCart.c =================================================================== diff -u -rc0e1f5f4c4657c156a87cc8be6c3db38bb14db33 -r05ab87b4de779f06243fa1e87a0402b659a6fa3e --- firmware/App/Controllers/DryBiCart.c (.../DryBiCart.c) (revision c0e1f5f4c4657c156a87cc8be6c3db38bb14db33) +++ firmware/App/Controllers/DryBiCart.c (.../DryBiCart.c) (revision 05ab87b4de779f06243fa1e87a0402b659a6fa3e) @@ -24,6 +24,7 @@ #include "DryBiCart.h" #include "Level.h" #include "Messaging.h" +#include "MessageSupport.h" #include "MixingControl.h" #include "ModeGenDialysate.h" #include "OperationModes.h" @@ -144,6 +145,8 @@ static BOOL dryBiCartPressureDecayStartTimeFlag; ///< Dry bicart d66 pressure decay start timer. static DRY_BICART_OPERATION_T dryBicartStartRequest; ///< Dry bicart operation, fill or supply or drain request +static DRY_BICART_OPERATION_T prevDryBicartState; ///< Dry BiCart State Change Tracker + // ********** private function prototypes ********** static void updateDrybicartOperation(void); @@ -250,6 +253,7 @@ dryBiCartDrainTimePeriod = 0; dryBiCartPersistenceStartTime = 0; drybicartPersistenceOnLowercartPressureStartTime = 0; + prevDryBicartState = DRY_BICART_IDLE; } /*********************************************************************//** @@ -269,8 +273,8 @@ * @brief * The execDryBicart function executes the set of dry bicarbonate cartridge fill, * bicarbonate chamber fill and bicarbonate cartridge drain related state machines one at time - * @details \b Inputs: dryBicartStartRequest - * @details \b Outputs: none + * @details \b Inputs: dryBicartStartRequest, prevDryBicartState + * @details \b Outputs: prevDryBicartState * @details \b Alarm: ALARM_ID_DD_SOFTWARE_FAULT when wrong dry bicart state machine is * invoked. * @return none. @@ -314,6 +318,12 @@ break; } + if ( prevDryBicartState != dryBicartStartRequest ) + { + SEND_EVENT_WITH_2_U32_DATA( DD_EVENT_DRY_BICART_STATE_CHANGE, prevDryBicartState, dryBicartStartRequest ); + prevDryBicartState = dryBicartStartRequest; + } + // Publish dry bicart data publishDryBicartData(); }