Index: firmware/App/Modes/ModeDrain.c =================================================================== diff -u -rfadef92f860470251023ad1fff77ae085b85389d -re0f0e562f964f53ac9b9bd62ff2092c0b12e202b --- firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision fadef92f860470251023ad1fff77ae085b85389d) +++ firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision e0f0e562f964f53ac9b9bd62ff2092c0b12e202b) @@ -1,14 +1,14 @@ /************************************************************************** * -* Copyright (c) 2019-2023 Diality Inc. - All Rights Reserved. +* Copyright (c) 2019-2024 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file ModeDrain.c * -* @author (last) Sean Nash -* @date (last) 30-Sep-2023 +* @author (last) Dara Navaei +* @date (last) 23-Oct-2024 * * @author (original) Leonardo Baloa * @date (original) 20-Dec-2019 @@ -66,15 +66,8 @@ #define ACID_PERCENT_FILL 0.02222F ///< Acid volume percentage of reservoir volume. #define DATA_PUBLISH_COUNTER_START_COUNT 70 ///< Data publish counter start count. #define DRAIN_MODE_DATA_PUB_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which the drain mode data is published on the CAN bus. +#define MIN_CONCENTRATE_VOLUME_ML 500.0F ///< Minimum concentrate volume in milliliters. -///< 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. @@ -313,7 +306,7 @@ getHDOperationMode( &hdMode ); // Detect empty bottles using integrated volumes - if ( ( ( acidBottleVolML - getChemicalUsedVolumeML( ACID ) ) <= CONCENTRATE_BOTTLE_ACID_LOW_VOLUME_ML ) && // SRSDG 836 + if ( ( ( acidBottleVolML - getChemicalUsedVolumeML( ACID ) ) <= MIN_CONCENTRATE_VOLUME_ML ) && // SRSDG 836 ( hdMode.hdMode != MODE_POST ) && // don't care about concentrates after treatment complete ( getTestConfigStatus( TEST_CONFIG_MIX_WITH_WATER ) != TRUE ) ) { @@ -323,7 +316,7 @@ activateAlarmNoData ( ALARM_ID_DG_CREATING_DIALYSATE_PLEASE_WAIT ); } - if ( ( ( bicarbBottleVolML - getChemicalUsedVolumeML( BICARB ) ) <= CONCENTRATE_BOTTLE_BICARB_LOW_VOLUME_ML ) && // SRSDG 837 + if ( ( ( bicarbBottleVolML - getChemicalUsedVolumeML( BICARB ) ) <= MIN_CONCENTRATE_VOLUME_ML ) && // SRSDG 837 ( hdMode.hdMode != MODE_POST ) && // don't care about concentrates after treatment complete ( getTestConfigStatus( TEST_CONFIG_MIX_WITH_WATER ) != TRUE ) ) {