Index: firmware/App/Controllers/BloodFlow.h =================================================================== diff -u -r9d4666bf3064df18a6d935125d7a69e4e8234e84 -r8e7158d8231435496fcf1d5649e51babf859ccc7 --- firmware/App/Controllers/BloodFlow.h (.../BloodFlow.h) (revision 9d4666bf3064df18a6d935125d7a69e4e8234e84) +++ firmware/App/Controllers/BloodFlow.h (.../BloodFlow.h) (revision 8e7158d8231435496fcf1d5649e51babf859ccc7) @@ -1,18 +1,19 @@ -/**********************************************************************//** - * - * 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 BloodFlow.h - * - * @date 05-Nov-2019 - * @author S. Nash - * - * @brief BloodFlow header file. - * - **************************************************************************/ +/************************************************************************** +* +* Copyright (c) 2019-2021 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 BloodFlow.h +* +* @author (last) Sean Nash +* @date (last) 01-Dec-2020 +* +* @author (original) Sean Nash +* @date (original) 07-Nov-2019 +* +***************************************************************************/ #ifndef __BLOOD_FLOW_H__ #define __BLOOD_FLOW_H__ @@ -31,8 +32,24 @@ // ********** public definitions ********** #define MAX_BLOOD_FLOW_RATE 500 ///< Maximum blood flow rate (in mL/min). -#define MIN_BLOOD_FLOW_RATE 100 ///< Minimum blood flow rate (in mL/min). +#define MIN_BLOOD_FLOW_RATE 100 ///< Minimum blood flow rate (in mL/min). +#define SALINE_BOLUS_FLOW_RATE 150 ///< Saline bolus flow rate (in mL/min). + +#define VOLUME_PER_BP_MOTOR_REV_ML 0.2 ///< Theoretical volume (mL) of blood/saline volume per motor revolution. +/// Payload record structure for a blood pump data message. +typedef struct +{ + S32 setPoint; + F32 measFlow; + F32 measRotorSpd; + F32 measPumpSpd; + F32 measMCSpd; + F32 measMCCurr; + F32 pwmDC; + F32 flowSigStrength; +} BLOOD_PUMP_STATUS_PAYLOAD_T; + // ********** public function prototypes ********** void initBloodFlow( void ); @@ -42,21 +59,25 @@ BOOL setBloodPumpTargetFlowRate( U32 flowRate, MOTOR_DIR_T dir, PUMP_CONTROL_MODE_T mode ); void signalBloodPumpHardStop( void ); void signalBloodPumpRotorHallSensor( void ); -BOOL homeBloodPump( void ); +BOOL homeBloodPump( void ); +U32 getBloodPumpMotorCount( void ); +U32 getBloodPumpRotorCount( void ); +BOOL isBloodPumpRunning( void ); SELF_TEST_STATUS_T execBloodFlowTest( void ); -DATA_GET_PROTOTYPE( S32, getTargetBloodFlowRate ); -DATA_GET_PROTOTYPE( F32, getMeasuredBloodFlowRate); -DATA_GET_PROTOTYPE( F32, getMeasuredBloodPumpRotorSpeed ); -DATA_GET_PROTOTYPE( F32, getMeasuredBloodPumpSpeed ); -DATA_GET_PROTOTYPE( F32, getMeasuredBloodPumpMCSpeed ); -DATA_GET_PROTOTYPE( F32, getMeasuredBloodPumpMCCurrent ); - +F32 getMeasuredBloodFlowRate( void ); +F32 getMeasuredBloodFlowSignalStrength( void); +F32 getMeasuredBloodPumpRotorSpeed( void ); +F32 getMeasuredBloodPumpSpeed( void ); +F32 getMeasuredBloodPumpMCSpeed( void ); +F32 getMeasuredBloodPumpMCCurrent( void ); + +BOOL setBloodFlowCalibration( F32 gain, F32 offset ); +void getBloodFlowCalibration( F32 *gain, F32 *offset ); BOOL testSetBloodFlowDataPublishIntervalOverride( U32 value ); BOOL testResetBloodFlowDataPublishIntervalOverride( void ); -BOOL testSetTargetBloodFlowRateOverride( S32 value ); -BOOL testResetTargetBloodFlowRateOverride( void ); +BOOL testSetTargetBloodFlowRateOverride( S32 value, U32 bloodPumpControlMode ); BOOL testSetMeasuredBloodFlowRateOverride( F32 value ); BOOL testResetMeasuredBloodFlowRateOverride( void ); BOOL testSetMeasuredBloodPumpRotorSpeedOverride( F32 value ); @@ -67,6 +88,8 @@ BOOL testResetMeasuredBloodPumpMCSpeedOverride( void ); BOOL testSetMeasuredBloodPumpMCCurrentOverride( F32 value ); BOOL testResetMeasuredBloodPumpMCCurrentOverride( void ); +BOOL testSetMeasuredBloodFlowSignalStrengthOverride( F32 value ); +BOOL testResetMeasuredBloodFlowSignalStrengthOverride( void ); /**@}*/