Index: firmware/App/Controllers/ConcentratePumps.c =================================================================== diff -u -r79d12d6910a03b6fe08161d0cd3c706e7d359fff -r56b1e4181f80f63d290101348dacdb3f1c39c538 --- firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision 79d12d6910a03b6fe08161d0cd3c706e7d359fff) +++ firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision 56b1e4181f80f63d290101348dacdb3f1c39c538) @@ -268,21 +268,19 @@ U08 cp1Direction = concentratePumps[ CONCENTRATEPUMPS_CP1_ACID ].direction; F32 cp1SetSpeed = concentratePumps[ CONCENTRATEPUMPS_CP1_ACID ].currentPumpSpeed; - F32 cp1Speed = getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP1_ACID ); F32 cp1TgtSpeed = concentratePumps[ CONCENTRATEPUMPS_CP1_ACID ].pumpTargetSpeed; BOOL cp1Parked = getConcPumpIsParked( CONCENTRATEPUMPS_CP1_ACID ); BOOL cp2ParkFault = getConcPumpParkIsFaulted( CONCENTRATEPUMPS_CP1_ACID ); U08 cp2Direction = concentratePumps[ CONCENTRATEPUMPS_CP2_BICARB ].direction; F32 cp2SetSpeed = concentratePumps[ CONCENTRATEPUMPS_CP2_BICARB ].currentPumpSpeed; - F32 cp2Speed = getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP2_BICARB ); F32 cp2TgtSpeed = concentratePumps[ CONCENTRATEPUMPS_CP2_BICARB ].pumpTargetSpeed; // Use the above values to prepare the broadcast data data.cp1CurrentSetSpeed = ( CONCENTRATE_PUMP_REVERSE_DIR == cp1Direction ? cp1SetSpeed * -1.0F : cp1SetSpeed ); - data.cp1MeasuredSpeed = ( CONCENTRATE_PUMP_REVERSE_DIR == cp1Direction ? cp1Speed * -1.0F : cp1Speed ); + data.cp1MeasuredSpeed = getMeasuredPumpSpeedMLPM( CONCENTRATEPUMPS_CP1_ACID ); data.cp1TargetSpeed = ( CONCENTRATE_PUMP_REVERSE_DIR == cp1Direction ? cp1TgtSpeed * -1.0F : cp1TgtSpeed ); data.cp2CurrentSetSpeed = ( CONCENTRATE_PUMP_REVERSE_DIR == cp2Direction ? cp2SetSpeed * -1.0F : cp2SetSpeed ); - data.cp2MeasuredSpeed = ( CONCENTRATE_PUMP_REVERSE_DIR == cp2Direction ? cp2Speed * -1.0F : cp2Speed ); + data.cp2MeasuredSpeed = getMeasuredPumpSpeedMLPM( CONCENTRATEPUMPS_CP2_BICARB ); data.cp2TargetSpeed = ( CONCENTRATE_PUMP_REVERSE_DIR == cp2Direction ? cp2TgtSpeed * -1.0F : cp2TgtSpeed ); data.cp1State = concentratePumps[ CONCENTRATEPUMPS_CP1_ACID ].execState; data.cp2State = concentratePumps[ CONCENTRATEPUMPS_CP2_BICARB ].execState; @@ -485,19 +483,20 @@ /*********************************************************************//** * @brief - * The getMeasuredPumpSpeed function gets the measured concentrate pump flow rate. + * The getMeasuredPumpSpeedMLPM function gets the measured concentrate pump flow rate. * @details Inputs: measuredPumpSpeed * @details Outputs: none * @param pumpId concentrate pump id to increase current step speed * @return the current concentrate pump flow rate (in mL/min). *************************************************************************/ -F32 getMeasuredPumpSpeed( CONCENTRATE_PUMPS_T pumpId ) +F32 getMeasuredPumpSpeedMLPM( CONCENTRATE_PUMPS_T pumpId ) { - F32 speed = 0.0; + F32 speed = 0.0F; if ( pumpId < NUM_OF_CONCENTRATE_PUMPS ) { speed = getF32OverrideValue( &concentratePumps[ pumpId ].measuredPumpSpeed ); + speed = ( CONCENTRATE_PUMP_REVERSE_DIR == concentratePumps[ pumpId ].direction ? speed * -1.0F : speed ); } else { @@ -908,7 +907,7 @@ static void monitorPumpSpeed( CONCENTRATE_PUMPS_T pumpId, ALARM_ID_T alarm ) { F32 cpTargetSpeed = concentratePumps[ pumpId ].currentPumpSpeed; - F32 cpError = fabs( getMeasuredPumpSpeed( pumpId ) - cpTargetSpeed ); + F32 cpError = fabs( getMeasuredPumpSpeedMLPM( pumpId ) - cpTargetSpeed ); BOOL isCpSpeedOut = FALSE; F32 tolerance = CONCENTRATE_PUMP_SPD_OUT_OF_RANGE_TOL_WHEN_SLOW_MLPM; Index: firmware/App/Controllers/ConcentratePumps.h =================================================================== diff -u -r6cb5b0565e199e7ebbdfb278c58c9775af181043 -r56b1e4181f80f63d290101348dacdb3f1c39c538 --- firmware/App/Controllers/ConcentratePumps.h (.../ConcentratePumps.h) (revision 6cb5b0565e199e7ebbdfb278c58c9775af181043) +++ firmware/App/Controllers/ConcentratePumps.h (.../ConcentratePumps.h) (revision 56b1e4181f80f63d290101348dacdb3f1c39c538) @@ -78,7 +78,7 @@ void setConcentratePumpTargetSpeed( CONCENTRATE_PUMPS_T pumpId, F32 targetSpeed_ml_min ); F32 getConcentratePumpTargetFlowMLPM( CONCENTRATE_PUMPS_T pumpId ); -F32 getMeasuredPumpSpeed( CONCENTRATE_PUMPS_T pumpId ); +F32 getMeasuredPumpSpeedMLPM( CONCENTRATE_PUMPS_T pumpId ); BOOL getConcPumpIsParked( CONCENTRATE_PUMPS_T pumpId ); BOOL getConcPumpParkIsFaulted( CONCENTRATE_PUMPS_T pumpId ); Index: firmware/App/Controllers/DrainPump.c =================================================================== diff -u -r9b8889b096ae02246e939468fc843f467de8c6bb -r56b1e4181f80f63d290101348dacdb3f1c39c538 --- firmware/App/Controllers/DrainPump.c (.../DrainPump.c) (revision 9b8889b096ae02246e939468fc843f467de8c6bb) +++ firmware/App/Controllers/DrainPump.c (.../DrainPump.c) (revision 56b1e4181f80f63d290101348dacdb3f1c39c538) @@ -946,6 +946,7 @@ if ( 0 == value ) { + result = TRUE; signalDrainPumpHardStop(); } } Index: firmware/App/Controllers/FlowSensors.c =================================================================== diff -u -r5fc30ce9beec03fad785ce9f9e6602d4b49079fa -r56b1e4181f80f63d290101348dacdb3f1c39c538 --- firmware/App/Controllers/FlowSensors.c (.../FlowSensors.c) (revision 5fc30ce9beec03fad785ce9f9e6602d4b49079fa) +++ firmware/App/Controllers/FlowSensors.c (.../FlowSensors.c) (revision 56b1e4181f80f63d290101348dacdb3f1c39c538) @@ -144,8 +144,8 @@ flowSensorStatus[ i ].measuredFlowBeforeCalLPM.data = oldest2CurrentEdgeDiff * FLOW_SENSORS_LITERS_PER_PULSES * SEC_PER_MIN; flowSensorStatus[ i ].measuredROFlowWithCPsLPM.data = getCalibrationAppliedFlowLPM( i, flowSensorStatus[ i ].measuredFlowBeforeCalLPM.data ); measFlow = flowSensorStatus[ i ].measuredROFlowWithCPsLPM.data - - ( getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP1_ACID ) / ML_PER_LITER ) - - ( getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP2_BICARB ) / ML_PER_LITER ); + ( getMeasuredPumpSpeedMLPM( CONCENTRATEPUMPS_CP1_ACID ) / ML_PER_LITER ) - + ( getMeasuredPumpSpeedMLPM( CONCENTRATEPUMPS_CP2_BICARB ) / ML_PER_LITER ); flowSensorStatus[ i ].measuredFlowLPM.data = MAX( measFlow, 0.0F ); break; Index: firmware/App/Modes/ModeFill.c =================================================================== diff -u -re7456f2e25604fc6b97eeda52f00bd0c5535487d -r56b1e4181f80f63d290101348dacdb3f1c39c538 --- firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision e7456f2e25604fc6b97eeda52f00bd0c5535487d) +++ firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision 56b1e4181f80f63d290101348dacdb3f1c39c538) @@ -875,8 +875,8 @@ integratedVolumeML.data += getMeasuredROFlowRateWithConcPumpsLPM() * ML_PER_LITER * FLOW_INTEGRATOR; } - usedAcidVolumeML.data += getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP1_ACID ) * FLOW_INTEGRATOR; - usedBicarbVolumeML.data += getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP2_BICARB ) * FLOW_INTEGRATOR; + usedAcidVolumeML.data += getMeasuredPumpSpeedMLPM( CONCENTRATEPUMPS_CP1_ACID ) * FLOW_INTEGRATOR; + usedBicarbVolumeML.data += getMeasuredPumpSpeedMLPM( CONCENTRATEPUMPS_CP2_BICARB ) * FLOW_INTEGRATOR; acidConductivityTotal += acidConduSPerCM; bicarbConductivityTotal += bicarbConduSPerCM; conductivitySampleCount++; Index: firmware/App/Modes/ModeHeatDisinfect.c =================================================================== diff -u -r75868c86d86060f8ec8fde969a479e186e51d9a0 -r56b1e4181f80f63d290101348dacdb3f1c39c538 --- firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision 75868c86d86060f8ec8fde969a479e186e51d9a0) +++ firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision 56b1e4181f80f63d290101348dacdb3f1c39c538) @@ -1847,8 +1847,8 @@ if ( TPoTempC >= concPumpsStartTemperatureC ) { - F32 acidSpeed = getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP1_ACID ); - F32 bicarbSpeed = getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP2_BICARB ); + F32 acidSpeed = getMeasuredPumpSpeedMLPM( CONCENTRATEPUMPS_CP1_ACID ); + F32 bicarbSpeed = getMeasuredPumpSpeedMLPM( CONCENTRATEPUMPS_CP2_BICARB ); if ( ( acidSpeed < NEARLY_ZERO ) || ( bicarbSpeed < NEARLY_ZERO ) ) {