/************************************************************************** * * 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 * venous line pressure sensor (Honeywell HSCMRNN030PDSA3), arterial line * pressure sensor (Memscap 32022-100mm) and pump occlusion sensors (SMD DIA8308). * * @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; ///< Latest arterial pressure (mmHg) F32 venousPressure; ///< Latest venous pressure (mmHg) U32 bldPumpOcclusion; ///< Latest BP occlusion (no units) U32 diPumpOcclusion; ///< Latest DPi occlusion (no units) U32 doPumpOcclusion; ///< Latest DPo occlusion (no units) } 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 getFilteredArterialPressure( void ); F32 getLongFilteredArterialPressure( void ); F32 getMeasuredVenousPressure( void ); F32 getFilteredVenousPressure( void ); U32 getMeasuredBloodPumpOcclusion( void ); BOOL isCartridgeLoaded( void ); BOOL isCartridgeUnloaded( void ); BOOL isSalineBagEmpty( void ); void setOcclusionInstallLevel( 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 ); /**@}*/ #endif