Index: firmware/App/Controllers/DryBiCart.c =================================================================== diff -u -ra631e128cd6be44aa232e23b58a229bfb8fe9043 -r788a0b1a638d815df1e83af80cba7be03af2020c --- firmware/App/Controllers/DryBiCart.c (.../DryBiCart.c) (revision a631e128cd6be44aa232e23b58a229bfb8fe9043) +++ firmware/App/Controllers/DryBiCart.c (.../DryBiCart.c) (revision 788a0b1a638d815df1e83af80cba7be03af2020c) @@ -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" @@ -141,6 +142,31 @@ 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 +// drybicart mixing +static OVERRIDE_F32_T dryBiCartAcidMixVolume; ///< Acid concentrate volume in ml ( overrideable). +static OVERRIDE_F32_T dryBiCartBicarbMixVolume; ///< Bicarb concentrate volume in ml ( overrideable). + +static OVERRIDE_F32_T dryBiCartAcidMixVolumeKpGain; ///< Acid kp gain. +static OVERRIDE_F32_T dryBiCartAcidMixVolumeKiGain; ///< Acid ki gain. + +static OVERRIDE_F32_T dryBiCartBicarbMixVolumeKpGain; ///< Bicarb kp gain +static OVERRIDE_F32_T dryBiCartBicarbMixVolumeKiGain; ///< Acid ki gain. + +static DIALYSATE_MIXING_DATA_T dialysateMix[ NUM_OF_DIALYSATE_MIXING_ID ]; ///< Array of dialysate mixing data structure. + +static OVERRIDE_F32_T dryBiCartBicarbTargetConductivity; ///< Target bicarb conductivity +static OVERRIDE_F32_T dryBiCartBicarbDeltaConductivity; ///< Target delta conductivity + +static OVERRIDE_F32_T dryBiCartDialysateTargetConductivity; ///< Acid bicarb mix conductivity +static OVERRIDE_F32_T dryBiCartDialysateDeltaConductivity; ///< Acid bicarb delta conductivity + +static OVERRIDE_U32_T dryBiCartMixControlInterval; ///< Mix control interval + +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 prevDryBicartState; ///< Last dry bicart operation prior to current state. + // ********** private function prototypes ********** static void updateDrybicartOperation(void); @@ -245,8 +271,9 @@ dryBiCartDrainLastCondSampleTime = 0; dryBiCartDrainCondStableCount = 0; dryBiCartDrainTimePeriod = 0; - dryBiCartPersistenceStartTime = 0; + dryBiCartPersistanceStartTime = 0; drybicartPersistenceOnLowercartPressureStartTime = 0; + prevDryBicartState = DRY_BICART_IDLE; } /*********************************************************************//** @@ -266,8 +293,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. @@ -311,6 +338,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(); }