Index: firmware/App/Controllers/SyringePump.c =================================================================== diff -u -racb165deff7036d41bbe12678f35cd9539012838 -rcda8fe9d5b19e8a8bc20c8d4aeb0bb286e555b6f --- firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision acb165deff7036d41bbe12678f35cd9539012838) +++ firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision cda8fe9d5b19e8a8bc20c8d4aeb0bb286e555b6f) @@ -788,16 +788,25 @@ SYRINGE_PUMP_STATE_T result = SYRINGE_PUMP_RETRACT_STATE; // Handle ramp up + xTimerCtr++; if ( syringePumpRampUpToggleTime > syringePumpSetToggleTime ) { - syringePumpRampUpToggleTime *= SYRINGE_PUMP_RAMP_NUMERATOR; - syringePumpRampUpToggleTime /= SYRINGE_PUMP_RAMP_DENOMINATOR; - setFPGASyringePumpStepToggleTime( syringePumpRampUpToggleTime ); + //syringePumpRampUpToggleTime *= SYRINGE_PUMP_RAMP_NUMERATOR; + //syringePumpRampUpToggleTime /= SYRINGE_PUMP_RAMP_DENOMINATOR; + syringePumpRampUpToggleTime = (F32)SYRINGE_PUMP_START_RAMP_SPEED / (F32)(xTimerCtr * xTimerCtr * xTimerCtr / 3); + if ( syringePumpRampUpToggleTime > syringePumpSetToggleTime ) + { + setFPGASyringePumpStepToggleTime( syringePumpRampUpToggleTime ); + } + else + { + setFPGASyringePumpStepToggleTime( syringePumpSetToggleTime ); + } } - else - { - setFPGASyringePumpStepToggleTime( syringePumpSetToggleTime ); - } +// else +// { +// setFPGASyringePumpStepToggleTime( syringePumpSetToggleTime ); +// } if ( TRUE == isSyringePumpHome() ) { @@ -832,6 +841,7 @@ BOOL stopPump = FALSE; // Handle ramp up + xTimerCtr++; if ( syringePumpRampUpToggleTime > syringePumpSetToggleTime ) { syringePumpRampUpToggleTime *= SYRINGE_PUMP_RAMP_NUMERATOR; @@ -844,12 +854,11 @@ } // Is plunger contact detected? - if ( ( ++xTimerCtr > 500 ) ) //|| ( getSyringePumpForceV() >= SYRINGE_FORCE_PLUNGER_THRESHOLD_V ) ) + if ( ( xTimerCtr > 500 ) ) //|| ( getSyringePumpForceV() >= SYRINGE_FORCE_PLUNGER_THRESHOLD_V ) ) { stopPump = TRUE; syringePumpVolumeDelivered.data = 0.0; // syringePumpSeekToPrimeRequested = TRUE; - xTimerCtr = 0; } // Has syringe been removed? @@ -881,6 +890,19 @@ SYRINGE_PUMP_STATE_T result = SYRINGE_PUMP_PRIME_STATE; BOOL stopPump = FALSE; + // Handle ramp up + xTimerCtr++; + if ( syringePumpRampUpToggleTime > syringePumpSetToggleTime ) + { + syringePumpRampUpToggleTime *= SYRINGE_PUMP_RAMP_NUMERATOR; + syringePumpRampUpToggleTime /= SYRINGE_PUMP_RAMP_DENOMINATOR; + setFPGASyringePumpStepToggleTime( syringePumpRampUpToggleTime ); + } + else + { + setFPGASyringePumpStepToggleTime( syringePumpSetToggleTime ); + } + // Has prime volume been delivered? if ( getSyringePumpVolumeDelivered() >= SYRINGE_PUMP_PRIME_VOLUME_ML ) { @@ -989,7 +1011,7 @@ *************************************************************************/ static BOOL checkOcclusionOrEmpty( BOOL stopPump ) { - BOOL result = FALSE; + BOOL result = stopPump; if ( getSyringePumpForceV() >= SYRINGE_FORCE_OCCLUSION_THRESHOLD_V ) { @@ -1012,7 +1034,7 @@ *************************************************************************/ static BOOL checkSyringeRemoved( BOOL stopPump ) { - BOOL result = FALSE; + BOOL result = stopPump; if ( FALSE == isSyringeDetected() ) { @@ -1036,7 +1058,7 @@ *************************************************************************/ static BOOL checkMaxTravel( BOOL stopPump, S32 maxPos ) { - BOOL result = FALSE; + BOOL result = stopPump; @@ -1056,7 +1078,7 @@ *************************************************************************/ static BOOL checkMaxMeasRate( BOOL stopPump, F32 maxRate ) { - BOOL result = FALSE; + BOOL result = stopPump; @@ -1077,7 +1099,7 @@ *************************************************************************/ static BOOL checkVolumeVsSafetyVolume( BOOL stopPump, F32 pctMargin ) { - BOOL result = FALSE; + BOOL result = stopPump;