/************************************************************************** * * 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 SyringePump.h * * @author (last) Sean Nash * @date (last) 02-Mar-2021 * * @author (original) Sean Nash * @date (original) 02-Mar-2021 * ***************************************************************************/ #ifndef __SYRINGE_PUMP_H__ #define __SYRINGE_PUMP_H__ #include "HDCommon.h" /** * @defgroup SyringePump SyringePump * @brief Syringe pump controller/monitor module. Controls the syringe pump * and monitors status. * * @addtogroup SyringePump * @{ */ // ********** public definitions ********** /// Payload record structure for the pressure & occlusions data message. typedef struct { U32 syringePumpState; F32 syringePumpSetRate; F32 syringePumpMeasRate; S32 syringePumpPosition; F32 syringePumpVolumeDelivered; F32 syringePumpMeasHome; F32 syringePumpMeasSwitch; F32 syringePumpMeasForce; } SYRINGE_PUMP_DATA_PAYLOAD_T; /// Enumeration of syringe pump operations. typedef enum SyringePumpOperations { SYRINGE_PUMP_OP_STOP = 0 SYRINGE_PUMP_OP_RETRACT = 1 SYRINGE_PUMP_OP_SEEK_AND_PRIME = 2 SYRINGE_PUMP_OP_BOLUS = 3 SYRINGE_PUMP_OP_CONTINUOUS = 4 } SYRINGE_PUMP_OPERATION_T; // ********** public function prototypes ********** void initSyringePump( void ); void execSyringePump( void ); void stopSyringePump( void ); BOOL retractSyringePump( void ); BOOL primeSyringePump( void ); BOOL startHeparinBolus( F32 flowRate ); BOOL startHeparinContinuous( F32 flowRate ); BOOL setSyringePumpDACVref( F32 vRef ); BOOL isSyringeDetected( void ); BOOL isSyringePumpHome( void ); BOOL isSyringePumpStopped( void ); F32 getSyringePumpVolumeDelivered( void ); SELF_TEST_STATUS_T execSyringePumpTest( void ); BOOL testSetSyringePumpDataPublishIntervalOverride( U32 value ); BOOL testResetSyringePumpDataPublishIntervalOverride( void ); BOOL testSyringePumpOperationRequest( U32 op, F32 rate, F32 volume ); BOOL testSetSyringePumpMeasuredRateOverride( U32 value ); BOOL testResetSyringePumpMeasuredRateOverride( void ); BOOL testSetSyringePumpMeasuredForceOverride( U32 value ); BOOL testResetSyringePumpMeasuredForceOverride( void ); BOOL testSetSyringePumpMeasuredSyringeDetectOverride( U32 value ); BOOL testResetSyringePumpMeasuredSyringeDetectOverride( void ); BOOL testSetSyringePumpMeasuredHomeOverride( U32 value ); BOOL testResetSyringePumpMeasuredHomeOverride( void ); BOOL testSetSyringePumpMeasuredPositionOverride( U32 value ); BOOL testResetSyringePumpMeasuredPositionOverride( void ); BOOL testSetSyringePumpMeasuredVolumeOverride( U32 value ); BOOL testResetSyringePumpMeasuredVolumeOverride( void ); /**@}*/ #endif