Index: firmware/App/Controllers/ConcentratePumps.c =================================================================== diff -u -r0f4fbb2a56cdbe35dcedd9cad23867fd7248f86e -ra4669c80291e85fa5ce17d77ebcfd0c882831202 --- firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision 0f4fbb2a56cdbe35dcedd9cad23867fd7248f86e) +++ firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision a4669c80291e85fa5ce17d77ebcfd0c882831202) @@ -8,7 +8,7 @@ * @file ConcentratePumps.c * * @author (last) Dara Navaei -* @date (last) 25-May-2022 +* @date (last) 04-Aug-2022 * * @author (original) Quang Nguyen * @date (original) 22-Oct-2020 @@ -141,6 +141,7 @@ void initConcentratePump( void ) { CONCENTRATE_PUMPS_T pumpId; + concentratePumpMonitorTimerCounter = DATA_PUBLISH_COUNTER_START_COUNT; for ( pumpId = CONCENTRATEPUMPS_CP1_ACID; pumpId < NUM_OF_CONCENTRATE_PUMPS; ++pumpId ) @@ -198,6 +199,7 @@ U08 cp2Direction = concentratePumps[ CONCENTRATEPUMPS_CP2_BICARB ].direction; F32 cp2SetSpeed = concentratePumps[ CONCENTRATEPUMPS_CP2_BICARB ].currentPumpSpeed; F32 cp2Speed = getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP2_BICARB ); + // Use the above values to prepare the broadcast data data.cp1CurrentSetSpeed = ( CONCENTRATE_PUMP_REVERSE_DIR == cp1Direction ? cp1SetSpeed * -1.0 : cp1SetSpeed ); data.cp1MeasuredSpeed = ( CONCENTRATE_PUMP_REVERSE_DIR == cp1Direction ? cp1Speed * -1.0 : cp1Speed ); @@ -470,15 +472,27 @@ concentratePumps[ pumpId ].measuredPumpSpeed.data = 0.0; #ifndef _RELEASE_ - if ( SW_CONFIG_ENABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_ENABLE_V3_SYSTEM ) ) + if ( SW_CONFIG_ENABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_ENABLE_V3_SYSTEM ) ) + { + if ( CONCENTRATEPUMPS_CP1_ACID == pumpId ) { - CONCENTRATEPUMPS_CP1_ACID == pumpId ? setFPGAV3AcidPumpControl( CONCENTRATE_PUMP_OFF_CONTROL ) : - setFPGAV3BicarbPumpControl( CONCENTRATE_PUMP_OFF_CONTROL ); + setFPGAV3AcidPumpControl( CONCENTRATE_PUMP_OFF_CONTROL ); } + else + { + setFPGAV3BicarbPumpControl( CONCENTRATE_PUMP_OFF_CONTROL ); + } + } #endif - CONCENTRATEPUMPS_CP1_ACID == pumpId ? setFPGAAcidPumpSetStepSpeed( CONCENTRATE_PUMP_ZERO_FLOW_RATE ) : - setFPGABicarbSetStepSpeed( CONCENTRATE_PUMP_ZERO_FLOW_RATE ); + if ( CONCENTRATEPUMPS_CP1_ACID == pumpId ) + { + setFPGAAcidPumpSetStepSpeed( CONCENTRATE_PUMP_ZERO_FLOW_RATE ); + } + else + { + setFPGABicarbSetStepSpeed( CONCENTRATE_PUMP_ZERO_FLOW_RATE ); + } } /*********************************************************************//** @@ -633,8 +647,9 @@ *************************************************************************/ static void calcMeasuredPumpsSpeed( CONCENTRATE_PUMPS_T pumpId, U16 pulseWidthCount ) { - F32 pulseWidthInMicroSeconds = (F32)pulseWidthCount * CONCENTRATE_PUMP_HALL_SENSE_PERIOD_RESOLUTION; - BOOL isPulseWidthOut = ( pulseWidthInMicroSeconds <= (F32)CONCENTRATE_PUMP_MIN_ALLOWED_HALL_SENSOR_COUNT ? TRUE : FALSE ); + F32 pulseWidthInMicroSeconds = (F32)pulseWidthCount * CONCENTRATE_PUMP_HALL_SENSE_PERIOD_RESOLUTION; + BOOL isPulseWidthOut = ( pulseWidthInMicroSeconds <= (F32)CONCENTRATE_PUMP_MIN_ALLOWED_HALL_SENSOR_COUNT ? TRUE : FALSE ); + concentratePumps[ pumpId ].pulseWidthUS = pulseWidthInMicroSeconds; checkPersistentAlarm( ALARM_ID_DG_CONC_PUMP_HALL_SENSOR_OUT_OF_RANGE, isPulseWidthOut, pulseWidthInMicroSeconds, @@ -644,8 +659,7 @@ { concentratePumps[ pumpId ].measuredPumpSpeed.data = ( US_PER_SECOND / pulseWidthInMicroSeconds ) * CONCENTRATE_PUMP_VOLUME_PER_PULSE * SEC_PER_MIN; } - - if ( CONCENTRATE_PUMP_ZERO_FLOW_RATE == pulseWidthCount ) + else if ( CONCENTRATE_PUMP_ZERO_FLOW_RATE == pulseWidthCount ) { concentratePumps[ pumpId ].measuredPumpSpeed.data = 0.0; }