Index: firmware/App/Modes/ModeFill.c =================================================================== diff -u -rb2262c19eae370b431585b20f0e39b7ef96d160c -re0f0e562f964f53ac9b9bd62ff2092c0b12e202b --- firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision b2262c19eae370b431585b20f0e39b7ef96d160c) +++ firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision e0f0e562f964f53ac9b9bd62ff2092c0b12e202b) @@ -8,7 +8,7 @@ * @file ModeFill.c * * @author (last) Dara Navaei -* @date (last) 06-Mar-2024 +* @date (last) 28-Oct-2024 * * @author (original) Leonardo Baloa * @date (original) 19-Nov-2019 @@ -63,7 +63,7 @@ #define CONC_PUMPS_PRIME_AT_MAX_SPEED_TIME_OUT_MS ( 10 * MS_PER_SECOND ) ///< Concentrate pumps prime at maximum speed timeout in milliseconds. #define CONC_PUMPS_PRIME_CHECK_COND_SNSRS_TIME_OUT_MS ( 13 * MS_PER_SECOND ) ///< Concentrate pumps prime check conductivity sensors timeout in milliseconds. -#define CONC_PUMPS_PRIME_MAX_ALLOWED_PRIME_TIME_OUT_MS ( 60 * MS_PER_SECOND ) ///< Concentrate pumps prime maximum allowed timeout in prime in milliseconds. +#define CONC_PUMPS_PRIME_MAX_ALLOWED_PRIME_TIME_OUT_MS ( 45 * MS_PER_SECOND ) ///< Concentrate pumps prime maximum allowed timeout in prime in milliseconds. #define HUNDRED_PERCENT_FACTOR 1.00F ///< Hundred percent of expected conductivity when first time reaches it. #define FLOW_INTEGRATED_VOLUME_CHECK_TOLERANCE 0.1F ///< Flow integrated volume has 10% tolerance compare to load cell reading. @@ -194,6 +194,7 @@ static void handleDialysateMixing( F32 measuredROFlowRate_mL_min, F32 acidMixingRatio, F32 bicarbMixingRatio ); static BOOL isValueWithinPercentRange( F32 testValue, F32 baseValue, F32 percentFactor ); static void publishFillModeData( void ); +static void updateChemicalsUsage( void ); /*********************************************************************//** * @brief @@ -352,6 +353,7 @@ { checkDialysateTemperatureSensors(); setHeaterTargetTemperature( DG_PRIMARY_HEATER, getPrimaryHeaterTargetTemperature() ); + updateChemicalsUsage(); if ( fillState != DG_FILL_MODE_STATE_PAUSED ) { @@ -623,8 +625,6 @@ // to dialysate production directly if ( TRUE == isThisTheFirstFill() ) { - resetChemicalUsedVolumeML( BICARB ); - resetChemicalUsedVolumeML( ACID ); result = DG_FILL_MODE_STATE_PRIME_CONCENTRATE_LINES; } else @@ -922,8 +922,6 @@ integratedVolumeML.data += getMeasuredROFlowRateWithConcPumpsLPM() * ML_PER_LITER * FLOW_INTEGRATOR; } - usedAcidVolumeML.data += getMeasuredPumpSpeedMLPM( CONCENTRATEPUMPS_CP1_ACID ) * FLOW_INTEGRATOR; - usedBicarbVolumeML.data += getMeasuredPumpSpeedMLPM( CONCENTRATEPUMPS_CP2_BICARB ) * FLOW_INTEGRATOR; acidConductivityTotal += acidConduSPerCM; bicarbConductivityTotal += bicarbConduSPerCM; conductivitySampleCount++; @@ -1319,7 +1317,20 @@ } } +/*********************************************************************//** + * @brief + * The updateChemicalsUsage function updates the used acid and bicarb volumes. + * @details Inputs: usedAcidVolumeML, usedBicarbVolumeML + * @details Outputs: none + * @return none + *************************************************************************/ +static void updateChemicalsUsage( void ) +{ + usedAcidVolumeML.data += getMeasuredPumpSpeedMLPM( CONCENTRATEPUMPS_CP1_ACID ) * FLOW_INTEGRATOR; + usedBicarbVolumeML.data += getMeasuredPumpSpeedMLPM( CONCENTRATEPUMPS_CP2_BICARB ) * FLOW_INTEGRATOR; +} + /************************************************************************* * TEST SUPPORT FUNCTIONS *************************************************************************/