/************************************************************************** * * Copyright (c) 2019-2020 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 PresOccl.h * * @author (last) Sean Nash * @date (last) 22-Sep-2020 * * @author (original) Sean * @date (original) 15-Jan-2020 * ***************************************************************************/ #ifndef __PRESSURE_OCCLUSION_H__ #define __PRESSURE_OCCLUSION_H__ #include "HDCommon.h" /** * @defgroup PressureOcclusion PressureOcclusion * @brief Pressure & Occlusion controller/monitor module. Monitors the * blood line pressure sensors and pump occlusion sensors. * * @addtogroup PressureOcclusion * @{ */ // ********** public definitions ********** /// Enumeration of pressure sensors monitored by this module. typedef enum PressureSensors { PRESSURE_SENSOR_ARTERIAL = 0, ///< Arterial blood line pressure sensor PRESSURE_SENSOR_VENOUS, ///< Vensous blood line pressure sensor NUM_OF_PRESSURE_SENSORS ///< Number of pressure sensors } PRESSURE_SENSORS_T; /// Enumeration of occlusion sensors monitored by this module. typedef enum OcclusionSensors { OCCLUSION_SENSOR_BLOOD_PUMP = 0, ///< Blood pump occlusion sensor OCCLUSION_SENSOR_DIAL_IN_PUMP, ///< Dialysate inlet pump occlusion sensor OCCLUSION_SENSOR_DIAL_OUT_PUMP, ///< Dialysate outlet pump occlusion sensor NUM_OF_OCCLUSION_SENSORS ///< Number of occlusion sensors } OCCLUSION_SENSORS_T; /// Payload record structure for the pressure & occlusions data message. typedef struct { F32 arterialPressure; F32 venousPressure; U32 bldPumpOcclusion; U32 diPumpOcclusion; U32 doPumpOcclusion; } PRESSURE_OCCLUSION_DATA_T; // ********** public function prototypes ********** void initPresOccl( void ); void execPresOccl( void ); void execPresOcclTest( void ); SELF_TEST_STATUS_T execPresOcclDryTest( void ); F32 getMeasuredArterialPressure( void ); F32 getMeasuredVenousPressure( void ); U32 getMeasuredBloodPumpOcclusion( void ); U32 getMeasuredDialInPumpOcclusion( void ); U32 getMeasuredDialOutPumpOcclusion( void ); BOOL isCartridgeLoaded( void ); BOOL isSalineBagEmpty( void ); BOOL testSetPresOcclDataPublishIntervalOverride( U32 value ); BOOL testResetPresOcclDataPublishIntervalOverride( void ); BOOL testSetArterialPressureOverride( F32 value ); BOOL testResetArterialPressureOverride( void ); BOOL testSetVenousPressureOverride( F32 value ); BOOL testResetVenousPressureOverride( void ); BOOL testSetBloodPumpOcclusionOverride( U32 value ); BOOL testResetBloodPumpOcclusionOverride( void ); BOOL testSetDialInPumpOcclusionOverride( U32 value ); BOOL testResetDialInPumpOcclusionOverride( void ); BOOL testSetDialOutPumpOcclusionOverride( U32 value ); BOOL testResetDialOutPumpOcclusionOverride( void ); /**@}*/ #endif