/************************************************************************** * * Copyright (c) 2019-2022 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) Quang Nguyen * @date (last) 18-Aug-2021 * * @author (original) Quang Nguyen * @date (original) 13-Jul-2020 * ***************************************************************************/ #ifndef __CONDUCTIVITYSENSORS_H__ #define __CONDUCTIVITYSENSORS_H__ #include "DGCommon.h" /** * @defgroup ConductivitySensors ConductivitySensors * @brief Conductivity Sensors monitor module. Monitors and filters conductivity sensor readings. * The module uses Atlas Scientific EC OEM for conductivity sensors CPi and CPo with probe type K 1.0 and 0.1 respectively. * The module uses Emstat Pico from PalmSens to measure electrical resistance and convert to conductivity. * * @addtogroup ConductivitySensors * @{ */ // ********** public definitions ********** #define MIN_ACID_CONCENTRATE_CONDUCTIVITY 11062.80 ///< Minimum conductivity for acid concentrate 11645.05 - 5%. #define MAX_ACID_CONCENTRATE_CONDUCTIVITY 12227.30 ///< Maximum conductivity for acid concentrate 11645.05 + 5%. #define MIN_BICARB_CONCENTRATE_CONDUCTIVITY 13048.14 ///< Minimum conductivity for bicarbonate concentrate 13734.88 - 5%. #define MAX_BICARB_CONCENTRATE_CONDUCTIVITY 14421.62 ///< Maximum conductivity for bicarbonate concentrate 13734.88 + 5%. /// 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 } 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 } CONDUCTIVITY_DATA_T; // ********** public function prototypes ********** void initConductivitySensors( void ); void execConductivitySensors( void ); SELF_TEST_STATUS_T execConductivitySensorsSelfTest( void ); void checkInletWaterConductivity( void ); void checkRORejectionRatio( void ); F32 getConductivityValue( U32 sensorId ); BOOL testSetConductivityOverride( U32 sensorId, F32 value ); BOOL testResetConductivityOverride( U32 sensorId ); BOOL testSetConductivityDataPublishIntervalOverride( U32 interval_ms ); BOOL testResetConductivityDataPublishIntervalOverride( void ); /**@}*/ #endif