/************************************************************************** * * 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 DryBiCart.h * * @author (original) Sameer poyil * @date (original) 10-Nov-2025 * * @author (original) Sameer poyil * @date (original) 10-Nov-2025 * ***************************************************************************/ #ifndef __DRY_BICART_H__ #define __DRY_BICART_H__ #include "DDCommon.h" #include "DDDefs.h" /** * @defgroup DryBiCart DryBiCart * @brief DryBiCart unit. Performs dry bicarbonate cartridge fill, bicarb * chamber(F) fill and cartridge draining functions via a state machine. * * @addtogroup DryBiCart * @{ */ // ********** public definitions ********** /// dry bicart data structure typedef struct { U32 dryBiCartFillExecState; ///< Dry bicart execution state U32 bicarbChamberFillExecState; ///< Bicarb chamber Fill execution state U32 dryBiCartDrainExecState; ///< Dry bicart drain execution state U32 dryBiCartFillCycleCounter; ///< Dry bicart fill cycle counter U32 dryBiCartMaxFillCycleCount; ///< Dry bicart fill cycle max count U32 dryBiCartFillRequest; ///< Dry bicart fill request U32 bicarbChamberFillRequest; ///< Bicarb chamber fill request U32 dryBiCartDrainRequest; ///< Dry bicart drain request U32 dryBiCartLastFillTime; ///< Dry bicart last fill duration in milli second U32 dryBiCartCurrentFillTime; ///< Dry bicart current fill duration in milli second U32 dryBiCartType; ///< Dry bicart type (small-0/large-1) U32 dryBiCartDrainTimePeriod; ///< Dry bicart drain time based on catridge type (small/large) } DRY_BICART_DATA_T; // ********** public function prototypes ********** void initDryBiCart( void ); void transitionToDryBicart( void ); U32 execDryBicartFillMode( void ); U32 execBicarbChamberFillMode( void ); U32 execDryBicartDrainMode( void ); void execDryBicart( void ); void setBicarbChamberFillRequested( void ); void setBicartFillRequested( void ); void setBicartDrainRequested( void ); DRY_BICART_FILL_EXEC_STATE_T getCurrentDryBiCartFillExecState( void ); BOOL testDryBiCartDataPublishIntervalOverride( MESSAGE_T *message ); BOOL testDryBiCartFillCycleMaxCountOverride( MESSAGE_T *message ); BOOL testDryBiCartFillRequestOverride( MESSAGE_T *message ); BOOL testBiCarbChamberFillRequestOverride( MESSAGE_T *message ); BOOL testDryBiCartDrainRequestOverride( MESSAGE_T *message ); BOOL testDryBiCartTypeOverride( MESSAGE_T *message ); /**@}*/ #endif