Index: firmware/App/Controllers/SyringePump.c =================================================================== diff -u -r932820cf5d0e3ba08fa06f5f90de90f42eaa1684 -r585e01a1d143a900ec37e1204a0a048ab6f86f53 --- firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision 932820cf5d0e3ba08fa06f5f90de90f42eaa1684) +++ firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision 585e01a1d143a900ec37e1204a0a048ab6f86f53) @@ -90,6 +90,7 @@ /// Expected position of empty in relation to home position. #define SYRINGE_PUMP_EMPTY_POS ( SYRINGE_ENCODER_COUNTS_PER_ML * 10.84F ) + /// Margin of error for empty position determination. #define SYRINGE_PUMP_EMPTY_POS_MARGIN ( SYRINGE_ENCODER_COUNTS_PER_ML * 0.5F ) /// Minimum retract position. @@ -491,6 +492,10 @@ heparinDeliveryState = HEPARIN_STATE_STOPPED; } #endif + if ( MODE_SERV == getCurrentOperationMode() ) // Allow syringe pump operations in Service Mode. + { + heparinDeliveryState = HEPARIN_STATE_STOPPED; + } if ( ( SYRINGE_PUMP_OFF_STATE == syringePumpState ) && ( heparinDeliveryState != HEPARIN_STATE_OFF ) ) { { @@ -521,6 +526,10 @@ syringePumpSetRate = SYRINGE_PUMP_SEEK_RATE; syringePumpSeekRequested = TRUE; } + if ( MODE_SERV == getCurrentOperationMode() ) // Allow syringe pump operations in Service Mode. + { + heparinDeliveryState = HEPARIN_STATE_STOPPED; + } return syringePumpSeekRequested; } @@ -542,6 +551,10 @@ syringePumpPrimeRequested = TRUE; resetHeparinVolumeDelivered(); } + if ( MODE_SERV == getCurrentOperationMode() ) // Allow syringe pump operations in Service Mode. + { + heparinDeliveryState = HEPARIN_STATE_STOPPED; + } return syringePumpPrimeRequested; } @@ -588,8 +601,13 @@ { SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, (F32)SW_FAULT_ID_HD_SYRINGE_INVALID_BOLUS_CMD, syringePumpSetRate ) } + if ( MODE_SERV == getCurrentOperationMode() ) // Allow syringe pump operations in Service Mode. + { + heparinDeliveryState = HEPARIN_STATE_STOPPED; + } } + return syringePumpBolusRequested; } @@ -621,6 +639,10 @@ { SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, (F32)SW_FAULT_ID_HD_SYRINGE_INVALID_CONT_CMD, flowRate ) } + if ( MODE_SERV == getCurrentOperationMode() ) // Allow syringe pump operations in Service Mode. + { + heparinDeliveryState = HEPARIN_STATE_STOPPED; + } } return syringePumpContinuousRequested; @@ -1922,6 +1944,7 @@ *************************************************************************/ + /*********************************************************************//** * @brief * The testSetSyringePumpDataPublishIntervalOverride function overrides the