Index: firmware/App/Controllers/SyringePump.c =================================================================== diff -u -rd19e40d16018de6ceb9c1c32e738889845df6ce1 -r993f1edc4fe8f10aa81cae4deddafc88c616ccf6 --- firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision d19e40d16018de6ceb9c1c32e738889845df6ce1) +++ firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision 993f1edc4fe8f10aa81cae4deddafc88c616ccf6) @@ -67,11 +67,11 @@ #define SYRINGE_PUMP_PRIME_RATE 635.0 ///< Prime rate is 0.5 mm ^ 2 x PI x 450 mm = 0.353 mL / 2s = 635 mL/hr. #define SYRINGE_PUMP_MAX_RATE 11000.0 ///< Maximum rate of the syringe pump (in mL/hr). -#define SYRINGE_PUMP_RATE_ALARM_PERSISTENCE ( MS_PER_SECOND / TASK_PRIORITY_INTERVAL ) ///< Alarm persistence period for syringe pump speed check alarms. -#define SYRINGE_PUMP_DIR_ALARM_PERSISTENCE ( MS_PER_SECOND / TASK_PRIORITY_INTERVAL ) ///< Alarm persistence period for syringe pump direction check alarms. -#define SYRINGE_PUMP_OFF_ALARM_PERSISTENCE ( 500 / TASK_PRIORITY_INTERVAL ) ///< Alarm persistence period for syringe pump off check alarms. -#define SYRINGE_PUMP_OCCLUSION_ALARM_PERSISTENCE ( 30 / TASK_PRIORITY_INTERVAL ) ///< Alarm persistence period for syringe pump occlusion alarms. -#define SYRINGE_PUMP_ADC_READ_PERSISTENCE ( 100 / TASK_PRIORITY_INTERVAL ) ///< Syringe pump ADC stale read alarm persistence time (100 ms). +#define SYRINGE_PUMP_RATE_ALARM_PERSISTENCE ( 3000 / TASK_PRIORITY_INTERVAL ) ///< Alarm persistence period for syringe pump speed check alarms. +#define SYRINGE_PUMP_DIR_ALARM_PERSISTENCE ( 1000 / TASK_PRIORITY_INTERVAL ) ///< Alarm persistence period for syringe pump direction check alarms. +#define SYRINGE_PUMP_OFF_ALARM_PERSISTENCE ( 500 / TASK_PRIORITY_INTERVAL ) ///< Alarm persistence period for syringe pump off check alarms. +#define SYRINGE_PUMP_OCCLUSION_ALARM_PERSISTENCE ( 30 / TASK_PRIORITY_INTERVAL ) ///< Alarm persistence period for syringe pump occlusion alarms. +#define SYRINGE_PUMP_ADC_READ_PERSISTENCE ( 100 / TASK_PRIORITY_INTERVAL ) ///< Syringe pump ADC stale read alarm persistence time (100 ms). #define STEPS_TO_MICROSTEPS( s ) ( (s) * 32.0 ) ///< Macro conversion from steps to microsteps. #define MICROSTEPS_TO_STEPS( m ) ( (m) / 32.0 ) ///< Macro conversion from microsteps to steps. @@ -91,7 +91,7 @@ #define FIVE_PCT_OVER_ALLOWANCE 1.05 ///< Allow 5 percent over target before alarming on over travel. /// Expected position of empty in relation to home postion. -#define SYRINGE_PUMP_EMPTY_POS ( SYRINGE_ENCODER_COUNTS_PER_ML * 11.0 ) // TODO - get syringe volume from home to empty (11 mL is placeholder) +#define SYRINGE_PUMP_EMPTY_POS ( SYRINGE_ENCODER_COUNTS_PER_ML * 13.0 ) // TODO - get syringe volume from home to empty (11 mL is placeholder) /// Margin of error for empty position determination. #define SYRINGE_PUMP_EMPTY_POS_MARGIN ( SYRINGE_ENCODER_COUNTS_PER_ML * 0.5 ) /// Minimum retract position. @@ -854,8 +854,7 @@ syringePumpEncoderMeasuredDirection = ( getSyringePumpPosition() - syringePumpLastPosition >= 0 ? MOTOR_DIR_FORWARD : MOTOR_DIR_REVERSE ); // Check if syringe pump is on while BP is off - if ( ( syringePumpState > SYRINGE_PUMP_OFF_STATE ) && - ( syringePumpState < SYRINGE_PUMP_CONFIG_FORCE_SENSOR_STATE ) && + if ( ( ( SYRINGE_PUMP_HEP_BOLUS_STATE == syringePumpState ) || ( SYRINGE_PUMP_HEP_CONTINUOUS_STATE == syringePumpState ) ) && ( isBloodPumpRunning() != TRUE ) ) { if ( ++syringePumpRunningWhileBPOffErrorCtr > SYRINGE_PUMP_OFF_ALARM_PERSISTENCE )