Index: firmware/App/Controllers/ROPump.h =================================================================== diff -u -r2ac0ed667ccf0d77a65905157af9badbd19007cd -r863f8f88c73ee5dd285242f6e131a14862b4f5c4 --- firmware/App/Controllers/ROPump.h (.../ROPump.h) (revision 2ac0ed667ccf0d77a65905157af9badbd19007cd) +++ firmware/App/Controllers/ROPump.h (.../ROPump.h) (revision 863f8f88c73ee5dd285242f6e131a14862b4f5c4) @@ -18,8 +18,8 @@ #ifndef __RO_PUMP_H__ #define __RO_PUMP_H__ -#include "ROCommon.h" -#include "BoostPump.h" +#include "FluidPump.h" +#include "FPCommon.h" /** * @defgroup ROPump ROPump @@ -32,27 +32,43 @@ // ********** public definitions ********** +#define MAX_RO_FLOWRATE_MLPM 1500 ///< Maximum target RO flow rate in L/min. +#define MIN_RO_FLOWRATE_MLPM 0 ///< Minimum target RO flow rate in L/min. +#define MAX_RO_PRESSURE_PSI 120.0F ///< Maximum allowed pressure that the RO pump can go to. +#define MIN_RO_PRESSURE_PSI 10.0F ///< Minimum allowed pressure that the RO pump can go to. + /// RO pump data record. typedef struct { U32 p12PumpState; ///< RO pump current state. U32 p12PumpDutyCycle; ///< RO pump duty cycle. U32 p12PumpFBDutyCycle; ///< RO pump feedback duty cycle. F32 p12PumpSpeed; ///< RO pump speed (RPM). - U32 p40PumpState; ///< Boost pump current state. - U32 p40PumpDutyCycle; ///< Boost pump duty cycle. - U32 p40PumpFBDutyCycle; ///< Boost pump feedback duty cycle. - F32 p40PumpSpeed; ///< Boost pump speed (RPM). + F32 p12TargetPressure; ///< RO pump target pressure for control. + F32 p12TargetFlow; ///< RO pump target flow ( in mL/min ) for control. + F32 p12TargetDutyCycle; ///< RO pump target duty cycle for open loop control. } RO_PUMP_DATA_T; // ********** public function prototypes ********** void initROPump( void ); +void execROPumpMonitor( void ); void execROPumpController( void ); -void signalROPumpStop( RO_BOOST_PUMP_T pumpID ); +void signalROPumpHardStop( void ); +BOOL isROPumpRunning( void ); +BOOL setROPumpTargetFlowRateMLPM( U32 roFlowRate ); +BOOL setROPumpTargetPressure( F32 roPressure ); +BOOL setROPumpTargetDutyCycle( F32 duty ); + +F32 getROFeedbackDutyCycle( void ); +U32 getTargetROPumpFlowRateMLPM( void ); +F32 getTargetROPumpPressure( void ); + BOOL testROPumpDataPublishIntervalOverride( MESSAGE_T *message ); +BOOL testROPumpTargetPressureOverride( MESSAGE_T *message ); +BOOL testROPumpTargetFlowOverride( MESSAGE_T *message ); /**@}*/