Index: firmware/App/Controllers/DryBiCart.c =================================================================== diff -u -r581f75133863205963703e6e6970ac66ee5228c1 -raab669a4ba33505d3a5d6b0e8fa8613933a1e490 --- firmware/App/Controllers/DryBiCart.c (.../DryBiCart.c) (revision 581f75133863205963703e6e6970ac66ee5228c1) +++ firmware/App/Controllers/DryBiCart.c (.../DryBiCart.c) (revision aab669a4ba33505d3a5d6b0e8fa8613933a1e490) @@ -118,6 +118,10 @@ #define BICARB_DEADBAND_CONTROL 50.0F ///< Dry Bicarb dead band control #define ACID_DEADBAND_CONTROL 100.0F ///< Acid dead band control +#define STD_MIX_BC_VOLUME 30.0F ///< Standard balancing chamber volume +#define TARGET_ADJ_BICARB_SETTING 137.0F ///< User defined Bicarb setting +#define TARGET_ADJ_NA_SETTINGS 32.0F ///< User defined Na setting + /// Payload record structure for dry bicart fill request typedef struct { @@ -214,8 +218,13 @@ 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 OVERRIDE_F32_T dryBiCartStdMixingBCVolume; ///< Acid bicarb mix conductivity +static OVERRIDE_F32_T dryBiCartTargetAdjNaSettings; ///< Acid bicarb delta conductivity +static OVERRIDE_F32_T dryBiCartTargetAdjBicarbSettings; ///< Acid bicarb delta conductivity +static OVERRIDE_U32_T dryBiCartBicarbMixControlInterval; ///< Mix control interval +static OVERRIDE_U32_T dryBiCartAcidMixControlInterval; ///< 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 @@ -381,11 +390,31 @@ dryBiCartLowerCartPressure.ovInitData = 0.0F; dryBiCartLowerCartPressure.override = OVERRIDE_RESET; - dryBiCartMixControlInterval.data = BICARB_MIX_CONTROL_INTERVAL; - dryBiCartMixControlInterval.ovData = BICARB_MIX_CONTROL_INTERVAL; - dryBiCartMixControlInterval.ovInitData = 0; - dryBiCartMixControlInterval.override = OVERRIDE_RESET; + dryBiCartStdMixingBCVolume.data = STD_MIX_BC_VOLUME; + dryBiCartStdMixingBCVolume.ovData = STD_MIX_BC_VOLUME; + dryBiCartStdMixingBCVolume.ovInitData = 0.0F; + dryBiCartStdMixingBCVolume.override = OVERRIDE_RESET; + dryBiCartTargetAdjNaSettings.data = TARGET_ADJ_NA_SETTINGS; + dryBiCartTargetAdjNaSettings.ovData = TARGET_ADJ_NA_SETTINGS; + dryBiCartTargetAdjNaSettings.ovInitData = 0.0F; + dryBiCartTargetAdjNaSettings.override = OVERRIDE_RESET; + + dryBiCartTargetAdjBicarbSettings.data = TARGET_ADJ_BICARB_SETTING; + dryBiCartTargetAdjBicarbSettings.ovData = TARGET_ADJ_BICARB_SETTING; + dryBiCartTargetAdjBicarbSettings.ovInitData = 0.0F; + dryBiCartTargetAdjBicarbSettings.override = OVERRIDE_RESET; + + dryBiCartBicarbMixControlInterval.data = BICARB_MIX_CONTROL_INTERVAL; + dryBiCartBicarbMixControlInterval.ovData = BICARB_MIX_CONTROL_INTERVAL; + dryBiCartBicarbMixControlInterval.ovInitData = 0; + dryBiCartBicarbMixControlInterval.override = OVERRIDE_RESET; + + dryBiCartAcidMixControlInterval.data = ACID_MIX_CONTROL_INTERVAL; + dryBiCartAcidMixControlInterval.ovData = ACID_MIX_CONTROL_INTERVAL; + dryBiCartAcidMixControlInterval.ovInitData = 0; + dryBiCartAcidMixControlInterval.override = OVERRIDE_RESET; + dryBiCartPressureDecayStartTimeFlag = FALSE; dryBiCartFillStartTime = 0; lastFillDurationInMS = 0; @@ -1526,6 +1555,11 @@ if ( d66Pressure >= DRY_BICART_FILL_COMPLETE_PRESSURE ) { // persistence + // start the persistance timer once d66 reaches 11 PSI + if ( 0 == dryBiCartPersistanceStartTime ) + { + dryBiCartPersistanceStartTime = getMSTimerCount(); + } // check the the maximum cart pressure during persistence on D66 if ( d66Pressure >= MAX_DRY_BICART_FILL_COMPLETE_PRESSURE ) { @@ -2287,19 +2321,86 @@ /*********************************************************************//** * @brief - * The testDryBiCartMixControlIntervalOverride function sets the override value - * of mix control interval - * @details Inputs: dryBiCartMixControlInterval - * @details Outputs: dryBiCartMixControlInterval + * The testDryBiCartBicarbMixControlIntervalOverride function sets the override value + * of bicarb mix control interval + * @details Inputs: dryBiCartBicarbMixControlInterval + * @details Outputs: dryBiCartBicarbMixControlInterval * @param message Override message from Dialin which includes the override * value to override the bicart lower pressure. * @return TRUE if override successful, FALSE if not *************************************************************************/ -BOOL testDryBiCartMixControlIntervalOverride( MESSAGE_T *message ) +BOOL testDryBiCartBicarbMixControlIntervalOverride( MESSAGE_T *message ) { - BOOL result = u32Override( message, &dryBiCartMixControlInterval, 0, BICARB_MIX_CONTROL_INTERVAL ); + BOOL result = u32Override( message, &dryBiCartBicarbMixControlInterval, 0, BICARB_MIX_CONTROL_INTERVAL ); return result; } +/*********************************************************************//** + * @brief + * The testDryBiCartAcidMixControlIntervalOverride function sets the override value + * of acid mix control interval + * @details Inputs: dryBiCartAcidMixControlInterval + * @details Outputs: dryBiCartAcidMixControlInterval + * @param message Override message from Dialin which includes the override + * value to override the bicart lower pressure. + * @return TRUE if override successful, FALSE if not + *************************************************************************/ +BOOL testDryBiCartAcidMixControlIntervalOverride( MESSAGE_T *message ) +{ + BOOL result = u32Override( message, &dryBiCartAcidMixControlInterval, 0, BICARB_MIX_CONTROL_INTERVAL ); + + return result; +} + +/*********************************************************************//** + * @brief + * The testDryBiCartStdMixingBCVolumeOverride function sets the override value + * of acid mix control interval + * @details Inputs: dryBiCartStdMixingBCVolume + * @details Outputs: dryBiCartStdMixingBCVolume + * @param message Override message from Dialin which includes the override + * value to override the bicart lower pressure. + * @return TRUE if override successful, FALSE if not + *************************************************************************/ +BOOL testDryBiCartStdMixingBCVolumeOverride( MESSAGE_T *message ) +{ + BOOL result = f32Override( message, &dryBiCartStdMixingBCVolume ); + + return result; +} + +/*********************************************************************//** + * @brief + * The testDryBiCartTargetAdjNASettingOverride function sets the override value + * of acid mix control interval + * @details Inputs: dryBiCartTargetAdjNaSettings + * @details Outputs: dryBiCartTargetAdjNaSettings + * @param message Override message from Dialin which includes the override + * value to override the bicart lower pressure. + * @return TRUE if override successful, FALSE if not + *************************************************************************/ +BOOL testDryBiCartTargetAdjNASettingOverride( MESSAGE_T *message ) +{ + BOOL result = f32Override( message, &dryBiCartTargetAdjNaSettings ); + + return result; +} + +/*********************************************************************//** + * @brief + * The testDryBiCartAcidMixControlIntervalOverride function sets the override value + * of acid mix control interval + * @details Inputs: dryBiCartTargetAdjBicarbSettings + * @details Outputs: dryBiCartTargetAdjBicarbSettings + * @param message Override message from Dialin which includes the override + * value to override the bicart lower pressure. + * @return TRUE if override successful, FALSE if not + *************************************************************************/ +BOOL testDryBiCartTargetAdjBicarbSettingOverride( MESSAGE_T *message ) +{ + BOOL result = f32Override( message, &dryBiCartTargetAdjBicarbSettings ); + + return result; +} /**@}*/ Index: firmware/App/Monitors/Level.c =================================================================== diff -u -r3c0b4336e151f12630e0100693537a9a7541c87c -raab669a4ba33505d3a5d6b0e8fa8613933a1e490 --- firmware/App/Monitors/Level.c (.../Level.c) (revision 3c0b4336e151f12630e0100693537a9a7541c87c) +++ firmware/App/Monitors/Level.c (.../Level.c) (revision aab669a4ba33505d3a5d6b0e8fa8613933a1e490) @@ -524,6 +524,7 @@ // upperlevel == TRUE while lowerlevel == FALSE - illegal status = LVL_STATE_ILLEGAL; } + return status; }