Index: firmware/App/Controllers/ConcentratePumps.c =================================================================== diff -u -r4cd896f8bdce0ca7cea88e99ed344ca7ec5a6abe -r1e62db4e4c11657a30823872d3a523814c9c7419 --- firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision 4cd896f8bdce0ca7cea88e99ed344ca7ec5a6abe) +++ firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision 1e62db4e4c11657a30823872d3a523814c9c7419) @@ -8,7 +8,7 @@ * @file ConcentratePumps.c * * @author (last) Dara Navaei -* @date (last) 20-Jul-2023 +* @date (last) 09-Aug-2023 * * @author (original) Quang Nguyen * @date (original) 22-Oct-2020 @@ -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;