Index: firmware/App/Controllers/ConductivitySensors.h =================================================================== diff -u -r256d5cb05f1ef09e19e2f2733a111f600c73a7ee -r7d4711edd7b40cd3e29f43e766f79a8a09586fe9 --- firmware/App/Controllers/ConductivitySensors.h (.../ConductivitySensors.h) (revision 256d5cb05f1ef09e19e2f2733a111f600c73a7ee) +++ firmware/App/Controllers/ConductivitySensors.h (.../ConductivitySensors.h) (revision 7d4711edd7b40cd3e29f43e766f79a8a09586fe9) @@ -1,14 +1,14 @@ /************************************************************************** * -* Copyright (c) 2020-2022 Diality Inc. - All Rights Reserved. +* Copyright (c) 2020-2024 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file ConductivitySensors.h * -* @author (last) Dara Navaei -* @date (last) 09-Aug-2022 +* @author (last) Sean Nash +* @date (last) 22-Sep-2023 * * @author (original) Quang Nguyen * @date (original) 13-Jul-2020 @@ -19,6 +19,7 @@ #define __CONDUCTIVITYSENSORS_H__ #include "DGCommon.h" +#include "NVDataMgmtDGRecords.h" /** * @defgroup ConductivitySensors ConductivitySensors @@ -46,34 +47,43 @@ // ********** public definitions ********** +#define RO_REJECTION_RATIO_OUT_OF_RANGE_VALUE 1.0F ///< Out of range value for RO rejection ratio when CPi conductivity is zero. + /// Enumeration of conductivity sensors. typedef enum ConductivitySensors { - CONDUCTIVITYSENSORS_CPI_SENSOR = 0, ///< Inlet water conductivity sensor - CONDUCTIVITYSENSORS_CPO_SENSOR, ///< Outlet water conductivity sensor - CONDUCTIVITYSENSORS_CD1_SENSOR, ///< Post-acid concentrate conductivity sensor - CONDUCTIVITYSENSORS_CD2_SENSOR, ///< Post-bicarbonate concentrate conductivity sensor - NUM_OF_CONDUCTIVITY_SENSORS ///< Number of conductivity sensors + CONDUCTIVITYSENSORS_CPI_SENSOR = 0, ///< Inlet water conductivity sensor + CONDUCTIVITYSENSORS_CPO_SENSOR, ///< Outlet water conductivity sensor + CONDUCTIVITYSENSORS_CD1_SENSOR, ///< Post-acid concentrate conductivity sensor + CONDUCTIVITYSENSORS_CD2_SENSOR, ///< Post-bicarbonate concentrate conductivity sensor + NUM_OF_CONDUCTIVITY_SENSORS ///< Number of conductivity sensors } CONDUCTIVITY_SENSORS_T; /// Conductivity data struct. typedef struct { - F32 roRejectionRatio; ///< RO rejection ratio - F32 cpi; ///< CPi conductivity sensor value - F32 cpo; ///< CPo conductivity sensor value - F32 cd1; ///< CD1 conductivity sensor value - F32 cd2; ///< CD2 conductivity sensor value - F32 cpiRaw; ///< CPi raw conductivity sensor value (without 2% temperature compensated) - F32 cpoRaw; ///< CPo raw conductivity sensor value (without 2% temperature compensated) - F32 cd1Raw; ///< CD1 raw conductivity sensor value (without 2% temperature compensated) - F32 cd2Raw; ///< CD2 raw conductivity sensor value (without 2% temperature compensated) - U32 cpiSensorStatus; ///< CPi conductivity sensor status - U32 cpoSensorStatus; ///< CPo conductivity sensor status - U32 cd1SensorStatus; ///< CD1 conductivity sensor status - U32 cd2SensorStatus; ///< CD2 conductivity sensor status + F32 roRejectionRatio; ///< RO rejection ratio + F32 cpi; ///< CPi conductivity sensor value + F32 cpo; ///< CPo conductivity sensor value + F32 cd1; ///< CD1 conductivity sensor value + F32 cd2; ///< CD2 conductivity sensor value + F32 cpiRaw; ///< CPi raw conductivity sensor value (without 2% temperature compensated) + F32 cpoRaw; ///< CPo raw conductivity sensor value (without 2% temperature compensated) + F32 cd1Raw; ///< CD1 raw conductivity sensor value (without 2% temperature compensated) + F32 cd2Raw; ///< CD2 raw conductivity sensor value (without 2% temperature compensated) + U32 cpiSensorStatus; ///< CPi conductivity sensor status + U32 cpoSensorStatus; ///< CPo conductivity sensor status + U32 cd1SensorStatus; ///< CD1 conductivity sensor status + U32 cd2SensorStatus; ///< CD2 conductivity sensor status } CONDUCTIVITY_DATA_T; +/// Conductivity sensor calibration table selection structure +typedef struct +{ + U32 sensorId; ///< Sensor ID. + U32 calTableId; ///< Calibration table ID. +} CONDUCTIVITY_SENSOR_CAL_TABLE_T; + // ********** public function prototypes ********** void initConductivitySensors( void ); @@ -82,18 +92,17 @@ SELF_TEST_STATUS_T execConductivitySensorsSelfTest( void ); void checkInletWaterConductivity( void ); -void checkRORejectionRatio( void ); +void setCondcutivitySensorCalTable( CONDUCTIVITY_SENSORS_T sensor, CAL_DATA_DG_COND_SENSORS_T calTable ); + F32 getConductivityValue( U32 sensorId ); BOOL testSetConductivityOverride( U32 sensorId, F32 value ); BOOL testResetConductivityOverride( U32 sensorId ); -BOOL testSetRawConductivityOverride( U32 sensorId, F32 value ); -BOOL testResetRawConductivityOverride( U32 sensorId ); - BOOL testSetConductivityDataPublishIntervalOverride( U32 interval_ms ); BOOL testResetConductivityDataPublishIntervalOverride( void ); +BOOL testSetConductivitySensorCalibrationTable( CONDUCTIVITY_SENSOR_CAL_TABLE_T* data ); /**@}*/