/************************************************************************** * * Copyright (c) 2024-2026 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 SubstitutionPump.h * * @author (last) Sameer Kalliadan Poyil * @date (last) 15-Apr-2026 * * @author (original) Vinayakam Mani * @date (original) 19-Sep-2024 * ***************************************************************************/ #ifndef __SUBSTITUTION_PUMPS_H__ #define __SUBSTITUTION_PUMPS_H__ #include "DDCommon.h" //#include "NVDataMgmt.h" /** * @defgroup SubstitutionPumps SubstitutionPumps * @brief Substitution pumps monitor and control unit. Monitors and control Substitution pump with an closed loop approach. * * @addtogroup SubstitutionPumps * @{ */ // ********** public definitions ********** #define SUB_PUMP_CONT_VOLUME 0xFFFFFFFF ///< Volume set to 0xFFFFFFFF enables continuous delivery based on the speed set. #define PARK_CONC_PUMPS TRUE ///< For park parameter to requestConcentratePumpOff(). #define NO_PARK_CONC_PUMPS FALSE ///< For park parameter to requestConcentratePumpOff(). /// Enumeration of substitution pumps. typedef enum SubstitutionPumps { D92_PUMP = 0, ///< HDF pump SUBPUMPS_FIRST = D92_PUMP, ///< First substitution pump in list NUM_OF_SUB_PUMPS ///< Number of substitution pumps } SUBSTITUTION_PUMPS_T; /// Substitution pump data struct. typedef struct { F32 d92_PumpTargetSpeed; ///< substitution pump D92_Pump target speed F32 d92_PumpCurrentSetSpeed; ///< substitution pump D92_Pump current set speed U32 d92_PumpTargetRevCount; ///< substitution pump D92_Pump target revolution count U32 d92_PumpState; ///< substitution pump D92_Pump current state } SUBSTITUTION_PUMP_DATA_T; // ********** public function prototypes ********** void initSubstitutionPump( void ); void execSubstitutionPumpMonitor( void ); void execSubstitutionPumpController( void ); void requestSubstitutionPumpOn( SUBSTITUTION_PUMPS_T pumpId ); void requestSubstitutionPumpOff( SUBSTITUTION_PUMPS_T pumpId ); F32 getSubstitutionPumpTargetSpeed( SUBSTITUTION_PUMPS_T pumpId ); BOOL testSubstitutionPumpDataPublishIntervalOverride( MESSAGE_T *message ); BOOL testSubstitutionPumpTargetSpeedOverride( MESSAGE_T *message ); BOOL testSubstitutionPumpStartStopOverride( MESSAGE_T *message ); // Concentrate pump start/stop request /**@}*/ #endif