Index: firmware/App/Controllers/Ejector.c =================================================================== diff -u -r9a8e1fc597eb4f681527e691fb6cb24e550d8b92 -r6283801f1d66951025e6743858121d164e227c2a --- firmware/App/Controllers/Ejector.c (.../Ejector.c) (revision 9a8e1fc597eb4f681527e691fb6cb24e550d8b92) +++ firmware/App/Controllers/Ejector.c (.../Ejector.c) (revision 6283801f1d66951025e6743858121d164e227c2a) @@ -17,6 +17,7 @@ #include "AlarmMgmtTD.h" #include "Ejector.h" +#include "FpgaTD.h" #include "Messaging.h" #include "OperationModes.h" #include "PersistentAlarm.h" @@ -410,7 +411,7 @@ { EJECTOR_STATE_T state = EJECTOR_STATE_RETRACTING; - if ( ++ejectorOperationTimerCounter >= EJECTOR_RETRACT_OP_TIME ) + if ( ( ++ejectorOperationTimerCounter >= EJECTOR_RETRACT_OP_TIME ) || ( FALSE == getFPGAEjectorRetractOpticalSensor() ) ) { ejectorOperationTimerCounter = 0; setEjectorSpeed( EJECTOR_OFF_MOTOR_SPEED_RPM ); @@ -476,7 +477,7 @@ { EJECTOR_STATE_T state = EJECTOR_STATE_EXTENDING; - if ( ++ejectorOperationTimerCounter >= EJECTOR_EXTEND_OP_TIME ) + if ( ( ++ejectorOperationTimerCounter >= EJECTOR_EXTEND_OP_TIME ) || ( FALSE == getFPGAEjectorEngageOpticalSensor() ) ) { ejectorOperationTimerCounter = 0; setEjectorSpeed( EJECTOR_OFF_MOTOR_SPEED_RPM );