/************************************************************************** * * 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 Ultrafilteration.h * * @author (last) Vinayakam Mani * @date (last) 23-Jul-2025 * * @author (original) Vinayakam Mani * @date (original) 23-Jul-2025 * ***************************************************************************/ #ifndef __ULTRA_FILTERATION_H__ #define __ULTRA_FILTERATION_H__ #include "DDCommon.h" #include "DDDefs.h" /** * @defgroup Ultrafilteration Ultrafilteration * @brief Ultrafilteration control unit. Performs ultrafilteration functions via a state machine. * * @addtogroup Ultrafilteration * @{ */ // ********** public definitions ********** /// ultrafilteration data structure typedef struct { U32 ufExecState; ///< Ultrafilteration execution state F32 ufRate; ///< Ultrafilteration rate from TD U32 isUFRequested; ///< Ultrafilteration run or puase request F32 ufVolumeperIteration; ///< Ultrafilteration volume per iteration } UF_DATA_T; // ********** public function prototypes ********** void initUltrafilteration( void ); // Initialize ultrafilteration unit void transitionToUltrafilteration( void ); // Prepares for transition to ultrafilteration execution U32 execUFControl( void ); // Execute the ultrafilteration state machine UF_EXEC_STATE_T getCurrentUFExecState( void ); // Get the current state of the balancing chamber execution BOOL testDDUFDataPublishIntervalOverride( MESSAGE_T *message ); // To override the UF data publish interval /**@}*/ #endif