/************************************************************************** * * Copyright (c) 2025-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 Ultrafiltration.h * * @author (last) Jashwant Gantyada * @date (last) 30-Jun-2026 * * @author (original) Vinayakam Mani * @date (original) 28-Jul-2025 * ***************************************************************************/ #ifndef __ULTRA_FILTERATION_H__ #define __ULTRA_FILTERATION_H__ #include "DDCommon.h" #include "DDDefs.h" /** * @defgroup Ultrafiltration Ultrafiltration * @brief Ultrafiltration control unit. Performs ultrafiltration functions via a state machine. * * @addtogroup Ultrafiltration * @{ */ // ********** public definitions ********** /// ultrafiltration data structure typedef struct { F32 ufRate; ///< Ultrafiltration rate from TD F32 compUFrate; ///< Compensated UF rate U32 isUFRequested; ///< Ultrafiltration run or puase request F32 ufVolumeDeliveredMl; ///< Accumulated UF volume since last reset (mL) } UF_DATA_T; // ********** public function prototypes ********** void initUltrafiltration( void ); // Initialize ultrafiltration unit void transitionToUltrafiltration( void ); // Prepares for transition to ultrafiltration execution void handleUFControl( void ); // Handle ultrafiltration control void stopUltrafiltration( void ); // Stop UF pump and clear run request void signalUFRateUpdate( void ); // Update UF rate when there is a change in rate void resetUFVolumeDelivered( void ); // Reset accumulated UF volume delivered F32 getUFVolumeDeliveredLiters( void ); // Get accumulated UF volume delivered in L BOOL testDDUFDataPublishIntervalOverride( MESSAGE_T *message ); // To override the UF data publish interval /**@}*/ #endif