Index: firmware/App/Controllers/ROPump.h =================================================================== diff -u -r54f45c387430e440ab4607451fc84dea61f273f1 -r1943944469d5a9f841f366ef9d8969c3072bd7ab --- firmware/App/Controllers/ROPump.h (.../ROPump.h) (revision 54f45c387430e440ab4607451fc84dea61f273f1) +++ firmware/App/Controllers/ROPump.h (.../ROPump.h) (revision 1943944469d5a9f841f366ef9d8969c3072bd7ab) @@ -14,48 +14,66 @@ * @date (original) 04-Apr-2020 * ***************************************************************************/ - -#ifndef __RO_PUMP_H__ -#define __RO_PUMP_H__ - -#include "DGCommon.h" - -/** - * @defgroup ROPump ROPump - * @brief RO Pump monitor and controller module. Controls and monitors the RO pump. - * - * @addtogroup ROPump - * @{ - */ - -// ********** public definitions ********** - -#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 ); -void signalROPumpHardStop( void ); - -BOOL isReverseOsmosisPumpOn( void ); - -SELF_TEST_STATUS_T execROPumpTest( void ); -U32 getTargetROPumpPressure( void ); -F32 getMeasuredROFlowRate( void ); - -BOOL testSetROPumpDataPublishIntervalOverride( U32 value ); -BOOL testResetROPumpDataPublishIntervalOverride( void ); -BOOL testSetTargetROPumpPressureOverride( U32 value ); -BOOL testResetTargetROPumpPressureOverride( void ); -BOOL testSetMeasuredROFlowRateOverride( F32 value ); -BOOL testResetMeasuredROFlowRateOverride( void ); - -/**@}*/ - -#endif +#ifndef __RO_PUMP_H__ +#define __RO_PUMP_H__ + +#include "DGCommon.h" + +/** + * @defgroup ROPump ROPump + * @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; + +// ********** public function prototypes ********** + +void initROPump( void ); +void execROPumpMonitor( void ); +void execROPumpController( void ); + +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 ); + +BOOL testSetROPumpDataPublishIntervalOverride( U32 value ); +BOOL testResetROPumpDataPublishIntervalOverride( void ); + +BOOL testSetMeasuredROFlowRateOverride( F32 value ); +BOOL testResetMeasuredROFlowRateOverride( void ); + +BOOL testSetTargetROPumpFlowAndPressure( F32 flow, U32 pressure ); + +BOOL testSetTargetROPumpPressure( U32 value ); + +BOOL testSetTargetDutyCycle( F32 value ); + +/**@}*/ + +#endif