Index: firmware/App/Controllers/ROPump.c =================================================================== diff -u -r9a3be9ebb32e5e0d8e1496def50e04dedf490406 -r01da5a9677431082a2ce6cdd69c26f9e778537b4 --- firmware/App/Controllers/ROPump.c (.../ROPump.c) (revision 9a3be9ebb32e5e0d8e1496def50e04dedf490406) +++ firmware/App/Controllers/ROPump.c (.../ROPump.c) (revision 01da5a9677431082a2ce6cdd69c26f9e778537b4) @@ -371,6 +371,8 @@ } #ifndef IGNORE_RO_PUMP_MONITOR + F32 roFeedbackDutyCycle = ROP_FEEDBACK_100_PCT_DUTY_CYCLE_VOLTAGE / roFeedbackVoltage; + // To monitor the flow, the control mode must be in closed loop mode and the pump should be control to flow state // If the pump is controlled to the maximum pressure, the flow might be different from the target flow for more than 10% // but the pump is not able to achieve the flow. @@ -401,12 +403,15 @@ if ( TRUE == isROPumpOn ) { - F32 roFeedbackDutyCycle = ROP_FEEDBACK_100_PCT_DUTY_CYCLE_VOLTAGE / roFeedbackVoltage; BOOL isDCOutOfRange = ( fabs( roFeedbackDutyCycle - roPumpDutyCyclePctSet ) > ROP_DUTY_CYCLE_OUT_OF_RANGE_TOLERANCE ? TRUE : FALSE ); roPumpFeedbackDutyCyclePct = roFeedbackDutyCycle; checkPersistentAlarm( ALARM_ID_RO_PUMP_DUTY_CYCLE_OUT_OF_RANGE, TRUE, roFeedbackDutyCycle, roPumpDutyCyclePctSet ); } + else + { + checkPersistentAlarm( ALARM_ID_RO_PUMP_DUTY_CYCLE_OUT_OF_RANGE, FALSE, roFeedbackDutyCycle, roPumpDutyCyclePctSet ); + } #endif // Publish RO pump data on interval @@ -1016,7 +1021,7 @@ { BOOL result = FALSE; - //if ( TRUE == isTestingActivated() ) TODO uncomment + if ( TRUE == isTestingActivated() ) { // Check if duty cycle is within range if ( value >= MIN_RO_PUMP_DUTY_CYCLE && value <= MAX_RO_PUMP_DUTY_CYCLE )