Index: firmware/App/Controllers/ConductivitySensors.c =================================================================== diff -u -r6abb2df716c69d47f6093d2c34a1f9c89f439528 -r46db80caf660d4921badc04e4296a8a1312cb30c --- firmware/App/Controllers/ConductivitySensors.c (.../ConductivitySensors.c) (revision 6abb2df716c69d47f6093d2c34a1f9c89f439528) +++ firmware/App/Controllers/ConductivitySensors.c (.../ConductivitySensors.c) (revision 46db80caf660d4921badc04e4296a8a1312cb30c) @@ -86,6 +86,8 @@ #define COND_SENSORS_FPGA_ERROR_TIMEOUT_MS ( 2 * MS_PER_SECOND ) ///< Conductivity sensors FPGA error timeout in milliseconds. #define COND_SENSORS_BAD_CHAR_TIME_OUT_MS ( 2 * MS_PER_SECOND ) ///< Conductivity sensor bad received character timeout in milliseconds. +#define MIN_CPI_CPO_COND_VALUES_AFTER_CALS_US_PER_CM 20.0F ///< Minimum allowed CPi and CPo conductivity values after calculations in uS/cm. + #pragma pack(push,1) /// Emstat pico measurement data package structure typedef struct @@ -732,9 +734,19 @@ F32 temperature = getTemperatureValue( readPackage->sensors[ boardSensorIndex ].condSnsrTempSnsr ); F32 conductivity = ( 1.0F / resistance ) * SIEMENS_TO_MICROSIEMENS_CONVERSION; F32 compensatedCond = calcCompensatedConductivity( sensorId, conductivity, temperature ); + F32 calAppliedCond = getCalibrationAppliedConductivityValue( sensorId, compensatedCond ); + if ( ( CONDUCTIVITYSENSORS_CPI_SENSOR == sensorId ) || ( CONDUCTIVITYSENSORS_CPO_SENSOR == sensorId ) ) + { + // If the CPi or CPo sensors values < 20 uS/cm after compensation and calibration, they are set to 20 uS/cm. + if ( calAppliedCond < MIN_CPI_CPO_COND_VALUES_AFTER_CALS_US_PER_CM ) + { + calAppliedCond = MIN_CPI_CPO_COND_VALUES_AFTER_CALS_US_PER_CM; + } + } + condSensorStatus[ sensorId ].internalErrorCount = 0; - condSensorStatus[ sensorId ].compensatedCondValue.data = getCalibrationAppliedConductivityValue( sensorId, compensatedCond ); + condSensorStatus[ sensorId ].compensatedCondValue.data = calAppliedCond; condSensorStatus[ sensorId ].rawCondValue = conductivity; }