Index: firmware/App/Modes/ModeDrain.c =================================================================== diff -u -re107dacab9f6c78574f1c26e1004e0dbdc8dba03 -r79d0c6ca5e03581ba1b4a142f5b450bf4547dded --- firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision e107dacab9f6c78574f1c26e1004e0dbdc8dba03) +++ firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision 79d0c6ca5e03581ba1b4a142f5b450bf4547dded) @@ -7,8 +7,8 @@ * * @file ModeDrain.c * -* @author (last) Dara Navaei -* @date (last) 11-Jan-2023 +* @author (last) Bill Bracken +* @date (last) 17-Jan-2023 * * @author (original) Leonardo Baloa * @date (original) 20-Dec-2019 @@ -55,8 +55,21 @@ #define RINSE_CONCENTRATE_LINES_WAIT ( 25 * MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Time period to wait for concentrate lines to rinse. #define RINSE_SPEED ( ( CONCENTRATE_PUMP_MAX_SPEED - 3.0F ) * -1.0F ) ///< Reserver the concentrate speed to rinse out concentrate lines. -#define CONCENTRATION_BOTTLE_LOW_VOLUME_ML 100.0F ///< Concentration bottle low volume in mL. +#define CONCENTRATE_BOTTLE_PRIMING_VOL_ML 73.0F ///< Concentrate bottle priming volume in mL. +#define CONCENTRATE_BOTTLE_RESERVOIOR_VOL_ML 1500.0F ///< Concentrate bottle reservoir volume in mL +#define CONCENTRATE_BOTTLE_RESERVOIOR_FILLS 3 ///< Concentrate bottle reservoir vlls. +#define BICARB_PERCENT_FILL 0.03514F ///< Bicarb volume percentage of reservoir volume. +#define ACID_PERCENT_FILL 0.02222F ///< Acid volume percentage of reservoir volume. + +///< Concentrate bottle acid low volume in mL. +static const F32 CONCENTRATE_BOTTLE_ACID_LOW_VOLUME_ML = ( CONCENTRATE_BOTTLE_PRIMING_VOL_ML + + ( CONCENTRATE_BOTTLE_RESERVOIOR_VOL_ML * CONCENTRATE_BOTTLE_RESERVOIOR_FILLS * ACID_PERCENT_FILL) ); + +///< Concentrate bottle bicarb low volume in mL. +static const F32 CONCENTRATE_BOTTLE_BICARB_LOW_VOLUME_ML = ( CONCENTRATE_BOTTLE_PRIMING_VOL_ML + + ( CONCENTRATE_BOTTLE_RESERVOIOR_VOL_ML * CONCENTRATE_BOTTLE_RESERVOIOR_FILLS * BICARB_PERCENT_FILL) ); + // ********** private data ********** static DG_DRAIN_STATE_T drainState; ///< Currently active drain state. @@ -261,14 +274,14 @@ #endif { // Detect empty bottles using integrated volumes - if ( ( acidBottleVolML - getChemicalUsedVolumeML( ACID ) ) <= CONCENTRATION_BOTTLE_LOW_VOLUME_ML ) // || // SRSDG 437 + if ( ( acidBottleVolML - getChemicalUsedVolumeML( ACID ) ) <= CONCENTRATE_BOTTLE_ACID_LOW_VOLUME_ML ) // SRSDG 836 { resetChemicalUsedVolumeML( ACID ); setThisFisrtFillFlag( TRUE ); // indicates bottles need prime activateAlarmNoData( ALARM_ID_DG_ACID_BOTTLE_LOW_VOLUME ); } - if ( ( bicarbBottleVolML - getChemicalUsedVolumeML( BICARB ) ) <= CONCENTRATION_BOTTLE_LOW_VOLUME_ML ) // || // SRSDG 438 + if ( ( bicarbBottleVolML - getChemicalUsedVolumeML( BICARB ) ) <= CONCENTRATE_BOTTLE_BICARB_LOW_VOLUME_ML ) // SRSDG 837 { resetChemicalUsedVolumeML( BICARB ); setThisFisrtFillFlag( TRUE );