Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r46b163d19c65e8c21db7b0247bbb1af0dba1ece5 -r3eba74d2fda81310a66fb2c92dea220013730246 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 46b163d19c65e8c21db7b0247bbb1af0dba1ece5) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 3eba74d2fda81310a66fb2c92dea220013730246) @@ -62,6 +62,8 @@ /// Interval (in task intervals) at which to publish standby mode data to CAN bus. static OVERRIDE_U32_T standbyModePublishInterval = { DISINFECTS_DATA_PUB_INTERVAL, DISINFECTS_DATA_PUB_INTERVAL, DISINFECTS_DATA_PUB_INTERVAL, 0 }; +static BOOL homingInitiated; ///< Flag indicates actuator homing has been initiated from standby mode. + // ********** private function prototypes ********** static HD_STANDBY_STATE_T handleStandbyModeStartState( void ); @@ -99,6 +101,7 @@ dataPublishCounter = 0; heatDisinfectStartReqReceived = FALSE; chemDisinfectStartReqReceived = FALSE; + homingInitiated = FALSE; dgDisinfectState = DG_DISINFECT_NOT_RUNNING_STATE; } @@ -479,31 +482,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