Index: firmware/App/Modes/ModePostTreat.c =================================================================== diff -u -rfdeca24ee9c724296a75dc53927526843a7f343a -r85bacfb730f23f5ad75c4b2a01e599719b76af83 --- firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision fdeca24ee9c724296a75dc53927526843a7f343a) +++ firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision 85bacfb730f23f5ad75c4b2a01e599719b76af83) @@ -564,6 +564,8 @@ // Thereafter, check for time elapsed if ( TRUE == didTimeout( drainDGDePrimeStarttime, DIP_DRAIN_DG_RUNTIME_MS ) ) { + VALVE_T valve; + drainDGDePrimeActive = FALSE; signalDialInPumpHardStop( ); if ( getDGOpMode() != DG_MODE_FAUL ) @@ -574,6 +576,19 @@ { state = DRAIN_RESERVOIR_COMPLETE_STATE; } + // home valves and pumps while front door is still closed. + homeBloodPump(); + homeDialInPump(); + homeDialOutPump(); + for ( valve = VDI; valve < NUM_OF_VALVES; valve++ ) + { + setValvePosition( valve, VALVE_POSITION_A_INSERT_EJECT ); + } + if ( ( getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME ) > 0.0 ) || + ( getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_DISPENSE_RATE ) > 0.0 ) ) + { + retractSyringePump(); + } } } @@ -613,27 +628,11 @@ { if ( TRUE == hasDGCompletedReservoirSwitch() ) { - VALVE_T valve; - // Check if the reservoir switch has been completed // If this is the first drain, rinse the concentrate lines too rinseConcentrateLines = ( TRUE == isThisFirstDrain ? TRUE : FALSE ); dgCommandSent = FALSE; state = DRAIN_RESERVOIR_START_DRAIN_STATE; - - // Also home valves and pumps while front door is still closed. - homeBloodPump(); - homeDialInPump(); - homeDialOutPump(); - for ( valve = VDI; valve < NUM_OF_VALVES; valve++ ) - { - setValvePosition( valve, VALVE_POSITION_A_INSERT_EJECT ); - } - if ( ( getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME ) > 0.0 ) || - ( getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_DISPENSE_RATE ) > 0.0 ) ) - { - retractSyringePump(); - } } } else