Package gda.device.motor
Class ShutteredScannableMotor
java.lang.Object
gda.factory.ConfigurableBase
gda.factory.FindableConfigurableBase
gda.device.DeviceBase
gda.device.motor.ShutteredScannableMotor
- All Implemented Interfaces:
Device,ShutteredMotorController,Configurable,Findable,gda.observable.IObservable
TODO need to better document how the different parameters from MXCameraForDummy are rolled into parameters here
-
Field Summary
FieldsFields inherited from class gda.device.DeviceBase
DEFAULT_PROTECTION_LEVEL_PROPERTY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidasynchronousMoveTo(Object newPosition) protected voidprotected voidprotected doubleprotected voidprotected voidprotected doublevoidCalculates the start/stop and shutter open/close parameters during the exposure.voidexpose()Perform the actual move, once the exposure has been prepared with prepareForExposure()doubledoubleThe final position at which the shutter is expected to be opendoubledoubledoubledoubledoubleThe actual position where the move will concludedoubledoubleRetrieve the time between the close position and when the deceleration should startdoubledoubleThe minimum difference between the start and open positions.doubleThe minimum time to velocity.doubledoubleThe initial position at which the shutter is expected to be opendoubledoubleThe actual position where the move will startdoubledoublevoidMove the motor to the actual start position required for proper run-up to the desired velocity.voidsetAcceleration(double acceleration) voidsetClosePosition(double closePosition) The exact position where the shutter is expected to be closed.voidsetDefaultSpeed(double defaultSpeed) voidReset to the default speed and default time to velocity, usually done after an exposure()voidsetDefaultTimeToVelocity(double desiredTimeToVelocity) voidsetDesiredSpeed(double desiredSpeed) voidvoidsetDesiredTimeToVelocity(double desiredTimeToVelocity) voidsetEndTimeFudgeFactor(double fudgeTime) voidsetExposureTime(double exposureTime) voidsetMinimumTimeToVelocity(double minimumTimeToVelocity) The minimum time to velocity.voidsetMotor(ScannableMotor theMotor) voidsetMoveDistance(double moveDistance) The distance between the open and close positionsvoidsetOpenPosition(double openPosition) voidsetPositionFudgeFactor(double positionFudgeFactor) voidsetShutterOpenTime(double openTime) voidsetStartTimeFudgeFactor(double fudgeTime) Methods inherited from class gda.device.DeviceBase
addIObserver, close, deleteIObserver, deleteIObservers, getAttribute, getName, getProtectionLevel, isBeingObserved, isConfigureAtStartup, notifyIObservers, setAttribute, setConfigureAtStartup, setName, setProtectionLevelMethods inherited from class gda.factory.ConfigurableBase
configure, isConfigured, reconfigure, setConfiguredMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface gda.factory.Configurable
configure, isConfigureAtStartup, isConfigured, reconfigureMethods inherited from interface gda.device.Device
close, getAttribute, getProtectionLevel, setAttribute, setProtectionLevelMethods inherited from interface gda.observable.IObservable
addIObserver, deleteIObserver, deleteIObservers
-
Field Details
-
acceleration
public double acceleration
-
-
Constructor Details
-
ShutteredScannableMotor
public ShutteredScannableMotor()
-
-
Method Details
-
doCalculations
public void doCalculations()Calculates the start/stop and shutter open/close parameters during the exposure. This should be automatically called when any of the three exposure parameters are changed (image-start/time/positions).- Specified by:
doCalculationsin interfaceShutteredMotorController
-
expose
Description copied from interface:ShutteredMotorControllerPerform the actual move, once the exposure has been prepared with prepareForExposure()- Specified by:
exposein interfaceShutteredMotorController- Throws:
DeviceException
-
calculateDesiredVelocity
protected void calculateDesiredVelocity() -
calculateDesiredAccelerationTime
protected void calculateDesiredAccelerationTime() -
calculatePositionWhereShutterIsTriggeredToOpen
protected void calculatePositionWhereShutterIsTriggeredToOpen() -
calculateStartPosition
protected double calculateStartPosition() -
calculateEndPosition
protected double calculateEndPosition() -
calculateMinimumExposeTime
protected void calculateMinimumExposeTime() -
setDefaultSpeeds
Description copied from interface:ShutteredMotorControllerReset to the default speed and default time to velocity, usually done after an exposure()- Specified by:
setDefaultSpeedsin interfaceShutteredMotorController- Throws:
DeviceException
-
setDesiredSpeeds
- Throws:
DeviceException
-
getDefaultSpeed
public double getDefaultSpeed()- Specified by:
getDefaultSpeedin interfaceShutteredMotorController
-
getDefaultTimeToVelocity
public double getDefaultTimeToVelocity()- Specified by:
getDefaultTimeToVelocityin interfaceShutteredMotorController- Returns:
- defaultTimeToVelocity
-
getDesiredSpeed
public double getDesiredSpeed()- Specified by:
getDesiredSpeedin interfaceShutteredMotorController- Returns:
- speed
-
getDesiredTimeToVelocity
public double getDesiredTimeToVelocity()- Specified by:
getDesiredTimeToVelocityin interfaceShutteredMotorController- Returns:
- desiredTimeToVelocity
-
getEndPositionOffset
public double getEndPositionOffset()- Specified by:
getEndPositionOffsetin interfaceShutteredMotorController- Returns:
- endPositionOffset the offset from the close position that expose() will move to
-
getEndTimeFudgeFactor
public double getEndTimeFudgeFactor()Description copied from interface:ShutteredMotorControllerRetrieve the time between the close position and when the deceleration should start- Specified by:
getEndTimeFudgeFactorin interfaceShutteredMotorController- Returns:
- fudgeTime
-
getStartPositionOffset
public double getStartPositionOffset()- Specified by:
getStartPositionOffsetin interfaceShutteredMotorController- Returns:
- startPositionOffset the offset from the actual start position when prepareForExposure() is done
-
getStartTimeFudgeFactor
public double getStartTimeFudgeFactor()- Specified by:
getStartTimeFudgeFactorin interfaceShutteredMotorController- Returns:
- fudgeTime the time allowed between the axis reaching full velocity and reaching the start position
-
prepareForExposure
Description copied from interface:ShutteredMotorControllerMove the motor to the actual start position required for proper run-up to the desired velocity. Set speed and time to velocity on underlying motor to accomplish the move properly. Done after setDefaultSpeeds() to ensure that axes are moving fast to the start position.- Specified by:
prepareForExposurein interfaceShutteredMotorController- Throws:
DeviceException
-
setDefaultSpeed
public void setDefaultSpeed(double defaultSpeed) - Specified by:
setDefaultSpeedin interfaceShutteredMotorController- Parameters:
defaultSpeed-
-
setDefaultTimeToVelocity
public void setDefaultTimeToVelocity(double desiredTimeToVelocity) - Specified by:
setDefaultTimeToVelocityin interfaceShutteredMotorController- Parameters:
desiredTimeToVelocity-
-
setDesiredSpeed
public void setDesiredSpeed(double desiredSpeed) - Specified by:
setDesiredSpeedin interfaceShutteredMotorController- Parameters:
desiredSpeed-
-
setDesiredTimeToVelocity
public void setDesiredTimeToVelocity(double desiredTimeToVelocity) - Specified by:
setDesiredTimeToVelocityin interfaceShutteredMotorController- Parameters:
desiredTimeToVelocity-
-
setClosePosition
public void setClosePosition(double closePosition) Description copied from interface:ShutteredMotorControllerThe exact position where the shutter is expected to be closed.- Specified by:
setClosePositionin interfaceShutteredMotorController- Parameters:
closePosition-
-
getClosePosition
public double getClosePosition()Description copied from interface:ShutteredMotorControllerThe final position at which the shutter is expected to be open- Specified by:
getClosePositionin interfaceShutteredMotorController
-
setEndTimeFudgeFactor
public void setEndTimeFudgeFactor(double fudgeTime) - Specified by:
setEndTimeFudgeFactorin interfaceShutteredMotorController- Parameters:
fudgeTime-
-
setExposureTime
public void setExposureTime(double exposureTime) - Specified by:
setExposureTimein interfaceShutteredMotorController- Parameters:
exposureTime-
-
getOpenPosition
public double getOpenPosition()Description copied from interface:ShutteredMotorControllerThe initial position at which the shutter is expected to be open- Specified by:
getOpenPositionin interfaceShutteredMotorController
-
setOpenPosition
public void setOpenPosition(double openPosition) - Specified by:
setOpenPositionin interfaceShutteredMotorController- Parameters:
openPosition-
-
setShutterOpenTime
public void setShutterOpenTime(double openTime) -
setStartTimeFudgeFactor
public void setStartTimeFudgeFactor(double fudgeTime) - Specified by:
setStartTimeFudgeFactorin interfaceShutteredMotorController- Parameters:
fudgeTime-
-
getStartPosition
public double getStartPosition()Description copied from interface:ShutteredMotorControllerThe actual position where the move will start- Specified by:
getStartPositionin interfaceShutteredMotorController- Returns:
- start position
-
getEndPosition
public double getEndPosition()Description copied from interface:ShutteredMotorControllerThe actual position where the move will conclude- Specified by:
getEndPositionin interfaceShutteredMotorController- Returns:
- final position
-
getMoveDistance
public double getMoveDistance()- Specified by:
getMoveDistancein interfaceShutteredMotorController- Returns:
- distance between open and close positions
-
setMoveDistance
public void setMoveDistance(double moveDistance) Description copied from interface:ShutteredMotorControllerThe distance between the open and close positions- Specified by:
setMoveDistancein interfaceShutteredMotorController- Parameters:
moveDistance-
-
getMinExposeTime
public double getMinExposeTime() -
setMotor
- Specified by:
setMotorin interfaceShutteredMotorController
-
getMinimumTimeToVelocity
public double getMinimumTimeToVelocity()Description copied from interface:ShutteredMotorControllerThe minimum time to velocity. If the desired time to velocity is set to less than this value, it will be replaced by the minimumTimeToVelocity- Specified by:
getMinimumTimeToVelocityin interfaceShutteredMotorController- Returns:
- minimum time to velocity
-
setMinimumTimeToVelocity
public void setMinimumTimeToVelocity(double minimumTimeToVelocity) Description copied from interface:ShutteredMotorControllerThe minimum time to velocity.- Specified by:
setMinimumTimeToVelocityin interfaceShutteredMotorController- Parameters:
minimumTimeToVelocity-
-
getMinimumStartToOpenPositionDifference
public double getMinimumStartToOpenPositionDifference()Description copied from interface:ShutteredMotorControllerThe minimum difference between the start and open positions. Also used for end and close positions.- Specified by:
getMinimumStartToOpenPositionDifferencein interfaceShutteredMotorController- Returns:
- minimumDiff
-
getPosition
- Throws:
DeviceException
-
asynchronousMoveTo
- Throws:
DeviceException
-
getPositionFudgeFactor
public double getPositionFudgeFactor() -
setPositionFudgeFactor
public void setPositionFudgeFactor(double positionFudgeFactor) -
setAcceleration
public void setAcceleration(double acceleration) - Specified by:
setAccelerationin interfaceShutteredMotorController
-
getAcceleration
public double getAcceleration()- Specified by:
getAccelerationin interfaceShutteredMotorController
-