Class DeferredAndTrajectoryScannableGroup
java.lang.Object
gda.factory.ConfigurableBase
gda.factory.FindableConfigurableBase
gda.device.DeviceBase
gda.device.scannable.ScannableBase
gda.device.scannable.scannablegroup.ScannableGroup
gda.device.scannable.scannablegroup.CoordinatedScannableGroup
gda.device.scannable.scannablegroup.DeferredScannableGroup
gda.device.scannable.scannablegroup.DeferredAndTrajectoryScannableGroup
- All Implemented Interfaces:
Device,Scannable,ContinuouslyScannableViaController,IScannableGroup,Configurable,Findable,gda.observable.IObservable,gda.observable.IObserver
-
Field Summary
Fields inherited from class gda.device.scannable.scannablegroup.CoordinatedScannableGroup
coordinatedScannableComponentFields 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 TypeMethodDescriptionvoidaddChildToMove(gda.device.scannable.scannablegroup.ICoordinatedChildScannable childScannable) Puts the group into targeting mode if it is not already, and tells the group to await for a setElementTarget() call from that element before triggering the coordinated move.voidasynchronousMoveTo(Object position) asynchronousMoveTo implemented following recommendations to check whether all moves have called back.voidDefault implementation for classes that do not have to do any specific configuration.
Classes that do their own configuration should *not* call this superclass function, as it may cause the object to appear configured before it really is.Returns the current position of the Scannable.getPositionWhileMovingContinuousely(gda.device.scannable.scannablegroup.ICoordinatedScannableGroupChildScannable childScannable) booleanisBusy()Check if the Scannable is moving/operating.booleanIndicates whether the Scannable has deferred control to the he configuredContinuousMoveControllerbooleanDouble[]positionForUnderlyingMotorsToScannable(Double[] posForUnderlyingMotors) voidsetChildTarget(gda.device.scannable.scannablegroup.ICoordinatedChildScannable childScannable, Object position) Set the target for a given element.voidsetContinuousMoveController(ContinuousMoveController controller) voidsetGroupMembers(List<Scannable> groupMembers) Sets the group members that make up this scannable group.voidsetOperatingContinuously(boolean b) Enable or disable control through the configuredContinuousMoveControllervoidstop()stop all axes and turn off defer flag, and stopAndReset controller if moving continuouslyvoidReturns when operation carried out by moveTo has completedprotected gda.device.scannable.scannablegroup.ICoordinatedChildScannablewrapScannable(Scannable delegate) Wraps a scannable with an ICoordinatedScannableElement to mediates access to the 'real' delegate scannable.Methods inherited from class gda.device.scannable.scannablegroup.DeferredScannableGroup
atCommandFailure, getDeferredControlPoint, getDeferredControlPointName, setDefer, setDeferredControlPoint, setDeferredControlPointNameMethods inherited from class gda.device.scannable.scannablegroup.CoordinatedScannableGroup
__repr__, __str__, addChildToMove, addGroupMember, addPositionValidator, atLevelMoveStart, checkAdditionalPositionValidators, checkPositionValid, getAdditionalPositionValidators, isTargeting, setAdditionalPositionValidators, setChildTargetMethods inherited from class gda.device.scannable.scannablegroup.ScannableGroup
__getattr__, addGroupMember, atLevelEnd, atLevelStart, atPointEnd, atPointStart, atScanEnd, atScanLineEnd, atScanLineStart, atScanStart, extractPositionsFromObject, getExtraNames, getGroupMember, getGroupMemberNames, getGroupMembers, getGroupMembersAsArray, getInputNames, getOutputFormat, getUnits, isDemandAllScannablePositions, removeGroupMemberByIndex, removeGroupMemberByScannable, setDemandAllScannablePositions, setExtraNames, setGroupMembersWithArray, setGroupMembersWithList, setInputNames, toFormattedString, toString, updateMethods inherited from class gda.device.scannable.ScannableBase
__call__, __call__, __doc__, __getitem__, __len__, externalToInternal, getLevel, getScanMetadataAttribute, getScanMetadataAttributeNames, getScanMetadataAttributes, internalToExternal, isAt, moveTo, rawAsynchronousMoveTo, rawGetPosition, setLevel, setOutputFormat, setScanMetadataAttribute, setScanMetadataAttributes, throwExceptionIfInvalidTarget, validateScannable, valueUnavailableString, 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
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
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, atScanEnd, atScanLineEnd, atScanLineStart, atScanStart, checkPositionValid, getExtraNames, getInputNames, getLevel, getOutputFormat, getScanMetadataAttribute, getScanMetadataAttributeNames, getScanMetadataAttributes, isAt, moveTo, setExtraNames, setInputNames, setLevel, setOutputFormat, setScanMetadataAttribute, setScanMetadataAttributes, toFormattedString
-
Constructor Details
-
DeferredAndTrajectoryScannableGroup
public DeferredAndTrajectoryScannableGroup()
-
-
Method Details
-
setGroupMembers
Description copied from class:ScannableGroupSets the group members that make up this scannable group. If this ScannableGroup is configured, sets it to unconfigured, to allow all the scannables to be configured by call this.configure()- Specified by:
setGroupMembersin interfaceIScannableGroup- Overrides:
setGroupMembersin classCoordinatedScannableGroup- Parameters:
groupMembers- the group members- Throws:
FactoryException
-
getScannableMotors
-
configure
Description copied from class:ConfigurableBaseDefault implementation for classes that do not have to do any specific configuration.
Classes that do their own configuration should *not* call this superclass function, as it may cause the object to appear configured before it really is.- Specified by:
configurein interfaceConfigurable- Overrides:
configurein classDeferredScannableGroup- Throws:
FactoryException- if there is an error in configuration e.g. required variable not set or cannot connect to device
-
wrapScannable
protected gda.device.scannable.scannablegroup.ICoordinatedChildScannable wrapScannable(Scannable delegate) Description copied from class:CoordinatedScannableGroupWraps a scannable with an ICoordinatedScannableElement to mediates access to the 'real' delegate scannable. coordinated moves. Note that only methods on ScannableMotionUnits, ScannableMotion or Scannable will be brought out.- Overrides:
wrapScannablein classCoordinatedScannableGroup- Parameters:
delegate-- Returns:
- the wrapped scannable
-
setOperatingContinuously
public void setOperatingContinuously(boolean b) Description copied from interface:ContinuouslyScannableViaControllerEnable or disable control through the configuredContinuousMoveController- Specified by:
setOperatingContinuouslyin interfaceContinuouslyScannableViaController- Parameters:
b-
-
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:DeferredScannableGroupasynchronousMoveTo implemented following recommendations to check whether all moves have called back.- Specified by:
asynchronousMoveToin interfaceScannable- Overrides:
asynchronousMoveToin classDeferredScannableGroup- Parameters:
position- Position to move to should have an element for each input field.- Throws:
DeviceException
-
positionForUnderlyingMotorsToScannable
-
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 classScannableGroup- Returns:
- Current position with an element for each input and extra field. null if their are no fields.
- Throws:
DeviceException
-
getPositionWhileMovingContinuousely
public Object getPositionWhileMovingContinuousely(gda.device.scannable.scannablegroup.ICoordinatedScannableGroupChildScannable childScannable) throws DeviceException - Overrides:
getPositionWhileMovingContinuouselyin classCoordinatedScannableGroup- Throws:
DeviceException
-
isBusy
Description copied from interface:ScannableCheck if the Scannable is moving/operating.- Specified by:
isBusyin interfaceScannable- Overrides:
isBusyin classCoordinatedScannableGroup- Returns:
- true - if operation carried out by moveTo has not completed yet
- Throws:
DeviceException
-
waitWhileBusy
Description copied from class:ScannableBaseReturns when operation carried out by moveTo has completed If this is to be overriden, isBusy must also be valid. Although the pos and scan command currently use this method to determine if the Scannable is busy, this must not be relied upon.- Specified by:
waitWhileBusyin interfaceScannable- Overrides:
waitWhileBusyin classScannableGroup- Throws:
DeviceExceptionInterruptedException
-
stop
stop all axes and turn off defer flag, and stopAndReset controller if moving continuously- Specified by:
stopin interfaceScannable- Overrides:
stopin classDeferredScannableGroup- Throws:
DeviceException- See Also:
-
isTargeting
boolean isTargeting()- Returns:
- True if the group is in targeting mode. (Elements to move have been added, but not all targets have been set, therefore the move has not yet been triggered.)
-
addChildToMove
void addChildToMove(gda.device.scannable.scannablegroup.ICoordinatedChildScannable childScannable) Puts the group into targeting mode if it is not already, and tells the group to await for a setElementTarget() call from that element before triggering the coordinated move.- Parameters:
childScannable-
-
setChildTarget
void setChildTarget(gda.device.scannable.scannablegroup.ICoordinatedChildScannable childScannable, Object position) throws DeviceException Set the target for a given element. addElementToMove() must first have been called.- Parameters:
childScannable-position-- Throws:
DeviceException
-