/************************************************************************** * * Copyright (c) 2021-2023 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) Sean Nash * @date (last) 18-Jul-2023 * * @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; F32 dilLevelPct; F32 recircLevelPct; U32 timeDepletionMS; U32 timeWaitFillMS; F32 tempRemoveTargetFillFlow; } 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