/************************************************************************** * * Copyright (c) 2019-2025 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 ModeDrain.h * * @author (last) Michael Garthwaite * @date (last) 09-Aug-2023 * * @author (original) Leonardo Baloa * @date (original) 20-Dec-2019 * ***************************************************************************/ #ifndef __MODE_DRAIN_H__ #define __MODE_DRAIN_H__ #include "DGCommon.h" #include "DGDefs.h" /** * @defgroup DGDrainMode DGDrainMode * @brief Drain mode module. Manages drain mode functions via a state machine. * * @addtogroup DGDrainMode * @{ */ // ********** public definitions ********** /// Drain mode data structure typedef struct { U32 drainModeState; ///< Drain Mode state. U32 badFillSignal; ///< Gen Idle bad fill signal. U32 badFillState; ///< Gen Idle bad fill substate. } DG_DRAIN_MODE_DATA_T; // ********** public function prototypes ********** void initDrainMode( void ); // initialize this module U32 transitionToDrainMode( void ); // prepares for transition to operating parameters mode U32 execDrainMode( void ); // execute the drain mode state machine DG_DRAIN_STATE_T getCurrentDrainState( void ); // get the current state of the drain mode. void signalDrainModeRinseConcentrateLines( BOOL rinse ); // Signal drain mode to rinse concentrate lines. BOOL testSetDrainModeDataPublishIntervalOverride( U32 value ); BOOL testResetDrainModeDataPublishIntervalOverride( void ); /**@}*/ #endif