Index: firmware/App/Modes/ModeFill.c =================================================================== diff -u -rbd80dccfee1f58fdbc49bf05dd000005b105fe26 -r7d69278622976cbdf8406cef731773c6e92d0de1 --- firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision bd80dccfee1f58fdbc49bf05dd000005b105fe26) +++ firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision 7d69278622976cbdf8406cef731773c6e92d0de1) @@ -84,10 +84,10 @@ /// Multiplier to convert flow (mL/min) into volume (mL) for period of general task interval. static const F32 FLOW_INTEGRATOR = ( (F32)TASK_GENERAL_INTERVAL / (F32)( SEC_PER_MIN * MS_PER_SECOND ) ); -static const F32 RO_PUMP_FLUSH_BUBBLES_FLOWS[ RO_PUMP_LOOKUP_TABLE_SIZE ] = { RO_PUMP_400_ML_PER_MIN, ///< Lookup table to determine the desired RO speed in mL/min when flushing bubbles. +static const F32 RO_PUMP_FLUSH_BUBBLES_FLOWS[ RO_PUMP_LOOKUP_TABLE_SIZE ] = { RO_PUMP_400_ML_PER_MIN, RO_PUMP_800_ML_PER_MIN, RO_PUMP_400_ML_PER_MIN, - RO_PUMP_800_ML_PER_MIN }; + RO_PUMP_800_ML_PER_MIN }; ///< Lookup table to determine the desired RO speed in mL/min when flushing bubbles. // ********** private data ********** @@ -105,7 +105,7 @@ BOOL fillEmptyBicarbBottleDetected; ///< Fill bicarb bottle empty detected. } FILL_CONDITION_STATUS_T; -static U32 fillModeDataPublicationTimerCounter; ///< Used to schedule dialysate fill data publication to CAN bus. +static U32 dataPublishCounter; ///< Used to schedule dialysate fill data publication to CAN bus. static DG_FILL_MODE_STATE_T fillState; ///< Currently active fill state. static U32 dialysateFillStartTime; ///< Current time when starting to fill dialysate. static F32 reservoirBaseWeight; ///< Fill reservoir base weight. @@ -171,24 +171,24 @@ *************************************************************************/ void initFillMode( void ) { - fillState = DG_FILL_MODE_STATE_START; - dialysateFillStartTime = 0; - fillModeDataPublicationTimerCounter = 0; - reservoirBaseWeight = 0.0; - totalROFlowRateMLPM = 0.0; - concentrateTestStartTime = 0; - acidConductivityTotal = 0.0; - bicarbConductivityTotal = 0.0; - conductivitySampleCount = 0; - concentratePumpPrimeCount = 0; - pumpSpeedIndex = 0; - averageBicarbConductivity = 0.0; - averageAcidConductivity = 0.0; - pctDiffInConductivity = 0.0; + fillState = DG_FILL_MODE_STATE_START; + dialysateFillStartTime = 0; + dataPublishCounter = 0; + reservoirBaseWeight = 0.0; + totalROFlowRateMLPM = 0.0; + concentrateTestStartTime = 0; + acidConductivityTotal = 0.0; + bicarbConductivityTotal = 0.0; + conductivitySampleCount = 0; + concentratePumpPrimeCount = 0; + pumpSpeedIndex = 0; + averageBicarbConductivity = 0.0; + averageAcidConductivity = 0.0; + pctDiffInConductivity = 0.0; bicarbConductivitySampleCount = 0; acidConductivitySampleCount = 0; - totalBicarbConductivity = 0.0; - totalAcidConductivity = 0.0; + totalBicarbConductivity = 0.0; + totalAcidConductivity = 0.0; initPersistentAlarm( ALARM_ID_DG_ACID_BOTTLE_LOW_VOLUME, 0, EMPTY_BOTTLE_DETECT_PERSISTENT_PERIOD_MS ); initPersistentAlarm( ALARM_ID_DG_BICARB_BOTTLE_LOW_VOLUME, 0, EMPTY_BOTTLE_DETECT_PERSISTENT_PERIOD_MS ); @@ -364,10 +364,10 @@ fillStatus.fillTemperatureRunningSum = 0.0; // At the beginning the last and average temperatures are considered as the trimmer heater target temperature which // is the dialysate temperature - fillStatus.fillTemperatureAverage = getHeaterTargetTemperature( DG_TRIMMER_HEATER ); - fillStatus.fillLastTemperature = getHeaterTargetTemperature( DG_TRIMMER_HEATER ) + RESERVOIR_EXTRA_TEMPERATURE; - fillStatus.isThisFirstFill = TRUE; - fillStatus.fillEmptyAcidBottleDetected = FALSE; + fillStatus.fillTemperatureAverage = getHeaterTargetTemperature( DG_TRIMMER_HEATER ); + fillStatus.fillLastTemperature = getHeaterTargetTemperature( DG_TRIMMER_HEATER ) + RESERVOIR_EXTRA_TEMPERATURE; + fillStatus.isThisFirstFill = TRUE; + fillStatus.fillEmptyAcidBottleDetected = FALSE; fillStatus.fillEmptyBicarbBottleDetected = FALSE; } @@ -555,7 +555,7 @@ static DG_FILL_MODE_STATE_T handleTestBicarbConductivityState( void ) { DG_FILL_MODE_STATE_T result = DG_FILL_MODE_STATE_TEST_BICARB_CONDUCTIVITY; - F32 bicarbConductivity = getConductivityValue( CONDUCTIVITYSENSORS_CD2_SENSOR ); + F32 bicarbConductivity = getConductivityValue( CONDUCTIVITYSENSORS_CD2_SENSOR ); #ifndef DISABLE_BICARB_CONDUCTIVITY_TEST totalBicarbConductivity += bicarbConductivity; @@ -569,11 +569,8 @@ { // Initialization requestConcentratePumpOff( CONCENTRATEPUMPS_CP2_BICARB ); - totalBicarbConductivity = 0.0; - totalAcidConductivity = 0.0; - //averageBicarbConductivity = 0.0; - //averageAcidConductivity = 0.0; - //pctDiffInConductivity = 0.0; + totalBicarbConductivity = 0.0; + totalAcidConductivity = 0.0; bicarbConductivitySampleCount = 0; acidConductivitySampleCount = 0; #endif @@ -584,8 +581,8 @@ setConcentratePumpTargetSpeed( CONCENTRATEPUMPS_CP1_ACID, ACID_PUMP_20_ML_PER_MIN ); requestConcentratePumpOn( CONCENTRATEPUMPS_CP1_ACID ); // State transition - concentrateTestStartTime = getMSTimerCount(); - result = DG_FILL_MODE_STATE_TEST_ACID_CONDUCTIVITY; + concentrateTestStartTime = getMSTimerCount(); + result = DG_FILL_MODE_STATE_TEST_ACID_CONDUCTIVITY; #ifndef DISABLE_BICARB_CONDUCTIVITY_TEST } @@ -613,8 +610,8 @@ static DG_FILL_MODE_STATE_T handleTestAcidConductivityState( void ) { DG_FILL_MODE_STATE_T result = DG_FILL_MODE_STATE_TEST_ACID_CONDUCTIVITY; - F32 acidConductivity = getConductivityValue( CONDUCTIVITYSENSORS_CD1_SENSOR ); - F32 bicarbConductivity = getConductivityValue( CONDUCTIVITYSENSORS_CD2_SENSOR ); + F32 acidConductivity = getConductivityValue( CONDUCTIVITYSENSORS_CD1_SENSOR ); + F32 bicarbConductivity = getConductivityValue( CONDUCTIVITYSENSORS_CD2_SENSOR ); #ifndef DISABLE_ACID_CONDUCTIVITY_TEST totalBicarbConductivity += bicarbConductivity; @@ -627,10 +624,10 @@ { averageBicarbConductivity = totalBicarbConductivity / bicarbConductivitySampleCount; averageAcidConductivity = totalAcidConductivity / acidConductivitySampleCount; - pctDiffInConductivity = fabs( 2.0 * ( averageAcidConductivity - averageBicarbConductivity ) / ( averageAcidConductivity + averageBicarbConductivity ) ); + pctDiffInConductivity = fabs( 2.0 * ( averageAcidConductivity - averageBicarbConductivity ) / + ( averageAcidConductivity + averageBicarbConductivity ) ); - if ( ( TRUE == isValueWithinPercentRange(averageBicarbConductivity, BICARB_TEST_CD2_TCD, FIVE_PERCENT_FACTOR) ) && - ( TRUE == isValueWithinPercentRange(averageAcidConductivity, ACID_TEST_CD2_TCD, FIVE_PERCENT_FACTOR) ) && + if ( ( TRUE == isValueWithinPercentRange(averageAcidConductivity, ACID_TEST_CD2_TCD, FIVE_PERCENT_FACTOR) ) && ( pctDiffInConductivity < FIVE_PERCENT_FACTOR ) ) { #endif @@ -709,20 +706,20 @@ DG_RESERVOIR_ID_T inactiveReservoir = getInactiveReservoir(); F32 integratedVolumeML; - F32 measuredROFlowRateMLPM = getMeasuredROFlowRateLPM() * ML_PER_LITER; - F32 acidConductivity = getConductivityValue( CONDUCTIVITYSENSORS_CD1_SENSOR ); - F32 bicarbConductivity = getConductivityValue( CONDUCTIVITYSENSORS_CD2_SENSOR ); + F32 measuredROFlowRateMLPM = getMeasuredROFlowRateLPM() * ML_PER_LITER; + F32 acidConductivity = getConductivityValue( CONDUCTIVITYSENSORS_CD1_SENSOR ); + F32 bicarbConductivity = getConductivityValue( CONDUCTIVITYSENSORS_CD2_SENSOR ); // Set concentrate pumps speed based on the RO pump flow rate handleDialysateMixing( measuredROFlowRateMLPM ); - totalROFlowRateMLPM += measuredROFlowRateMLPM; - integratedVolumeML = totalROFlowRateMLPM * FLOW_INTEGRATOR * ACID_BICARB_CONCENTRATE_ADDITION_MULTIPLER; - usedAcidVolumeML.data += getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP1_ACID ) * FLOW_INTEGRATOR; - usedBicarbVolumeML.data += getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP2_BICARB ) * FLOW_INTEGRATOR; + totalROFlowRateMLPM += measuredROFlowRateMLPM; + integratedVolumeML = totalROFlowRateMLPM * FLOW_INTEGRATOR * ACID_BICARB_CONCENTRATE_ADDITION_MULTIPLER; + usedAcidVolumeML.data += getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP1_ACID ) * FLOW_INTEGRATOR; + usedBicarbVolumeML.data += getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP2_BICARB ) * FLOW_INTEGRATOR; - acidConductivityTotal += acidConductivity; - bicarbConductivityTotal += bicarbConductivity; + acidConductivityTotal += acidConductivity; + bicarbConductivityTotal += bicarbConductivity; conductivitySampleCount++; // DG is delivering dialysate keep collecting the sample counter and the measured flow @@ -967,7 +964,7 @@ static void publishFillModeData( void ) { // publish Drain pump data on interval - if ( ++fillModeDataPublicationTimerCounter >= getU32OverrideValue( &fillModeDataPublishInterval ) ) + if ( ++dataPublishCounter >= getU32OverrideValue( &fillModeDataPublishInterval ) ) { DG_FILL_MODE_DATA_T fillModeData; @@ -981,7 +978,7 @@ broadcastData( MSG_ID_DG_FILL_MODE_DATA, COMM_BUFFER_OUT_CAN_DG_BROADCAST, (U08*)&fillModeData, sizeof( DG_FILL_MODE_DATA_T ) ); - fillModeDataPublicationTimerCounter = 0; + dataPublishCounter = 0; } }