Index: firmware/App/Controllers/ConductivitySensors.c =================================================================== diff -u -rde9033912212f6af3a2f33321d948ce5aabac358 -r27cf459aaabea8e98188e929d2d762942b3e78e1 --- firmware/App/Controllers/ConductivitySensors.c (.../ConductivitySensors.c) (revision de9033912212f6af3a2f33321d948ce5aabac358) +++ firmware/App/Controllers/ConductivitySensors.c (.../ConductivitySensors.c) (revision 27cf459aaabea8e98188e929d2d762942b3e78e1) @@ -43,8 +43,8 @@ #define COND_SENSOR_REFERENCE_TEMPERATURE 25 ///< Reference temperature for conductivity sensor. #define COND_SENSOR_REPORT_PERIOD ( MS_PER_SECOND / TASK_PRIORITY_INTERVAL ) ///< Broadcast conductivity values message every second. -#define COND_SENSOR_CPI_MAX_VALUE 2000 ///< Maximum inlet water conductivity. -#define COND_SENSOR_CPI_MIN_VALUE 100 ///< Minimum inlet water conductivity. +#define COND_SENSOR_CPI_MAX_VALUE 2200 ///< Maximum inlet water conductivity. +#define COND_SENSOR_CPI_MIN_VALUE 2000 ///< Minimum inlet water conductivity. #define MAX_ALLOWED_UNCHANGED_CONDUCTIVITY_READS ( MS_PER_SECOND / TASK_PRIORITY_INTERVAL ) ///< New reading every 800 ms, expect to get valid new reading in 1s. #define MAX_CONDUCTIVITY_SENSOR_FAILURES 5 ///< maximum number of conductivity sensor errors within window period before alarm. @@ -139,7 +139,7 @@ setFPGACPoProbeType( COND_CPO_SENSOR_PROBE_TYPE ); initTimeWindowedCount( TIME_WINDOWED_COUNT_FPGA_CONDUCTIVITY_SENSOR_ERROR, MAX_CONDUCTIVITY_SENSOR_FAILURES, MAX_CONDUCTIVITY_SENSOR_FAILURE_WINDOW_MS ); - initPersistentAlarm( ALARM_ID_INLET_WATER_HIGH_CONDUCTIVITY, COND_SENSOR_PERSISTENCE_PERIOD, COND_SENSOR_PERSISTENCE_PERIOD ); + initPersistentAlarm( ALARM_ID_INLET_WATER_CONDUCTIVITY_IN_WARNING_RANGE, COND_SENSOR_PERSISTENCE_PERIOD, COND_SENSOR_PERSISTENCE_PERIOD ); initPersistentAlarm( ALARM_ID_INLET_WATER_LOW_CONDUCTIVITY, COND_SENSOR_PERSISTENCE_PERIOD, COND_SENSOR_PERSISTENCE_PERIOD ); initPersistentAlarm( ALARM_ID_RO_REJECTION_RATIO_OUT_OF_RANGE, RO_REJECTION_RATIO_PERSISTENCE_PERIOD, RO_REJECTION_RATIO_PERSISTENCE_PERIOD ); } @@ -212,21 +212,33 @@ /*********************************************************************//** * @brief * The checkInletWaterConductivity function checks inlet water conductivity value - * and triggers an alarm when conductivity value is out of allowed range. + * and triggers an alarm when conductivity value is not within the specified + * values. * @details Inputs: CPi sensor conductivity - * @details Outputs: Trigger alarms when conductivity is out of allowed range + * @details Outputs: Trigger warning alarm if conductivity is in the warning + * range. Trigger alarm if conductivity is below minimum conductivity. * @return none *************************************************************************/ void checkInletWaterConductivity( void ) { -#ifndef DISABLE_WATER_QUALITY_CHECK +//#ifndef DISABLE_WATER_QUALITY_CHECK + F32 const conductivity = getConductivityValue( CONDUCTIVITYSENSORS_CPI_SENSOR ); - BOOL const isCondTooHigh = ( conductivity > COND_SENSOR_CPI_MAX_VALUE ); - BOOL const isCondTooLow = ( conductivity < COND_SENSOR_CPI_MIN_VALUE ); - checkPersistentAlarm( ALARM_ID_INLET_WATER_HIGH_CONDUCTIVITY, isCondTooHigh, conductivity, COND_SENSOR_CPI_MAX_VALUE ); - checkPersistentAlarm( ALARM_ID_INLET_WATER_LOW_CONDUCTIVITY, isCondTooLow, conductivity, COND_SENSOR_CPI_MIN_VALUE ); -#endif + BOOL const isConductTooLow = ( conductivity < COND_SENSOR_CPI_MIN_VALUE ); + BOOL const isConductInWarningRange = ( conductivity >= COND_SENSOR_CPI_MIN_VALUE ) && + ( conductivity <= COND_SENSOR_CPI_MAX_VALUE ) ? TRUE : FALSE; + + if ( TRUE == isConductTooLow ) + { + checkPersistentAlarm( ALARM_ID_INLET_WATER_LOW_CONDUCTIVITY, isConductTooLow, conductivity, COND_SENSOR_CPI_MIN_VALUE ); + } + else if ( TRUE == isConductInWarningRange ) + { + checkPersistentAlarm( ALARM_ID_INLET_WATER_CONDUCTIVITY_IN_WARNING_RANGE, COND_SENSOR_CPI_MIN_VALUE, conductivity, COND_SENSOR_CPI_MAX_VALUE ); + } + +//#endif } /*********************************************************************//**