Package gda.device.enumpositioner
Class EpicsSimplePositioner
java.lang.Object
gda.factory.ConfigurableBase
gda.factory.FindableConfigurableBase
gda.device.DeviceBase
gda.device.scannable.ScannableBase
gda.device.enumpositioner.EnumPositionerBase
gda.device.enumpositioner.EpicsSimplePositioner
- All Implemented Interfaces:
ControllerRecord,Device,EnumPositioner,Scannable,Configurable,Findable,gda.observable.IObservable,gov.aps.jca.event.ConnectionListener,gov.aps.jca.event.MonitorListener,EventListener
- Direct Known Subclasses:
PersistentEpicsAperturePositioner
@ServiceInterface(EnumPositioner.class)
public class EpicsSimplePositioner
extends EnumPositionerBase
implements gov.aps.jca.event.ConnectionListener, gov.aps.jca.event.MonitorListener, ControllerRecord
This classes addresses a positioner that is controlled by a single PV, in contrast to (for example)
EpicsPositioner
It additionally allows the user to use different names for the preset positions than those defined in Epics.
In this case, the object needs to be configured with a map of <user-facing name> to <Epics name>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected EpicsControllerprotected gov.aps.jca.Channelprotected HashSet<gov.aps.jca.Channel> protected StringFields 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 TypeMethodDescriptioncheckPositionValid(Object position) This default behaviour should be extended by most subclasses! This default behaviour should be extended by most subclasses! Tests if the given object is meaningful to this Scannable and so could be used by one of the move commands.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.voidconnectionChanged(gov.aps.jca.event.ConnectionEvent ev) Gets the name of the controller record, e.g.Returns the current position of the Scannable.booleanvoidmonitorChanged(gov.aps.jca.event.MonitorEvent arg0) voidrawAsynchronousMoveTo(Object position) [Consider abstract] Trigger a move/operation to an internal/hardware position and return immediately.voidsetCanMove(boolean canMove) voidvoidMapinvalid input: '<'String, String> - means invalid input: '<'GDA name, EPICS name>Returns a string representation of the Scannable and its current position/value/statusMethods inherited from class gda.device.enumpositioner.EnumPositionerBase
addPosition, addPositions, clearPositions, containsPosition, createFormattedListAcceptablePositions, getNumberOfPositions, getPosition, getPositionerStatus, getPositionIndex, getPositions, getPositionsList, getStatus, isBusy, isInPos, setPositionerStatus, setPositionsInternalMethods inherited from class gda.device.scannable.ScannableBase
__call__, __call__, __doc__, __getitem__, __len__, __repr__, __str__, asynchronousMoveTo, atCommandFailure, atLevelEnd, atLevelMoveStart, atLevelStart, atPointEnd, atPointStart, atScanEnd, atScanLineEnd, atScanLineStart, atScanStart, externalToInternal, getExtraNames, getInputNames, getLevel, getOutputFormat, getScanMetadataAttribute, getScanMetadataAttributeNames, getScanMetadataAttributes, internalToExternal, isAt, moveTo, rawGetPosition, setExtraNames, setInputNames, setLevel, setOutputFormat, setScanMetadataAttribute, setScanMetadataAttributes, stop, throwExceptionIfInvalidTarget, 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
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
asynchronousMoveTo, atCommandFailure, atLevelEnd, atLevelMoveStart, atLevelStart, atPointEnd, atPointStart, atScanEnd, atScanLineEnd, atScanLineStart, atScanStart, getExtraNames, getInputNames, getLevel, getOutputFormat, getScanMetadataAttribute, getScanMetadataAttributeNames, getScanMetadataAttributes, isAt, moveTo, setExtraNames, setInputNames, setLevel, setOutputFormat, setScanMetadataAttribute, setScanMetadataAttributes, stop, waitWhileBusy
-
Field Details
-
pvName
-
controller
-
currentPositionChnl
protected gov.aps.jca.Channel currentPositionChnl -
monitorInstalledSet
-
-
Constructor Details
-
EpicsSimplePositioner
public EpicsSimplePositioner()
-
-
Method Details
-
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 classConfigurableBase- Throws:
FactoryException- if there is an error in configuration e.g. required variable not set or cannot connect to device
-
rawAsynchronousMoveTo
Description copied from class:ScannableBase[Consider abstract] Trigger a move/operation to an internal/hardware position and return immediately.- Overrides:
rawAsynchronousMoveToin classScannableBase- Parameters:
position- Position in its internal/hardware representation. e.g. with units and offsets removed- Throws:
DeviceException- See Also:
-
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
-
getPvName
-
setPvName
-
getControllerRecordName
Description copied from interface:ControllerRecordGets the name of the controller record, e.g. EPICS process variable name. For example, in NeXus this value can be written as the value of thecontroller_recordfield for theNXpositionerfor the scannable.- Specified by:
getControllerRecordNamein interfaceControllerRecord- Returns:
- controller record name
- See Also:
-
checkPositionValid
Description copied from class:ScannableBaseThis default behaviour should be extended by most subclasses! Tests if the given object is meaningful to this Scannable and so could be used by one of the move commands. May check limits and other things too. This is the method called by scans on all points before the scan is run.- Specified by:
checkPositionValidin interfaceScannable- Overrides:
checkPositionValidin classEnumPositionerBase- Parameters:
position-- Returns:
- null if position is valid, or returns a description if not.
- See Also:
-
connectionChanged
public void connectionChanged(gov.aps.jca.event.ConnectionEvent ev) - Specified by:
connectionChangedin interfacegov.aps.jca.event.ConnectionListener
-
monitorChanged
public void monitorChanged(gov.aps.jca.event.MonitorEvent arg0) - Specified by:
monitorChangedin interfacegov.aps.jca.event.MonitorListener
-
toFormattedString
Description copied from interface:ScannableReturns a string representation of the Scannable and its current position/value/statusTypically should return:
name : position
or for detectors, name : status
If the position/status cannot be determined, the function should return
Scannable.VALUE_UNAVAILABLEin its place.- Specified by:
toFormattedStringin interfaceScannable- Overrides:
toFormattedStringin classEnumPositionerBase- Returns:
- string as defined above
-
getValues
- Returns:
- Returns the values.
-
setValues
Mapinvalid input: '<'String, String> - means invalid input: '<'GDA name, EPICS name>- Parameters:
values- The values to set.
-
isCanMove
public boolean isCanMove() -
setCanMove
public void setCanMove(boolean canMove)
-