/************************************************************************** * * Copyright (c) 2020-2024 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 FluidPump.h * * @author (last) Sean Nash * @date (last) 12-Nov-2024 * * @author (original) Sean Nash * @date (original) 12-Nov-2024 * ***************************************************************************/ #ifndef __FLUID_PUMP_H__ #define __FLUID_PUMP_H__ #include "FPCommon.h" /** * @defgroup FluidPump FluidPump * @brief Fluid Pump driver unit. Controls the RO and booster pumps. * The diaphragm (RO) pump is manufactured by TBD. * The optional booster pump is manufactured by TBD. * * @addtogroup FluidPump * @{ */ // ********** public definitions ********** #define MAX_FLUID_PUMP_PWM_DUTY_CYCLE 500 ///< Maximum settable boost pump duty cycle magnitude. #define MIN_FLUID_PUMP_PWM_DUTY_CYCLE 0 ///< minimum settable boost pump duty cycle magnitude. #define MAX_FLUID_PUMP_DUTY_CYCLE_PCT 0.90F ///< Max duty cycle in percentage. #define MIN_FLUID_PUMP_DUTY_CYCLE_PCT 0.10F ///< Min duty cycle in percentage. /// Enumerations of fluid pumps. typedef enum FluidPumps { P12_PUMP = 0, ///< RO pump P40_PUMP, ///< Optional inlet boost pump NUM_OF_PUMPS, ///< Number of boost pumps } FP_FLUID_PUMP_T; // ********** public function prototypes ********** void initFluidPump( void ); void readFluidPumps( void ); BOOL setFluidPumpPWMDutyCycle( FP_FLUID_PUMP_T pumpID, U16 pwm ); U16 getFluidPumpPWMDutyCycle( FP_FLUID_PUMP_T pumpID ); U16 getFluidPumpReadPWMDutyCycle( FP_FLUID_PUMP_T pumpID ); F32 getFluidPumpRPM( FP_FLUID_PUMP_T pumpID ); F32 convertDutyCycleCntToPct( U32 dutyCycleCnt ); U16 convertDutyCyclePctToCnt( F32 dutyCyclePct ); BOOL setFluidPumpPctToPWMDutyCycle( FP_FLUID_PUMP_T pumpID, F32 dutyCyclePct); BOOL testSetFluidPumpPWM( MESSAGE_T *message ); BOOL testFluidPumpPWMOverride( MESSAGE_T *message ); BOOL testFluidPumpRPMOverride( MESSAGE_T *message ); /**@}*/ #endif