Index: firmware/App/Controllers/ConcentratePumps.c =================================================================== diff -u -r5bc763948140d98515c3b47483ea4f8895a9562d -reb97471d81e8f8fda70fafe89666e3b0afda72e7 --- firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision 5bc763948140d98515c3b47483ea4f8895a9562d) +++ firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision eb97471d81e8f8fda70fafe89666e3b0afda72e7) @@ -57,7 +57,7 @@ ( CONCENTRATE_PUMP_STEP_PER_REV * \ CONCENTRATE_PUMP_MICRO_STEPS_PER_STEP ) ) ///< Convert volume in to number of revolutions needed. #define CONCENTRATE_PUMP_VOLUME_TO_REVOLUTION ( ( 1.0F / CONCENTRATE_PUMP_VOLUME_PER_REV ) * \ - ( CONCENTRATE_PUMP_VOLUME_PER_REV * \ + ( CONCENTRATE_PUMP_STEP_PER_REV * \ CONCENTRATE_PUMP_MICRO_STEPS_PER_STEP ) ) ///< Convert volume in to number of revolutions needed. #define CONCENTRATE_PUMP_STEP_PERIOD_RESOLUTION ( 0.50F / ( US_PER_SECOND * SEC_PER_MIN ) ) ///< Convert step period resolution (0.50 us) to minute. @@ -561,12 +561,14 @@ } else { - if ( TRUE == getTestConfigStatus( TEST_CONFIG_DIENER_CONC_PUMP ) ) + if ( TRUE != getTestConfigStatus( TEST_CONFIG_DISABLE_DIENER_CONC_PUMP ) ) { pumpTargetRevCnt[ pumpId ].data = (U32)( targetVolume_ml * CONCENTRATE_PUMP_VOLUME_TO_REVOLUTION_DIENER ); } else { + //Restrict FMI pump speed to 48.0 ml/min. + targetSpeed_ml_min = ( targetSpeed_ml_min > CONCENTRATE_PUMP_MAX_SPEED_FMI ) ? CONCENTRATE_PUMP_MAX_SPEED_FMI : targetSpeed_ml_min; pumpTargetRevCnt[ pumpId ].data = (U32)( targetVolume_ml * CONCENTRATE_PUMP_VOLUME_TO_REVOLUTION ); } } @@ -963,7 +965,6 @@ static CONCENTRATE_PUMP_STATE_T handleConcentratePumpRampToTargetSpeedState( CONCENTRATE_PUMPS_T pumpId ) { CONCENTRATE_PUMP_STATE_T state = CONCENTRATE_PUMP_RAMP_TO_TARGET_SPEED_STATE; - //U16 currentMeasuredRev = getConcPumpCurrentMeasuredRevolutionCount( pumpId ); if ( TRUE == stepConcentratePumpToTargetSpeed( pumpId ) ) { @@ -994,7 +995,6 @@ static CONCENTRATE_PUMP_STATE_T handleConcentratePumpControlTargetSpeedState( CONCENTRATE_PUMPS_T pumpId ) { CONCENTRATE_PUMP_STATE_T state = CONCENTRATE_PUMP_CONTROL_TARGET_SPEED_STATE; - //U16 currentMeasuredRev = getConcPumpCurrentMeasuredRevolutionCount( pumpId ); F32 targetToCurreSpeedDiffMLPM = fabs( getPumpTargetSpeed( pumpId ) - concentratePumps[ pumpId ].currentPumpSpeed ); if ( ++concentratePumps[ pumpId ].controlTimerCounter >= CONCENTRATE_PUMP_CONTROL_INTERVAL ) @@ -1069,7 +1069,7 @@ F32 timePerStep; F32 stepPeriodCounts; - if ( TRUE == getTestConfigStatus( TEST_CONFIG_DIENER_CONC_PUMP ) ) + if ( TRUE != getTestConfigStatus( TEST_CONFIG_DISABLE_DIENER_CONC_PUMP ) ) { timePerStep = CONCENTRATE_PUMP_VOLUME_PER_REV_DIENER / ( concentratePumps[ pumpId ].currentPumpSpeed * CONCENTRATE_PUMP_STEP_PER_REV ); } @@ -1151,7 +1151,7 @@ } else if ( FALSE == isPumpPulseWidthOut ) { - if ( TRUE == getTestConfigStatus( TEST_CONFIG_DIENER_CONC_PUMP ) ) + if ( TRUE != getTestConfigStatus( TEST_CONFIG_DISABLE_DIENER_CONC_PUMP ) ) { measuredPumpSpeed[ pumpId ].data = ( US_PER_SECOND / pulseWidthInMicroSeconds ) * CONCENTRATE_PUMP_VOLUME_PER_PULSE_DIENER * SEC_PER_MIN; }