/************************************************************************** * * Copyright (c) 2019-2020 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) 25-Aug-2020 * * @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 ********** /// 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 ); void checkInletWaterConductivity( void ); void checkRORejectionRatio( void ); void checkConcentrateConductivity( void ); F32 getConductivityValue( U32 sensorId ); BOOL testSetConductivityOverride( U32 sensorId, F32 value ); BOOL testResetConductivityOverride( U32 sensorId ); BOOL testSetConductivityDataPublishIntervalOverride( U32 interval_ms ); BOOL testResetConductivityDataPublishIntervalOverride( void ); /**@}*/ #endif