Index: firmware/App/Controllers/BloodFlow.h =================================================================== diff -u -r5eda37efda2d771de4f5cfb509adf05621a290c3 -r8e7158d8231435496fcf1d5649e51babf859ccc7 --- firmware/App/Controllers/BloodFlow.h (.../BloodFlow.h) (revision 5eda37efda2d771de4f5cfb509adf05621a290c3) +++ firmware/App/Controllers/BloodFlow.h (.../BloodFlow.h) (revision 8e7158d8231435496fcf1d5649e51babf859ccc7) @@ -1,14 +1,14 @@ /************************************************************************** * -* Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. +* 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 -* @date (last) 05-May-2020 +* @author (last) Sean Nash +* @date (last) 01-Dec-2020 * * @author (original) Sean Nash * @date (original) 07-Nov-2019 @@ -32,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 ); @@ -43,12 +59,15 @@ 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 ); -S32 getTargetBloodFlowRate( void ); F32 getMeasuredBloodFlowRate( void ); +F32 getMeasuredBloodFlowSignalStrength( void); F32 getMeasuredBloodPumpRotorSpeed( void ); F32 getMeasuredBloodPumpSpeed( void ); F32 getMeasuredBloodPumpMCSpeed( void ); @@ -59,7 +78,6 @@ BOOL testSetBloodFlowDataPublishIntervalOverride( U32 value ); BOOL testResetBloodFlowDataPublishIntervalOverride( void ); BOOL testSetTargetBloodFlowRateOverride( S32 value, U32 bloodPumpControlMode ); -BOOL testResetTargetBloodFlowRateOverride( void ); BOOL testSetMeasuredBloodFlowRateOverride( F32 value ); BOOL testResetMeasuredBloodFlowRateOverride( void ); BOOL testSetMeasuredBloodPumpRotorSpeedOverride( F32 value ); @@ -70,6 +88,8 @@ BOOL testResetMeasuredBloodPumpMCSpeedOverride( void ); BOOL testSetMeasuredBloodPumpMCCurrentOverride( F32 value ); BOOL testResetMeasuredBloodPumpMCCurrentOverride( void ); +BOOL testSetMeasuredBloodFlowSignalStrengthOverride( F32 value ); +BOOL testResetMeasuredBloodFlowSignalStrengthOverride( void ); /**@}*/