Index: firmware/App/Controllers/ROPump.h =================================================================== diff -u -ra7bf3ca23ea37a61000379facae628a31b3ecc59 -rf9b3862d01ce6c64bd05b8649e69b44fa155b8e0 --- firmware/App/Controllers/ROPump.h (.../ROPump.h) (revision a7bf3ca23ea37a61000379facae628a31b3ecc59) +++ firmware/App/Controllers/ROPump.h (.../ROPump.h) (revision f9b3862d01ce6c64bd05b8649e69b44fa155b8e0) @@ -7,8 +7,8 @@ * * @file ROPump.h * -* @author (last) Sean Nash -* @date (last) 04-Jun-2020 +* @author (last) Quang Nguyen +* @date (last) 25-Aug-2020 * * @author (original) Sean * @date (original) 04-Apr-2020 @@ -22,39 +22,57 @@ /** * @defgroup ROPump ROPump - * @brief RO Pump monitor/controller module. Controls and monitors the RO pump. + * @brief RO Pump monitor and controller module. Controls and monitors the RO pump and the flow meter. + * The flow meter is manufactured by SwissFlow, PN: 82015311. + * The diaphragm (RO) pump is manufactured by Aquatec, PN: 5889-2MM1-V724DY. * * @addtogroup ROPump * @{ */ // ********** public definitions ********** +#define MAX_RO_FLOWRATE_LPM 1.0 ///< Maximum target RO flow rate in L/min. +#define MIN_RO_FLOWRATE_LPM 0.2 ///< Minimum target RO flow rate in L/min. + +/// RO pump data struct. +typedef struct +{ + F32 roPumpTgtPressure; ///< RO pump target pressure + F32 measROFlowRate; ///< RO flow rate measurement + F32 roPumpDutyCycle; ///< RO pump duty cycle + U32 roPumpState; ///< RO pump current state +} RO_PUMP_DATA_T; -#define MAX_RO_PRESSURE 140 ///< Maximum target RO outlet pressure (in PSI). -#define MIN_RO_PRESSURE 100 ///< Minimum target RO outlet pressure (in PSI). - // ********** public function prototypes ********** void initROPump( void ); void execROPumpMonitor( void ); void execROPumpController( void ); -BOOL setROPumpTargetPressure( U32 roPressure, PUMP_CONTROL_MODE_T mode ); +BOOL setROPumpTargetFlowRate( F32 roFlowRate, U32 maxPressure ); + void signalROPumpHardStop( void ); BOOL isReverseOsmosisPumpOn( void ); SELF_TEST_STATUS_T execROPumpTest( void ); + +F32 getTargetROPumpFlowRate( void ); +F32 getMeasuredROFlowRate( void ); + +F32 getTargetROPumpPressure( void ); -DATA_GET_PROTOTYPE( U32, getTargetROPumpPressure ); -DATA_GET_PROTOTYPE( F32, getMeasuredROFlowRate ); - BOOL testSetROPumpDataPublishIntervalOverride( U32 value ); -BOOL testResetROPumpDataPublishIntervalOverride( void ); -BOOL testSetTargetROPumpPressureOverride( U32 value ); -BOOL testResetTargetROPumpPressureOverride( void ); -BOOL testSetMeasuredROFlowRateOverride( F32 value ); -BOOL testResetMeasuredROFlowRateOverride( void ); +BOOL testResetROPumpDataPublishIntervalOverride( void ); + +BOOL testSetMeasuredROFlowRateOverride( F32 value ); +BOOL testResetMeasuredROFlowRateOverride( void ); + +BOOL testSetTargetROPumpFlowAndPressure( F32 flow, U32 pressure ); + +BOOL testSetTargetROPumpPressure( U32 value ); + +BOOL testSetTargetDutyCycle( F32 value ); /**@}*/