/************************************************************************** * * Copyright (c) 2021-2024 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 Reservoirs.h * * @author (last) Dara Navaei * @date (last) 23-Jan-2024 * * @author (original) Dara Navaei * @date (original) 21-Nov-2021 * ***************************************************************************/ #ifndef _RESERVOIRS_H_ #define _RESERVOIRS_H_ #include "HDCommon.h" #include "DGDefs.h" /** * @defgroup Reservoirs Reservoirs * @brief Reservoir management module. * * @addtogroup Reservoirs * @{ */ // ********** public definitions ********** #define DRAIN_RESERVOIR_TO_VOLUME_ML 0 ///< Drain reservoir to this volume (in mL) during treatment. #define FILL_RESERVOIR_TO_VOLUME_ML 1500 ///< Fill reservoir to this volume (in mL) during treatment. /// Reservoir management publish data structure typedef struct { U32 reservoirsExecState; ///< Reservoirs exec state. F32 activeReservoirUFVolML; ///< Active reservoir ultrafiltration volume milliliters. F32 activeReservoirVolSpentML; ///< Active reservoir volume spent in milliliters. F32 dilLevelPct; ///< Dilution level in percent. F32 recircLevelPct; ///< Recirculation level in percent. U32 timeDepletionMS; ///< Time depletion in milliseconds. U32 timeWaitFillMS; ///< Time wait to fill in milliseconds. F32 tempRemoveTargetFillFlow; ///< Temperature target fill flow in C. } RESERVOIRS_MANAGEMENT_DATA_T; // ********** public function prototypes ********** void initReservoirs( void ); // Initialize reservoirs module void resetReservoirsVariables( void ); // Reset reservoir variables (call when starting a new treatment) void execReservoirs( void ); // Execute reservoir management during treatment void updateReservoirUFTime( void ); // Update time spent doing ultrafiltration for currently active reservoir U32 getLastReservoirUFTimeInMs( void ); // Get the time spent doing ultrafiltration on the previously active reservoir BOOL testSetRecirculationLevelPctOverride( F32 value ); // Set override for reciruclation percentage BOOL testResetRecirculationLevelPctOverride( void ); // Reset override for recirulation percentage /**@}*/ #endif