Index: firmware/App/Controllers/DrainPump.h =================================================================== diff -u -r5c430c3ac17fc8ad836fd70b8a3b8a12af44319e -r7d4711edd7b40cd3e29f43e766f79a8a09586fe9 --- firmware/App/Controllers/DrainPump.h (.../DrainPump.h) (revision 5c430c3ac17fc8ad836fd70b8a3b8a12af44319e) +++ firmware/App/Controllers/DrainPump.h (.../DrainPump.h) (revision 7d4711edd7b40cd3e29f43e766f79a8a09586fe9) @@ -1,14 +1,14 @@ /************************************************************************** * -* Copyright (c) 2020-2023 Diality Inc. - All Rights Reserved. +* 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 DrainPump.h * * @author (last) Dara Navaei -* @date (last) 02-Jan-2023 +* @date (last) 17-Apr-2023 * * @author (original) Sean * @date (original) 08-Apr-2020 @@ -36,16 +36,25 @@ #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. +/// Enumeration of drain pump speed feedbacks +typedef enum DrainPump_Speed_Feedbacks +{ + DRAIN_PUMP_HALL_SNSR_FB = 0, ///< Drain pump hall sensor feedback. + DRAIN_PUMP_MAXON_SNSR_FB, ///< Drain pump Maxon sensor feedback. + NUM_OF_DRAIN_PUMP_SNSR_FB ///< Number of drain pump sensor feedbacks. +} DRAIN_PUMP_SPEED_FB_SNSR_T; + /// 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. + U32 drainPumpHallRPM; ///< Drain pump current RPM from Hall sensor. F32 trgtOutletFlowLPM; ///< Drain pump target outlet flow in L/min. F32 drainPumpCurrentA; ///< Drain pump current in amps. U32 drainPumpDirection; ///< Drain pump direction. + U32 drainPumpMaxonRPM; ///< Drain pump current RPM from Maxon board. } DRAIN_PUMP_DATA_T; // ********** public function prototypes ********** @@ -65,7 +74,7 @@ void signalDrainPumpHardStop( void ); U32 getDrainPumpTargetRPM( void ); -U32 getDrainPumpMeasuredRPM( void ); +U32 getDrainPumpMeasuredRPM( DRAIN_PUMP_SPEED_FB_SNSR_T sensor ); BOOL isDrainPumpOn( void ); @@ -77,10 +86,8 @@ BOOL testSetTargetDrainPumpRPM( U32 value ); BOOL testSetTargetDrainPumpOutletFlowLPM( F32 value ); -BOOL testSetDrainPumpMeasuredRPMOverride( U32 value ); -BOOL testResetDrainPumpMeasuredRPMOverride( void ); -BOOL testSetDrainPumpMeasuredCurrentOverride( F32 value ); -BOOL testResetDrainPumpMeasuredCurrentOverride( void ); +BOOL testSetDrainPumpMeasuredRPMOverride( U32 sensor, U32 value ); +BOOL testResetDrainPumpMeasuredRPMOverride( U32 sensor ); BOOL testSetDrainPumpMeasuredCurrentOverride( F32 value ); BOOL testResetDrainPumpMeasuredCurrentOverride( void );