Index: firmware/App/Controllers/BoostPump.h =================================================================== diff -u -r863f8f88c73ee5dd285242f6e131a14862b4f5c4 -r311c75cc5ac41b4b9ca4983df84e43af910f9be4 --- firmware/App/Controllers/BoostPump.h (.../BoostPump.h) (revision 863f8f88c73ee5dd285242f6e131a14862b4f5c4) +++ firmware/App/Controllers/BoostPump.h (.../BoostPump.h) (revision 311c75cc5ac41b4b9ca4983df84e43af910f9be4) @@ -37,16 +37,21 @@ #define MAX_BOOST_PRESSURE_PSI 40.0F ///< Maximum allowed pressure that the Boost pump can go to. #define MIN_BOOST_PRESSURE_PSI 10.0F ///< Minimum allowed pressure that the Boost pump can go to. +#define BOOST_FLOW_TO_PWM(flow) ( BOOST_FLOW_TO_PWM_SLOPE * flow + BOOST_FLOW_TO_PWM_INTERCEPT ) ///< PWM line equation for flow. +#define BOOST_PRESSURE_TO_PWM(pres) ( BOOST_PRESSURE_TO_PWM_SLOPE * pres + BOOST_PRESSURE_TO_PWM_INTERCEPT ) ///< PWM line equation for pressure. + /// Boost pump data record. typedef struct { U32 p40PumpState; ///< Boost pump current state. - U32 p40PumpDutyCycle; ///< Boost pump duty cycle. + U32 p40PumpDutyCycle; ///< Boost pump duty cycle at driver level. U32 p40PumpFBDutyCycle; ///< Boost pump feedback duty cycle. F32 p40PumpSpeed; ///< Boost pump speed (RPM). F32 p40TargetPressure; ///< Boost pump target pressure for control. F32 p40TargetFlow; ///< Boost pump target flow ( in mL/min ) for control. F32 p40TargetDutyCycle; ///< Boost pump target duty cycle for open loop control. + F32 p40PumpDutyCyclePct; ///< Boost pump duty cycle as a percentage. + F32 p40PumpFBDutyCyclePct; ///< Boost pump feedback duty cycle as a percentage. } BOOST_PUMP_DATA_T; // ********** public function prototypes ********** @@ -55,20 +60,23 @@ void execBoostPumpController( void ); void execBoostPumpMonitor( void ); -void signalBoostPumpStop( void ); +void signalBoostPumpHardStop( void ); BOOL isBoostPumpRunning( void ); BOOL setBoostPumpTargetFlowRateLPM( U32 roFlowRate ); BOOL setBoostPumpTargetPressure( F32 roPressure ); BOOL setBoostPumpTargetDutyCycle( F32 duty ); -F32 getBoostFeedbackDutyCycle( void ); +F32 getCurrentBoostPumpDutyCyclePCT( void ); +F32 getTargetBoostPumpDutyCyclePCT( void ); U32 getTargetBoostPumpFlowRateMLPM( void ); F32 getTargetBoostPumpPressure( void ); BOOL testBoostPumpDataPublishIntervalOverride( MESSAGE_T *message ); BOOL testBoostPumpTargetPressureOverride( MESSAGE_T *message ); BOOL testBoostPumpTargetFlowOverride( MESSAGE_T *message ); +BOOL testBoostPumpTargetDutyCycleOverride( MESSAGE_T *message ); +BOOL testBoostPumpHardStop( MESSAGE_T *message ); /**@}*/