Package gda.device.continuouscontroller
Class XpsConstantVelocityMoveController
java.lang.Object
gda.factory.ConfigurableBase
gda.factory.FindableConfigurableBase
gda.device.DeviceBase
gda.device.scannable.ScannableBase
gda.device.continuouscontroller.XpsConstantVelocityMoveController
- All Implemented Interfaces:
ConstantVelocityMoveController,ContinuousMoveController,HardwareTriggerProvider,Device,Scannable,ContinuouslyScannableViaController,Configurable,Findable,gda.observable.IObservable
public class XpsConstantVelocityMoveController
extends ScannableBase
implements ConstantVelocityMoveController, ContinuouslyScannableViaController
-
Field Summary
Fields inherited from class gda.device.scannable.ScannableBase
__doc__, DEFAULT_INPUT_NAME, DEFAULT_OUTPUT_FORMAT, extraNames, inputNames, level, outputFormatFields inherited from class gda.device.DeviceBase
DEFAULT_PROTECTION_LEVEL_PROPERTYFields inherited from interface gda.device.Scannable
ATTR_NEXUS_CATEGORY, ATTR_NX_CLASS, DEFAULT_INPUT_NAME, VALUE_UNAVAILABLE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidasynchronousMoveTo(Object position) Trigger a move/operation and return immediately.voidCalled for every Scannable at the end of a group of nested scans (or a single scan if that is the case).doublegetEnd()getMotor()intReturns the current position of the Scannable.doublegetStart()doublegetStep()doublebooleanisBusy()Check if the Scannable is moving/operating.booleanisMoving()Check if the controller is moving axes.booleanIndicates whether the Scannable has deferred control to the he configuredContinuousMoveControllervoidPrepare the already configured controller to move, waiting until ready.voidsetContinuousMoveController(ContinuousMoveController controller) voidsetController(EpicsXpsConstantVelocityContoller controller) voidsetEnd(double end) Set the end location for the move in hardware units/offset/scale.voidsetMotor(ShutteredScannableMotor motor) voidsetOperatingContinuously(boolean b) Enable or disable control through the configuredContinuousMoveControllervoidsetScannable(Scannable scannable) voidsetStart(double start) Set the start location for the move in hardware units/offset/scale.voidsetStep(double step) Set the step size for the move in hardware units/scale.voidsetTriggerPeriod(double seconds) voidStart the prepared move and return immediately.voidStop a move if one is in progress and then reset the controller.voidWait until the controller has completed moving axesMethods inherited from class gda.device.scannable.ScannableBase
__call__, __call__, __doc__, __getitem__, __len__, __repr__, __str__, atCommandFailure, atLevelEnd, atLevelMoveStart, atLevelStart, atPointEnd, atPointStart, atScanLineEnd, atScanLineStart, atScanStart, checkPositionValid, externalToInternal, getExtraNames, getInputNames, getLevel, getOutputFormat, getScanMetadataAttribute, getScanMetadataAttributeNames, getScanMetadataAttributes, internalToExternal, isAt, moveTo, rawAsynchronousMoveTo, rawGetPosition, setExtraNames, setInputNames, setLevel, setOutputFormat, setScanMetadataAttribute, setScanMetadataAttributes, stop, throwExceptionIfInvalidTarget, toFormattedString, toString, validateScannable, valueUnavailableString, waitWhileBusy, waitWhileBusyMethods 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, 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, deleteIObserversMethods inherited from interface gda.device.Scannable
atCommandFailure, atLevelEnd, atLevelMoveStart, atLevelStart, atPointEnd, atPointStart, atScanLineEnd, atScanLineStart, atScanStart, checkPositionValid, getExtraNames, getInputNames, getLevel, getOutputFormat, getScanMetadataAttribute, getScanMetadataAttributeNames, getScanMetadataAttributes, isAt, moveTo, setExtraNames, setInputNames, setLevel, setOutputFormat, setScanMetadataAttribute, setScanMetadataAttributes, stop, toFormattedString, waitWhileBusy
-
Constructor Details
-
XpsConstantVelocityMoveController
public XpsConstantVelocityMoveController()
-
-
Method Details
-
getMotor
-
setMotor
-
getController
-
setController
-
prepareForMove
Description copied from interface:ContinuousMoveControllerPrepare the already configured controller to move, waiting until ready. Normally this should move motors to the start position.- Specified by:
prepareForMovein interfaceContinuousMoveController- Throws:
InterruptedExceptionDeviceException
-
atScanEnd
Description copied from class:ScannableBaseCalled for every Scannable at the end of a group of nested scans (or a single scan if that is the case).Note that this is only called if the Scan finishes normally, or has been requested to finish early. This will not be called if the scan finishes due to an exception of any kind. See
Scannable.atCommandFailure()Default behaviour is to do nothing. Inheriting classes have the option to implement this if their specific behaviour requires it.- Specified by:
atScanEndin interfaceScannable- Overrides:
atScanEndin classScannableBase- Throws:
DeviceException- See Also:
-
startMove
Description copied from interface:ContinuousMoveControllerStart the prepared move and return immediately.- Specified by:
startMovein interfaceContinuousMoveController- Throws:
DeviceException
-
isMoving
Description copied from interface:ContinuousMoveControllerCheck if the controller is moving axes.- Specified by:
isMovingin interfaceContinuousMoveController- Returns:
- true if moving.
- Throws:
DeviceException
-
waitWhileMoving
Description copied from interface:ContinuousMoveControllerWait until the controller has completed moving axes- Specified by:
waitWhileMovingin interfaceContinuousMoveController- Throws:
InterruptedExceptionDeviceException
-
stopAndReset
Description copied from interface:ContinuousMoveControllerStop a move if one is in progress and then reset the controller.- Specified by:
stopAndResetin interfaceContinuousMoveController- Throws:
DeviceExceptionInterruptedException
-
setTriggerPeriod
- Specified by:
setTriggerPeriodin interfaceHardwareTriggerProvider- Throws:
DeviceException
-
getNumberTriggers
public int getNumberTriggers()- Specified by:
getNumberTriggersin interfaceHardwareTriggerProvider
-
getTotalTime
- Specified by:
getTotalTimein interfaceHardwareTriggerProvider- Throws:
DeviceException
-
isBusy
Description copied from interface:ScannableCheck if the Scannable is moving/operating.- Specified by:
isBusyin interfaceScannable- Returns:
- true - if operation carried out by moveTo has not completed yet
- Throws:
DeviceException
-
setStart
Description copied from interface:ConstantVelocityMoveControllerSet the start location for the move in hardware units/offset/scale.- Specified by:
setStartin interfaceConstantVelocityMoveController- Parameters:
start-- Throws:
DeviceException
-
getStart
public double getStart()- Specified by:
getStartin interfaceConstantVelocityMoveController
-
setEnd
Description copied from interface:ConstantVelocityMoveControllerSet the end location for the move in hardware units/offset/scale.- Specified by:
setEndin interfaceConstantVelocityMoveController- Parameters:
end-- Throws:
DeviceException
-
getEnd
public double getEnd()- Specified by:
getEndin interfaceConstantVelocityMoveController
-
setStep
Description copied from interface:ConstantVelocityMoveControllerSet the step size for the move in hardware units/scale.- Specified by:
setStepin interfaceConstantVelocityMoveController- Parameters:
step-- Throws:
DeviceException
-
getStep
public double getStep()- Specified by:
getStepin interfaceConstantVelocityMoveController
-
getScannable
-
setScannable
-
setOperatingContinuously
Description copied from interface:ContinuouslyScannableViaControllerEnable or disable control through the configuredContinuousMoveController- Specified by:
setOperatingContinuouslyin interfaceContinuouslyScannableViaController- Parameters:
b-- Throws:
DeviceException
-
isOperatingContinously
public boolean isOperatingContinously()Description copied from interface:ContinuouslyScannableViaControllerIndicates whether the Scannable has deferred control to the he configuredContinuousMoveController- Specified by:
isOperatingContinouslyin interfaceContinuouslyScannableViaController- Returns:
- true if control is defered
-
getContinuousMoveController
- Specified by:
getContinuousMoveControllerin interfaceContinuouslyScannableViaController
-
setContinuousMoveController
- Specified by:
setContinuousMoveControllerin interfaceContinuouslyScannableViaController
-
asynchronousMoveTo
Description copied from class:ScannableBaseTrigger a move/operation and return immediately. Implementations of this method should be non-blocking to allow concurrent motion; the isBusy method will be used to determine when the move has completed. Converts the external (user) position to an internal position and passes this to rawAsynchronousMoveTo.- Specified by:
asynchronousMoveToin interfaceScannable- Overrides:
asynchronousMoveToin classScannableBase- Parameters:
position- Position to move to should have an element for each input field.- Throws:
DeviceException
-
getPosition
Description copied from class:ScannableBaseReturns the current position of the Scannable. Called by ConcurentScan at the end of the point. Reads an internal (hardware) position from rawGetPosition, converts this to an external (user) position and returns it.- Specified by:
getPositionin interfaceScannable- Overrides:
getPositionin classScannableBase- Returns:
- Current position with an element for each input and extra field. null if their are no fields.
- Throws:
DeviceException
-