/************************************************************************** * * Copyright (c) 2024-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 Level.h * * @author (last) Varshini Nagabooshanam * @date (last) 27-Jan-2026 * * @author (original) Vinayakam Mani * @date (original) 14-Oct-2024 * ***************************************************************************/ #ifndef LEVEL_H_ #define LEVEL_H_ #include "DDCommon.h" /** * @defgroup Level Level * @brief Level module monitors the floater levels, Bicarb gas separation level and Spent * dialsate balance air separation level. * Level manufacturer: Custom built modules. * * @addtogroup Level * @{ */ // ********** public definitions ********** /// DD floater and level sensor enumeration typedef enum level_names { D46_LEVL = 0, ///< Spent dialysate air separation chamber level low or high status FIRST_LEVEL = D46_LEVL, D63_LEVL, ///< Bicarb upper level low or high status D98_LEVL, ///< Bicarb lower level low or high status LAST_LEVEL = D98_LEVL, D6_LEVL, ///< floater switch low, medium and high status FIRST_FLOAT = D6_LEVL, P25_LEVL, ///< FP level sensor LAST_FLOAT = P25_LEVL, NUM_OF_LEVELS ///< Number of levels } LEVEL_T; /// level sensor states. typedef enum level_States { LEVEL_STATE_LOW, ///< Low level LEVEL_STATE_HIGH, ///< High level NUM_OF_LEVEL_STATES ///< Number of level states } LEVEL_STATE_T; /// floater and bicarb level sensor states. typedef enum lvl_States { LVL_STATE_EMPTY = 0, ///< Empty level LVL_STATE_LOW, ///< Low level LVL_STATE_MEDIUM, ///< Medium level LVL_STATE_HIGH, ///< High level LVL_STATE_ILLEGAL, ///< Illegal level NUM_OF_LVL_STATES ///< Number of level states } LVL_STATE_T; /// DD floater and level sensor data publish structure typedef struct { U32 d6Level; ///< Floater level U32 d46Level; ///< Spent dialysate level U32 d63Level; ///< Bicarb upper level U32 d98Level; ///< Bicarb lower level U32 bicarbLevel; ///< Bicarb chamber level combination ( D63 + D98 ) } DD_LEVEL_DATA_T; /// FP floater and level sensor data publish structure typedef struct { U32 p25Level; ///< Floater level } FP_LEVEL_DATA_T; // ********** public function prototypes ********** void initLevels( void ); void execLevels( void ); LEVEL_STATE_T getLevelStatus( LEVEL_T levelId ); LVL_STATE_T getFloaterStatus( LEVEL_T levelId ); LVL_STATE_T getBicarbChamberLevelStatus( void ); BOOL testLevelsDataPublishIntervalOverride( MESSAGE_T *message ); BOOL testLevelStatusOverride( MESSAGE_T *message ); BOOL testFPLevelsDataPublishIntervalOverride( MESSAGE_T *message ); BOOL testFPLevelStateOverride( MESSAGE_T *message ); /**@}*/ #endif