/************************************************************************** * * Copyright (c) 2024-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 ModeGenPermeate.h * * @author (last) Michael Garthwaite * @date (last) 03-Mar-2025 * * @author (original) Michael Garthwaite * @date (original) 03-Mar-2025 * ***************************************************************************/ #ifndef __MODE_GEN_PERM_H__ #define __MODE_GEN_PERM_H__ #include "DDDefs.h" #include "DDCommon.h" #include "FPDefs.h" /** * @defgroup FPGenPermeateMode FPGenPermeateMode * @brief Generate Permeate unit. Manages water generation functions via a state machine. * * @addtogroup FPGenPermeateMode * @{ */ // ********** public definitions ********** /// Generate Permeate mode data structure typedef struct { U32 genPermeateExecState; ///< Generate Permeate execution state F32 setFlowRate; ///< Permeate flow rate requested by the DD. } GEN_PERMEATE_MODE_DATA_T; // ********** public function prototypes ********** void initGenPermeateMode( void ); // Initialize this gen permeate mode unit U32 transitionToGenPermeateMode( void ); // Transition to gen permeate mode U32 execGenPermeateMode( void ); // Execute the gen permeate mode state machine (call from OperationModes) BOOL requestGenWaterStart( void ); // Request to start gen water and transition modes BOOL requestGenWaterStop( void ); // Request to stop gen water and transition. FP_GENP_MODE_STATE_T getCurrentGenPermeateState( void ); // Get the current state of the gen water mode BOOL testGenPermeateDataPublishIntervalOverride( MESSAGE_T *message ); // override broadcast interval for gen permeate /**@}*/ #endif