Index: firmware/App/Controllers/Ejector.c =================================================================== diff -u -r0afeba28589108c3f742079a87bac313c4983b0c -rc0678a04714199fd57a0128f3bd4c65e53ba0454 --- firmware/App/Controllers/Ejector.c (.../Ejector.c) (revision 0afeba28589108c3f742079a87bac313c4983b0c) +++ firmware/App/Controllers/Ejector.c (.../Ejector.c) (revision c0678a04714199fd57a0128f3bd4c65e53ba0454) @@ -71,6 +71,7 @@ static EJECTOR_STATE_T handleEjectorExtendingState ( void ); static EJECTOR_STATE_T handleEjectorRetractBackoffState( void ); static EJECTOR_STATE_T handleEjectorDirChangeStopState( void ); +static void setEjectorSpeed( F32 speed ); static void resetEjectorFlags( void ); static void publishEjectorData( void ); @@ -115,6 +116,20 @@ /*********************************************************************//** * @brief + * The setEjectorSpeed function records the requested ejector speed and + * sets the ejector motor speed to that speed. + * @details \b Inputs: none + * @details \b Outputs: currentEjectorSetSpeed + * @return none + *************************************************************************/ +static void setEjectorSpeed( F32 speed ) +{ + currentEjectorSetSpeed = speed; + setEjectorMotorSpeed( currentEjectorSetSpeed ); +} + +/*********************************************************************//** + * @brief * The homeEjector function requests an ejector home operation. * @details \b Inputs: currentEjectorState * @details \b Outputs: ejectorHomeRequested @@ -259,7 +274,7 @@ if ( TRUE == ejectorHomeRequested ) { ejectorOperationTimerCounter = 0; - setEjectorMotorSpeed( EJECTOR_RETRACT_MOTOR_SPEED_RPM ); + setEjectorSpeed( EJECTOR_RETRACT_MOTOR_SPEED_RPM ); state = EJECTOR_STATE_HOMING; } @@ -281,7 +296,7 @@ if ( ++ejectorOperationTimerCounter >= EJECTOR_RETRACT_OP_TIME ) { ejectorOperationTimerCounter = 0; - setEjectorMotorSpeed( EJECTOR_OFF_MOTOR_SPEED_RPM ); + setEjectorSpeed( EJECTOR_OFF_MOTOR_SPEED_RPM ); state = EJECTOR_STATE_DIR_CHANGE_STOP; } @@ -303,7 +318,7 @@ if ( TRUE == ejectorExtendRequested ) { ejectorOperationTimerCounter = 0; - setEjectorMotorSpeed( EJECTOR_EXTEND_MOTOR_SPEED_RPM ); + setEjectorSpeed( EJECTOR_EXTEND_MOTOR_SPEED_RPM ); state = EJECTOR_STATE_EXTENDING; } @@ -325,7 +340,7 @@ if ( TRUE == ejectorRetractRequested ) { ejectorOperationTimerCounter = 0; - setEjectorMotorSpeed( EJECTOR_RETRACT_MOTOR_SPEED_RPM ); + setEjectorSpeed( EJECTOR_RETRACT_MOTOR_SPEED_RPM ); state = EJECTOR_STATE_RETRACTING; } @@ -347,7 +362,7 @@ if ( ++ejectorOperationTimerCounter >= EJECTOR_RETRACT_OP_TIME ) { ejectorOperationTimerCounter = 0; - setEjectorMotorSpeed( EJECTOR_OFF_MOTOR_SPEED_RPM ); + setEjectorSpeed( EJECTOR_OFF_MOTOR_SPEED_RPM ); state = EJECTOR_STATE_DIR_CHANGE_STOP; } @@ -369,7 +384,7 @@ if ( ++ejectorOperationTimerCounter >= EJECTOR_BACKOFF_OP_TIME ) { ejectorOperationTimerCounter = 0; - setEjectorMotorSpeed( EJECTOR_EXTEND_MOTOR_SPEED_RPM ); + setEjectorSpeed( EJECTOR_EXTEND_MOTOR_SPEED_RPM ); state = EJECTOR_STATE_RETRACT_BACKOFF; } @@ -391,7 +406,7 @@ if ( ++ejectorOperationTimerCounter >= EJECTOR_BACKOFF_OP_TIME ) { ejectorOperationTimerCounter = 0; - setEjectorMotorSpeed( EJECTOR_OFF_MOTOR_SPEED_RPM ); + setEjectorSpeed( EJECTOR_OFF_MOTOR_SPEED_RPM ); state = EJECTOR_STATE_RETRACTED; } @@ -413,7 +428,7 @@ if ( ++ejectorOperationTimerCounter >= EJECTOR_RETRACT_OP_TIME ) { ejectorOperationTimerCounter = 0; - setEjectorMotorSpeed( EJECTOR_OFF_MOTOR_SPEED_RPM ); + setEjectorSpeed( EJECTOR_OFF_MOTOR_SPEED_RPM ); state = EJECTOR_STATE_EXTENDED; }