Index: firmware/App/Modes/FPModes/FlushFilter.c =================================================================== diff -u -rf07b1a8a668e0bc8421700ec781133c110ce074c -r1738bd16294a1ebc0c01f1a7f340213d6a0d4582 --- firmware/App/Modes/FPModes/FlushFilter.c (.../FlushFilter.c) (revision f07b1a8a668e0bc8421700ec781133c110ce074c) +++ firmware/App/Modes/FPModes/FlushFilter.c (.../FlushFilter.c) (revision 1738bd16294a1ebc0c01f1a7f340213d6a0d4582) @@ -27,7 +27,6 @@ #include "Temperature.h" #include "Timers.h" #include "Valves.h" -#include "WaterQualityMonitor.h" /** * @addtogroup FPFilterFlush @@ -43,6 +42,7 @@ #define MAX_INLET_TEMPERATURE_HIGH_PSI_C 40.0F ///< Maximum allowed Inlet temperature in C. #define INLET_TEMPERATURE_PERSISTENCE_CLEAR_MS ( 5 * MS_PER_SECOND ) ///< Persistence timer to clear alarm in ms. #define INLET_TEMPERATURE_PERSISTENCE_TIMER_MS ( 5 * MS_PER_SECOND ) ///< Persistence timer to trigger alarm in ms. +#define INLET_TEMPERATURE_CRITICAL_THRESHOLD_C 40.0F ///< Maximum allowed M3 Inlet temperature in C during filters flush state. // ********** private data ********** @@ -87,7 +87,7 @@ isFlushComplete = FALSE; pendingStartFilterFlushRequest = FALSE; - initPersistentAlarm( ALARM_ID_FP_INLET_TEMPERATURE_OUT_LOW_RANGE, INLET_TEMPERATURE_PERSISTENCE_CLEAR_MS, INLET_TEMPERATURE_PERSISTENCE_TIMER_MS ); + initPersistentAlarm( ALARM_ID_FP_INLET_TEMPERATURE_OUT_CRITICAL_RANGE, INLET_TEMPERATURE_PERSISTENCE_CLEAR_MS, INLET_TEMPERATURE_PERSISTENCE_TIMER_MS ); } /*********************************************************************//** @@ -124,9 +124,6 @@ setFilterFlushTransition( filterFlushState ); } - // check inlet temperature m3 - checkFiltersFlushInletTemperature(); - // publish filter flush data on interval publishFilterFlushData(); } @@ -141,12 +138,17 @@ static FP_FILTER_FLUSH_STATE_T handleFilterFlushProgressState( void ) { FP_FILTER_FLUSH_STATE_T state = FILTER_FLUSH_IN_PROGRESS; + F32 temperatureM3 = getFilteredPressureSensorTemperature( M3_PRES ); + BOOL isTempOutOfHighRange = FALSE; // if ( TRUE == 1 )// TODO Alarm and Stop State Rework // { // state = FILTER_FLUSH_PAUSED; // } + isTempOutOfHighRange = ( ( temperatureM3 >= INLET_TEMPERATURE_CRITICAL_THRESHOLD_C ) ? TRUE : FALSE ); + checkPersistentAlarm( ALARM_ID_FP_INLET_TEMPERATURE_OUT_CRITICAL_RANGE, isTempOutOfHighRange, temperatureM3, INLET_TEMPERATURE_CRITICAL_THRESHOLD_C ); + if( TRUE == didTimeout( filterFlushTimer, getFilterFlushTimeout() ) ) { isFlushComplete = TRUE; Index: firmware/App/Monitors/WaterQualityMonitor.c =================================================================== diff -u -re61432cac762f194ece830635f3939c155054777 -r1738bd16294a1ebc0c01f1a7f340213d6a0d4582 --- firmware/App/Monitors/WaterQualityMonitor.c (.../WaterQualityMonitor.c) (revision e61432cac762f194ece830635f3939c155054777) +++ firmware/App/Monitors/WaterQualityMonitor.c (.../WaterQualityMonitor.c) (revision 1738bd16294a1ebc0c01f1a7f340213d6a0d4582) @@ -35,11 +35,10 @@ // ********** private definitions ********** -#define INLET_TEMPERATURE_LOW_THRESHOLD_C 5.0F ///< Minimum allowed P10/D1 Inlet temperature in C. -#define INLET_TEMPERATURE_HIGH_THRESHOLD_C 30.0F ///< Maximum allowed P10/D1 Inlet temperature in C. -#define INLET_TEMPERATURE_CRITICAL_THRESHOLD_C 40.0F ///< Maximum allowed M3 Inlet temperature in C during filters flush state. -#define INLET_TEMPERATURE_PERSISTENCE_TIMER_MS ( 5 * MS_PER_SECOND ) ///< Persistence timer to trigger alarm in ms. -#define INLET_TEMPERATURE_PERSISTENCE_CLEAR_MS ( 5 * MS_PER_SECOND ) ///< Persistence timer to clear alarm in ms. +#define INLET_TEMPERATURE_LOW_THRESHOLD_C 5.0F ///< Minimum allowed P10/D1 inlet temperature in C. +#define INLET_TEMPERATURE_HIGH_THRESHOLD_C 30.0F ///< Maximum allowed P10/D1 inlet temperature in C. +#define INLET_TEMPERATURE_PERSISTENCE_TIMER_MS ( 5 * MS_PER_SECOND ) ///< Persistence timer for P10/D1 inlet temperature to trigger alarm in milliseconds. +#define INLET_TEMPERATURE_PERSISTENCE_CLEAR_MS ( 5 * MS_PER_SECOND ) ///< Persistence timer for P10/D1 inlet temperature to clear alarm in milliseconds. #define MAX_INLET_RO_PUMP_PRESSURE_WARNING_HIGH_PSIG 120.0F ///< Maximum allowed Input warning pressure to the RO membrane. #define MAX_INLET_RO_PUMP_PRESSURE_WARNING_LOW_PSIG 58.0F ///< Minimum Input warning pressure to the RO membrane. @@ -106,7 +105,6 @@ // Temperature Alarms initPersistentAlarm( ALARM_ID_FP_INLET_TEMPERATURE_OUT_LOW_RANGE, INLET_TEMPERATURE_PERSISTENCE_CLEAR_MS, INLET_TEMPERATURE_PERSISTENCE_TIMER_MS ); initPersistentAlarm( ALARM_ID_FP_INLET_TEMPERATURE_OUT_HIGH_RANGE, INLET_TEMPERATURE_PERSISTENCE_CLEAR_MS, INLET_TEMPERATURE_PERSISTENCE_TIMER_MS ); - initPersistentAlarm( ALARM_ID_FP_INLET_TEMPERATURE_OUT_CRITICAL_RANGE, INLET_TEMPERATURE_PERSISTENCE_CLEAR_MS, INLET_TEMPERATURE_PERSISTENCE_TIMER_MS ); // Conductivity Alarms initPersistentAlarm( ALARM_ID_FP_INLET_CONDUCTIVITY_OUT_HIGH_RANGE, INLET_WATER_COND_OUT_OF_RANGE_CLEAR_MS, INLET_WATER_COND_OUT_OF_RANGE_TIMEOUT_MS ); @@ -349,25 +347,6 @@ /*********************************************************************//** * @brief - * The checkFiltersFlushInletTemperature function checks the inlet water temperature - * against the temperature threshold and alarm if the temperature is out of range. - * @details \b Inputs: temperatureM3 - * @details \b Outputs: none - * @details \b Alarms: ALARM_ID_FP_INLET_TEMPERATURE_OUT_CRITICAL_RANGE when - * M3 temperature goes beyond high temperature limit - * @return none - *************************************************************************/ -void checkFiltersFlushInletTemperature( void ) -{ - F32 temperatureM3 = getFilteredPressureSensorTemperature( M3_PRES ); - BOOL isTempOutOfHighRange = FALSE; - - isTempOutOfHighRange = ( ( temperatureM3 >= INLET_TEMPERATURE_CRITICAL_THRESHOLD_C ) ? TRUE : FALSE ); - checkPersistentAlarm( ALARM_ID_FP_INLET_TEMPERATURE_OUT_CRITICAL_RANGE, isTempOutOfHighRange, temperatureM3, INLET_TEMPERATURE_CRITICAL_THRESHOLD_C ); -} - -/*********************************************************************//** - * @brief * The checkInletConductivity function checks the inlet conductivity * against the conductivity threshold and alarm if the conductivity is out of range. * @details \b Inputs: conductivityP9 Index: firmware/App/Monitors/WaterQualityMonitor.h =================================================================== diff -u -rf07b1a8a668e0bc8421700ec781133c110ce074c -r1738bd16294a1ebc0c01f1a7f340213d6a0d4582 --- firmware/App/Monitors/WaterQualityMonitor.h (.../WaterQualityMonitor.h) (revision f07b1a8a668e0bc8421700ec781133c110ce074c) +++ firmware/App/Monitors/WaterQualityMonitor.h (.../WaterQualityMonitor.h) (revision 1738bd16294a1ebc0c01f1a7f340213d6a0d4582) @@ -48,7 +48,6 @@ void checkPermeateLowFlow( void ); void checkRODutyCycle( void ); void checkROInletPressure( void ); -void checkFiltersFlushInletTemperature( void ); BOOL testROGetCurrentCalcuclatedDutyCycle();