Index: firmware/App/Controllers/DrainPump.h =================================================================== diff -u -r54f45c387430e440ab4607451fc84dea61f273f1 -rf9b3862d01ce6c64bd05b8649e69b44fa155b8e0 --- firmware/App/Controllers/DrainPump.h (.../DrainPump.h) (revision 54f45c387430e440ab4607451fc84dea61f273f1) +++ firmware/App/Controllers/DrainPump.h (.../DrainPump.h) (revision f9b3862d01ce6c64bd05b8649e69b44fa155b8e0) @@ -22,35 +22,54 @@ /** * @defgroup DrainPump DrainPump - * @brief Drain Pump monitor/controller module. Controls and monitors the drain pump. + * @brief Drain Pump monitor/controller module. Controls and monitors the drain pump. + * Drain pump manufacturer: Diener, PN: 01006-PM-0 Rev A. + * The pump shall produce flow rates of 100-2000 ml/min at 1 bar differential pressure. + * The motor used shall be either Diener part number MA0250 or MA0297. * * @addtogroup DrainPump * @{ */ // ********** public definitions ********** -#define MAX_DRAIN_PUMP_RPM_TARGET 3000 ///< Maximum RPM target for drain pump. -#define MIN_DRAIN_PUMP_RPM_TARGET 300 ///< Minimum RPM target for drain pump (though zero is allowed if turning pump off). +#define MIN_DRAIN_PUMP_RPM 300 ///< Minimum RPM target for drain pump (though zero is allowed if turning pump off). +#define MAX_DRAIN_PUMP_RPM 3000 ///< Maximum RPM target for drain pump. + +/// Drain pump data publish +typedef struct +{ + U32 rpmSetPoint; ///< Drain pump speed set point (for open loop) + U32 pumpDACSet; ///< Drain pump DAC set value + U32 drainPumpState; ///< Drain pump state machine state + U32 drainPumpRPM; ///< Drain pump current RPM +} DRAIN_PUMP_DATA_T; // ********** public function prototypes ********** void initDrainPump( void ); void execDrainPumpMonitor( void ); void execDrainPumpController( void ); -BOOL setDrainPumpTargetSpeed( U32 rpm ); +BOOL setDrainPumpTargetRPM( U32 rpm ); + +BOOL setDrainPumpTargetDeltaPressure( F32 deltaP ); + void signalDrainPumpHardStop( void ); SELF_TEST_STATUS_T execDrainPumpTest( void ); -U32 getTargetDrainPumpSpeed( void ); +U32 getTargetDrainPumpRPM( void ); + +F32 getTargetDrainPumpDeltaP( void ); -BOOL testSetDrainPumpDataPublishIntervalOverride( U32 value ); +BOOL testSetDrainPumpDataPublishIntervalOverride( U32 value ); BOOL testResetDrainPumpDataPublishIntervalOverride( void ); -BOOL testSetTargetDrainPumpSpeedOverride( U32 value ); -BOOL testResetTargetDrainPumpSpeedOverride( void ); +BOOL testSetTargetDrainPumpRPM( U32 value ); + +BOOL testSetTargetDrainPumpDeltaPressure( F32 value ); + /**@}*/ #endif