Index: firmware/App/Modes/ModeFill.c =================================================================== diff -u -r95eefee71702fbf031025dc35ebaf553dfb050b7 -r8fe65bf6222137cc7182ccacff3a5f2fb2f03753 --- firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision 95eefee71702fbf031025dc35ebaf553dfb050b7) +++ firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision 8fe65bf6222137cc7182ccacff3a5f2fb2f03753) @@ -210,9 +210,7 @@ // NOTE: The target flow rate should be set prior to setting the start primary heater // because the initial guess in the heaters driver needs the target flow to calculate // the new PWMs for the main and small primary heaters -#ifndef DISABLE_FLOW_CONTROL_TREATMENT setROPumpTargetFlowRateLPM( getTargetFillFlowRateLPM(), TARGET_RO_PRESSURE_PSI ); -#endif setHeaterTargetTemperature( DG_PRIMARY_HEATER, getPrimaryHeaterTargetTemperature() ); startHeater( DG_PRIMARY_HEATER ); @@ -559,11 +557,22 @@ if ( TRUE == didTimeout( concentrateTestStartTime, CONCENTRATE_TEST_TIME_OUT_MS ) ) { - averageBicarbConductivity = totalBicarbConductivity / bicarbConductivitySampleCount; + BOOL isConductivityInRange = FALSE; + averageBicarbConductivity = totalBicarbConductivity / bicarbConductivitySampleCount; -#ifndef DISABLE_BICARB_CONDUCTIVITY_TEST if ( TRUE == isValueWithinPercentRange( averageBicarbConductivity, BICARB_TEST_CD2_TCD, FIVE_PERCENT_FACTOR ) ) + { + isConductivityInRange = TRUE; + } + +#ifndef _RELEASE_ + if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_BICARB_CONDUCTIVITY_TEST ) != SW_CONFIG_ENABLE_VALUE ) + { + isConductivityInRange = TRUE; + } #endif + + if ( TRUE == isConductivityInRange ) { // Initialization requestConcentratePumpOff( CONCENTRATEPUMPS_CP2_BICARB ); @@ -579,15 +588,12 @@ // State transition concentrateTestStartTime = getMSTimerCount(); result = DG_FILL_MODE_STATE_TEST_ACID_CONDUCTIVITY; - } -#ifndef DISABLE_BICARB_CONDUCTIVITY_TEST else { // Bicarb test failed, go to fault SET_ALARM_WITH_1_F32_DATA( ALARM_ID_BICARB_CONDUCTIVITY_OUT_OF_RANGE, averageBicarbConductivity ); } -#endif } return result; @@ -617,14 +623,26 @@ if ( TRUE == didTimeout( concentrateTestStartTime, CONCENTRATE_TEST_TIME_OUT_MS ) ) { + BOOL haveTestsPassed = FALSE; averageBicarbConductivity = totalBicarbConductivity / bicarbConductivitySampleCount; averageAcidConductivity = totalAcidConductivity / acidConductivitySampleCount; pctDiffInConductivity = fabs( 2.0 * ( averageAcidConductivity - averageBicarbConductivity ) / ( averageAcidConductivity + averageBicarbConductivity ) ); -#ifndef DISABLE_ACID_CONDUCTIVITY_TEST + if ( ( TRUE == isValueWithinPercentRange( averageAcidConductivity, ACID_TEST_CD2_TCD, FIVE_PERCENT_FACTOR ) ) && ( pctDiffInConductivity < FIVE_PERCENT_FACTOR ) ) + { + haveTestsPassed = TRUE; + } + +#ifndef _RELEASE_ + if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_BICARB_CONDUCTIVITY_TEST ) != SW_CONFIG_ENABLE_VALUE ) + { + haveTestsPassed = TRUE; + } #endif + + if ( TRUE == haveTestsPassed ) { setROPumpTargetFlowRateLPM( getTargetFillFlowRateLPM(), TARGET_RO_PRESSURE_PSI ); @@ -635,13 +653,11 @@ fillStatus.isThisFirstFill = FALSE; result = DG_FILL_MODE_STATE_PRODUCE_DIALYSATE; } -#ifndef DISABLE_ACID_CONDUCTIVITY_TEST else { // Acid conductivity did not pass, fault SET_ALARM_WITH_1_F32_DATA( ALARM_ID_ACID_CONDUCTIVITY_OUT_OF_RANGE, averageAcidConductivity ); } -#endif } return result; @@ -662,9 +678,7 @@ // Prime mixing before deliver result to reservoir handleDialysateMixing( getMeasuredROFlowRateLPM() * ML_PER_LITER ); -#ifndef DISABLE_MIXING if ( concentratePumpPrimeCount++ > CONCENTRATE_PUMP_PRIME_INTERVAL ) -#endif { setValveState( VPO, VALVE_STATE_FILL_C_TO_NC ); @@ -716,14 +730,17 @@ F32 avgAcidConductivity = acidConductivityTotal / conductivitySampleCount; F32 avgBicarbConductivity = bicarbConductivityTotal / conductivitySampleCount; -#ifndef DISABLE_FLOW_CHECK_IN_FILL - if ( integratedVolumeToLoadCellReadingPercent > FLOW_INTEGRATED_VOLUME_CHECK_TOLERANCE ) // SRSDG 240 +#ifndef _RELEASE_ + if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_FLOW_VS_LOAD_CELL_CHECK_IN_FILL ) != SW_CONFIG_ENABLE_VALUE ) +#endif { - SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_FLOW_METER_CHECK_FAILURE, filledVolumeML, integratedVolumeML ); + if ( integratedVolumeToLoadCellReadingPercent > FLOW_INTEGRATED_VOLUME_CHECK_TOLERANCE ) // SRSDG 240 + { + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_FLOW_METER_CHECK_FAILURE, filledVolumeML, integratedVolumeML ); + } } -#endif -#ifndef DISABLE_DIALYSATE_CHECK // SRSDG 400 + // SRSDG 400 if ( FALSE == isValueWithinPercentRange( avgBicarbConductivity, BICARB_NORMAL_CONDUCTIVITY, FIVE_PERCENT_FACTOR ) ) { setBadAvgConductivityDetectedFlag( TRUE ); // signal idle bad avg conductivity detected @@ -739,7 +756,7 @@ SET_ALARM_WITH_2_F32_DATA( ALARM_ID_FILL_CONDUCTIVITY_OUT_OF_RANGE, avgAcidConductivity, ACID_NORMAL_CONDUCTIVITY ); // trigger replace bottles alarm #1 then activateAlarmNoData ( ALARM_ID_CREATING_DIALYSATE_PLEASE_WAIT ); } -#endif + // Done with this fill. Calculate the average fill flow rate and average temperature // Reset the variables for the next fill // Get the last fill temperature before leaving to Generation Idle @@ -882,7 +899,6 @@ *************************************************************************/ static void handleDialysateMixing( F32 measuredROFlowRate_mL_min ) { -#ifndef DISABLE_MIXING // TODO what should we do with start volume from the structure? DG_ACID_CONCENTRATES_RECORD_T acid = getAcidConcentrateCalRecord(); DG_BICARB_CONCENTRATES_RECORD_T bicarb = getBicarbConcentrateCalRecord(); @@ -897,7 +913,6 @@ setConcentratePumpTargetSpeed( CONCENTRATEPUMPS_CP1_ACID, acidCP1PumpFlowRate ); setConcentratePumpTargetSpeed( CONCENTRATEPUMPS_CP2_BICARB, bicarbCP2PumpFlowRate ); -#endif } /*********************************************************************//**