Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -ref6283257df7c1f993d58fb934da57ea3e0a7067 -r173e5908bada098006b85c1267147a187d2eaef4 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision ef6283257df7c1f993d58fb934da57ea3e0a7067) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 173e5908bada098006b85c1267147a187d2eaef4) @@ -65,6 +65,7 @@ static OVERRIDE_U32_T standbyModePublishInterval = { DISINFECTS_DATA_PUB_INTERVAL, DISINFECTS_DATA_PUB_INTERVAL, DISINFECTS_DATA_PUB_INTERVAL, 0 }; static const U32 SERVICE_TIME_INTERVAL_S = (U32)( 365 * 0.5 * SECONDS_IN_A_DAY ); ///< HD/DG 6-month service interval in seconds. +static BOOL homingInitiated; ///< Flag indicates actuator homing has been initiated from standby mode. // ********** private function prototypes ********** @@ -108,6 +109,7 @@ heatDisinfectStartReqReceived = FALSE; chemDisinfectStartReqReceived = FALSE; disinfectCancelReqID = GENERIC_CONFIRM_ID_NONE; + homingInitiated = FALSE; dgDisinfectState = DG_DISINFECT_NOT_RUNNING_STATE; } @@ -587,31 +589,33 @@ *************************************************************************/ static HD_STANDBY_STATE_T handleStandbyModeStartState( void ) { - static BOOL homingInitiated = FALSE; HD_STANDBY_STATE_T state = STANDBY_START_STATE; // Wait for door to be closed so we can home actuators - if ( ( homingInitiated != TRUE ) && ( STATE_CLOSED == getSwitchStatus( FRONT_DOOR ) ) ) + if ( STATE_CLOSED == getSwitchStatus( FRONT_DOOR ) ) { - VALVE_T valve; - - // Home pumps and valves - for ( valve = VDI; valve < NUM_OF_VALVES; ++valve ) + // If we haven't alreadyy initiated homing of actuators, initiate now + if ( homingInitiated != TRUE ) { - homeValve( valve ); - } - homeBloodPump(); - homeDialInPump(); - homeDialOutPump(); - retractSyringePump(); + VALVE_T valve; - homingInitiated = TRUE; + // Home pumps and valves + for ( valve = VDI; valve < NUM_OF_VALVES; ++valve ) + { + homeValve( valve ); + } + homeBloodPump(); + homeDialInPump(); + homeDialOutPump(); + retractSyringePump(); + + homingInitiated = TRUE; + } } else { // Trigger door open alarm to prompt user to close the door activateAlarmNoData( ALARM_ID_CARTRIDGE_DOOR_OPENED ); - homingInitiated = FALSE; } // If homing has been initiated, wait for syringe pump to home and the verify force sensor calibration