Index: firmware/App/Modes/SelfTests.c =================================================================== diff -u -rd4dfcd3155274d9252ddb5f10d9d081f3ecd6b5a -raeeff23d7aec8a1396393d3cb188ac03eca60ead --- firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision d4dfcd3155274d9252ddb5f10d9d081f3ecd6b5a) +++ firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision aeeff23d7aec8a1396393d3cb188ac03eca60ead) @@ -729,16 +729,26 @@ static NO_CART_SELF_TESTS_STATE_T handleNoCartSelfTestHomeSyringePumpState( void ) { NO_CART_SELF_TESTS_STATE_T state = NO_CART_SELF_TESTS_HOME_SYRINGE_PUMP_STATE; + BOOL syringeHome = isSyringePumpHome(); + BOOL syringeStopped = isSyringePumpStopped(); + BOOL syringePreload = isSyringePumpPreLoaded(); if ( TRUE == useHeparin ) { - if ( ( isSyringePumpHome() != TRUE ) && ( TRUE == isSyringePumpStopped() ) ) + if ( ( TRUE != syringeHome ) && ( TRUE == syringeStopped ) && ( FALSE == syringePreload ) ) { retractSyringePump(); } + else if ( ( TRUE == syringeHome ) && ( TRUE == syringeStopped ) && ( FALSE == syringePreload ) ) + { + preloadSyringePlunger(); + } + else if ( TRUE == syringePreload ) + { + state = NO_CART_SELF_TESTS_PUMPS_STATE; + } } - - if ( ( TRUE != useHeparin ) || ( TRUE == isSyringePumpHome() ) ) + else { state = NO_CART_SELF_TESTS_PUMPS_STATE; } @@ -1162,17 +1172,13 @@ } else { - if ( TRUE == isSyringePumpHome() ) + if ( TRUE == isSyringePumpHome() || ( TRUE == isSyringePumpPreLoaded() ) ) { - preloadSyringePlunger(); - //} - //else if ( TRUE == ??? ) // TODO Check for Preload Complete - //{ seekSyringePlunger(); } else { - retractSyringePump(); + // TODO ALARM should already be homed and preloaded here } } }