Index: firmware/App/Controllers/SyringePump.c =================================================================== diff -u -r1ed578758e10879581ed9c6acfaddd9a7c661168 -r3250a641e46b5338671a5b830189ffb3694d1284 --- firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision 1ed578758e10879581ed9c6acfaddd9a7c661168) +++ firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision 3250a641e46b5338671a5b830189ffb3694d1284) @@ -62,7 +62,11 @@ #define MIN_HEPARIN_BOLUS_RATE 1.2 ///< Minimum Heparin bolus flow rate (in mL/hr). #define MAX_HEPARIN_BOLUS_RATE 24.0 ///< Maximum Heparin bolus flow rate (in mL/hr). #define HEPARIN_BOLUS_TIME_HR ( 5.0 / MIN_PER_HOUR ) ///< Duration (in hours) of Heparin bolus. +#ifndef SLOW_SYRINGE_RETRACT #define SYRINGE_PUMP_RETRACT_RATE 10800.0 ///< Retract rate is 15 mL/ 5 s = 3 mL/s = 10,800 mL/hr. +#else +#define SYRINGE_PUMP_RETRACT_RATE 3600.0 ///< Retract rate is 15 mL/ 5 s = 3 mL/s = 10,800 mL/hr. +#endif #define SYRINGE_PUMP_SEEK_RATE 3600.0 ///< Seek plunger rate is 5 mL/ 5 s = 1 mL/s = 3,600 mL/hr. #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). @@ -973,7 +977,9 @@ if ( TRUE == isPersistentAlarmTriggered( ALARM_ID_HD_SYRINGE_PUMP_ADC_ERROR, ( ( getCurrentOperationMode() > MODE_INIT ) && ( lastSyringePumpADCReadCtr == getSyringePumpADCReadCounter() ) ) ) ) { -// activateAlarmNoData( ALARM_ID_HD_SYRINGE_PUMP_ADC_ERROR ); +#ifndef DISABLE_SYRINGE_PUMP_ALARMS + activateAlarmNoData( ALARM_ID_HD_SYRINGE_PUMP_ADC_ERROR ); +#endif } lastSyringePumpADCReadCtr = getSyringePumpADCReadCounter(); @@ -1078,12 +1084,14 @@ { SYRINGE_PUMP_STATE_T result = SYRINGE_PUMP_OFF_STATE; +#ifndef DISABLE_SYRINGE_PUMP_ALARMS // Check position is not changing while stopped if ( TRUE == isPersistentAlarmTriggered( ALARM_ID_HD_SYRINGE_PUMP_NOT_STOPPED_ERROR, ( syringePumpLastPosition != getSyringePumpPosition() ) ) ) { activateAlarmNoData( ALARM_ID_HD_SYRINGE_PUMP_NOT_STOPPED_ERROR ); activateSafetyShutdown(); } +#endif // Check for request flags if ( TRUE == syringePumpRetractRequested ) @@ -1156,7 +1164,7 @@ BOOL stopPump = FALSE; // Check for stall - if ( getSyringePumpMeasRate() < SYRINGE_PUMP_STALL_SPEED_THRESHOLD ) + if ( fabs( getSyringePumpMeasRate() ) < SYRINGE_PUMP_STALL_SPEED_THRESHOLD ) { if ( ++syringePumpStallCtr > SYRINGE_PUMP_RAMP_STALL_TIME ) { @@ -1261,7 +1269,9 @@ } else { +#ifndef DISABLE_SYRINGE_PUMP_ALARMS SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_SYRINGE_PUMP_NOT_ENOUGH_HEPARIN_ALARM, syringeVol, txVolume ); +#endif } } @@ -1472,6 +1482,7 @@ { BOOL result = stopPump; +#ifndef DISABLE_SYRINGE_PUMP_ALARMS if ( TRUE == isPersistentAlarmTriggered( ALARM_ID_HD_SYRINGE_PUMP_ENCODER_DIRECTION_ERROR, ( syringePumpEncoderMeasuredDirection != expDir ) ) ) { result = TRUE; @@ -1482,6 +1493,7 @@ result = TRUE; SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SYRINGE_PUMP_CONTROLLER_DIRECTION_ERROR, (U32)syringePumpControllerMeasuredDirection, (U32)syringePumpState ); } +#endif return result; }