Package gda.device.enumpositioner
Class EpicsPositioner
java.lang.Object
gda.factory.ConfigurableBase
gda.factory.FindableConfigurableBase
gda.device.DeviceBase
gda.device.scannable.ScannableBase
gda.device.enumpositioner.EnumPositionerBase
gda.device.enumpositioner.EpicsPositioner
- All Implemented Interfaces:
ControllerRecord,Device,EnumPositioner,Scannable,InitializationListener,Configurable,Findable,gda.observable.IObservable
- Direct Known Subclasses:
EpicsPositionerCallback
@ServiceInterface(EnumPositioner.class)
public class EpicsPositioner
extends EnumPositionerBase
implements InitializationListener, ControllerRecord
This class maps to EPICS positioner template.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected EpicsChannelManagerprotected EpicsControllerprotected gda.device.enumpositioner.EpicsPositioner.DmovMonitorListenerprotected gov.aps.jca.ChannelFields 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 TypeMethodDescriptionvoidDefault 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.protected voidbooleanbooleanGets the name of the controller record, e.g.Returns the current position of the Scannable.getPositionFromValue(double value) Reverse lookup - potentially flawed because several positions may have the same value.String[]Returns an array of the positions which this device can be moved to.getPositionValue(String position) voidCalled when all critical channels are connected.booleanisInPos()Simple implementation that may not be reliable.
Devices with a PV that indicates whether the device is in position should use this instead.voidrawAsynchronousMoveTo(Object position) [Consider abstract] Trigger a move/operation to an internal/hardware position and return immediately.voidsetAcceptNewMoveToPositionWhileMoving(boolean acceptNewMoveToPositionWhileMoving) voidsetAllowPositionValueReads(boolean allowPositionValueReads) voidsetRecordName(String recordName) Sets the record name that this positioner will link to.protected voidsetRecordNamesUsingBasePv(String recordName) Builds the five PVs for thisEpicsPositionerby appending suffixes to a base record name.voidsetRecordValuesSuffix(String recordSuffix) Sets the suffix to find the individual values of the positioner.voidstop()Stop the current move/operation.Methods inherited from class gda.device.enumpositioner.EnumPositionerBase
addPosition, addPositions, checkPositionValid, clearPositions, containsPosition, createFormattedListAcceptablePositions, getNumberOfPositions, getPosition, getPositionerStatus, getPositionIndex, getPositionsList, getStatus, isBusy, setPositionerStatus, setPositionsInternal, toFormattedStringMethods 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, 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, waitWhileBusy
-
Field Details
-
controller
-
channelManager
-
select
protected gov.aps.jca.Channel select -
dmovMonitor
protected gda.device.enumpositioner.EpicsPositioner.DmovMonitorListener dmovMonitor
-
-
Constructor Details
-
EpicsPositioner
public EpicsPositioner()Constructor
-
-
Method Details
-
getAllowPositionValueReads
public boolean getAllowPositionValueReads() -
setAllowPositionValueReads
public void setAllowPositionValueReads(boolean allowPositionValueReads) -
setRecordName
Sets the record name that this positioner will link to.- Parameters:
recordName- the record name
-
getRecordName
-
setRecordValuesSuffix
Sets the suffix to find the individual values of the positioner.- Parameters:
recordSuffix- the record suffix
-
getRecordValuesSuffix
-
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:
-
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
-
setRecordNamesUsingBasePv
Builds the five PVs for thisEpicsPositionerby appending suffixes to a base record name. -
createChannelAccess
- Throws:
FactoryException
-
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
-
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:
-
getAcceptNewMoveToPositionWhileMoving
public boolean getAcceptNewMoveToPositionWhileMoving() -
setAcceptNewMoveToPositionWhileMoving
public void setAcceptNewMoveToPositionWhileMoving(boolean acceptNewMoveToPositionWhileMoving) -
stop
Description copied from class:ScannableBaseStop the current move/operation. Default behaviour is to do nothing. Inheriting classes have the option to implement this if their specific behaviour requires it.- Specified by:
stopin interfaceScannable- Overrides:
stopin classScannableBase- Throws:
DeviceException- See Also:
-
getPositions
Description copied from interface:EnumPositionerReturns an array of the positions which this device can be moved to.- Specified by:
getPositionsin interfaceEnumPositioner- Overrides:
getPositionsin classEnumPositionerBase- Returns:
- an array of positions
- Throws:
DeviceException
-
isInPos
Description copied from class:EnumPositionerBaseSimple implementation that may not be reliable.
Devices with a PV that indicates whether the device is in position should use this instead.- Specified by:
isInPosin interfaceEnumPositioner- Overrides:
isInPosin classEnumPositionerBase- Throws:
DeviceException
-
initializationCompleted
Description copied from interface:InitializationListenerCalled when all critical channels are connected.- Specified by:
initializationCompletedin interfaceInitializationListener- Throws:
DeviceExceptionInterruptedException
-
getPositionValue
- Returns:
- the physical motor value for the supplied position string.
- Throws:
DeviceException
-
getPositionFromValue
Reverse lookup - potentially flawed because several positions may have the same value.- Throws:
DeviceException
-