Package gda.device.scannable
Class XesSpectrometerScannable
- All Implemented Interfaces:
INeXusInfoWriteable,Device,Scannable,ScannableMotion,ScannableMotionUnits,IXesSpectrometerScannable,Configurable,Findable,gda.observable.IObservable,gda.observable.IObserver
@ServiceInterface(IXesSpectrometerScannable.class)
public class XesSpectrometerScannable
extends XesSpectrometerScannableBase
Controls the I20 XES Secondary Spectrometer.
Provides a mapping between the motors which support the detector and analyser crystals, and the energy of the x-rays incident on the detector.
Assumes the detector motor has been calibrated in such a way that its position is the same as the Bragg angle.
-
Field Summary
Fields inherited from class gda.device.scannable.XesSpectrometerScannableBase
crystalList, crystalsAllowedToMove, crystalsGroup, detectorGroup, maxTheta, minTheta, radius, radiusScannableFields inherited from class gda.device.scannable.ScannableMotionUnitsBase
unitsComponentFields inherited from class gda.device.scannable.ScannableMotionBase
numberTries, toleranceFields 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_UNAVAILABLEFields inherited from interface gda.device.ScannableMotion
FIRSTINPUTLIMITSFields inherited from interface gda.device.ScannableMotionUnits
HARDWAREUNITS, USERUNITS -
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.double[]double[]doubledouble[]double[]doubledouble[]getSpectrometerPositions(double targetBragg) This is used externally, to return all the spectrometer motor values for a given bragg anglebooleanisBusy()Check if the Scannable is moving/operating.booleanbooleanvoidrawAsynchronousMoveTo(Object position) [Consider abstract] Trigger a move/operation to an internal/hardware position and return immediately.[Consider abstract] Read the position in its internal (user) representation.voidRe-initialisation of values and states.voidsetAnalyserDemandPrecision(double[] analyserDemandPrecisions) voidsetAnalyserPositionTolerance(double[] analyserPositionTolerance) voidsetDeferredMoveStartStopGroup(ScannableGroup deferredMoveStartStopGroup) voidsetDetectorAxisAngle(double detectorAxisAngle) Set the angle of the detector translation axis relative to the analyser coordinate system.voidsetDetectorDemandPrecision(double[] detectorDemandPrecision) voidsetDetectorPositionTolerance(double[] detectorPositionTolerance) voidsetDirectDemandScannablesMap(Map<Scannable, Scannable> directDemandScannablesMap) voidsetHorizontalCrystalOffset(double horizontalOffset) voidsetTrajectoryStepSize(Double trajectoryStepSize) voidsetUpperRow(boolean isUpper) voidsetUseDeferredMove(boolean useDeferredMove) voidstop()Stop the current move/operation.Returns a string representation of the Scannable and its current position/value/statusMethods inherited from class gda.device.scannable.XesSpectrometerScannableBase
checkPositionValid, checkPositionValid, extractDouble, getCrystalsAllowedToMove, getCrystalsGroup, getCrystalsList, getDetectorGroup, getDetRotScannable, getDetXScannable, getDetYScannable, getGroupedScannables, getMaxTheta, getMinTheta, getRadius, getRadiusScannable, getScannables, getScannablesOfTypeFromGroup, setCrystalsAllowedToMove, setCrystalsGroup, setDetectorGroup, setMaxTheta, setMinTheta, setRadius, setRadiusScannable, tryToUpdateRadiusFromScannable, update, updateActiveGroups, updateRadiusFromScannable, validateAndSetup, validatePositionMethods inherited from class gda.device.scannable.ScannableMotionUnitsBase
addAcceptableUnit, externalToInternal, getAcceptableUnits, getAttribute, getHardwareUnitString, getInitialUserUnits, getOffset, getUserUnits, internalToExternal, isAt, setHardwareUnitString, setInitialUserUnits, setOffset, setOffset, setUserUnitsMethods inherited from class gda.device.scannable.ScannableMotionBase
a, addPositionValidator, ar, asynchronousMoveTo, checkPositionValid, checkPositionWithinGdaLimits, checkPositionWithinGdaLimits, completeInstantiation, generateScannableLimitsReport, getAdditionalPositionValidators, getFirstInputLimits, getInputLimits, getInputLimits, getLimitsComponent, getLowerGdaLimits, getNumberTries, getScalingFactor, getTolerances, getUpperGdaLimits, moveTo, r, rawIsBusy, removePositionValidator, setAdditionalPositionValidators, setLimitsComponent, setLowerGdaLimits, setLowerGdaLimits, setNumberTries, setOffsetAndScalingComponent, setScalingFactor, setTolerance, setTolerances, setUpperGdaLimits, setUpperGdaLimits, writeNeXusInformation, writeNeXusInformationLimitsMethods inherited from class gda.device.scannable.ScannableBase
__call__, __call__, __doc__, __getitem__, __len__, __repr__, __str__, atCommandFailure, atLevelEnd, atLevelMoveStart, atLevelStart, atPointEnd, atPointStart, atScanEnd, atScanLineEnd, atScanLineStart, atScanStart, getExtraNames, getInputNames, getLevel, getOutputFormat, getPosition, getScanMetadataAttribute, getScanMetadataAttributeNames, getScanMetadataAttributes, setExtraNames, setInputNames, setLevel, setOutputFormat, setScanMetadataAttribute, setScanMetadataAttributes, throwExceptionIfInvalidTarget, toString, validateScannable, valueUnavailableString, waitWhileBusy, waitWhileBusyMethods inherited from class gda.device.DeviceBase
addIObserver, close, deleteIObserver, deleteIObservers, getName, getProtectionLevel, isBeingObserved, isConfigureAtStartup, notifyIObservers, setAttribute, setConfigureAtStartup, setName, setProtectionLevelMethods inherited from class gda.factory.ConfigurableBase
isConfigured, setConfiguredMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface gda.factory.Configurable
isConfigureAtStartup, isConfiguredMethods 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, checkPositionValid, getExtraNames, getInputNames, getLevel, getOutputFormat, getPosition, getScanMetadataAttribute, getScanMetadataAttributeNames, getScanMetadataAttributes, isAt, moveTo, setExtraNames, setInputNames, setLevel, setOutputFormat, setScanMetadataAttribute, setScanMetadataAttributes, waitWhileBusyMethods inherited from interface gda.device.ScannableMotion
a, ar, checkPositionWithinGdaLimits, checkPositionWithinGdaLimits, getLowerGdaLimits, getNumberTries, getOffset, getScalingFactor, getTolerances, getUpperGdaLimits, r, setLowerGdaLimits, setLowerGdaLimits, setNumberTries, setOffset, setScalingFactor, setTolerance, setTolerances, setUpperGdaLimits, setUpperGdaLimitsMethods inherited from interface gda.device.ScannableMotionUnits
addAcceptableUnit, getAcceptableUnits, getHardwareUnitString, getUserUnits, setHardwareUnitString, setOffset, setUserUnits
-
Constructor Details
-
XesSpectrometerScannable
public XesSpectrometerScannable()
-
-
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
-
reconfigure
Description copied from interface:ConfigurableRe-initialisation of values and states.Moved from Reconfigurable which has been deleted
- Specified by:
reconfigurein interfaceConfigurable- Overrides:
reconfigurein classConfigurableBase- Throws:
FactoryException
-
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 classXesSpectrometerScannableBase- Throws:
DeviceException- See Also:
-
isBusy
Description copied from class:ScannableMotionBaseCheck if the Scannable is moving/operating.. Calls onto rawIsBusy for historical reasons, although there is currently no need for this.- Specified by:
isBusyin interfaceScannable- Overrides:
isBusyin classXesSpectrometerScannableBase- Returns:
- true - if operation carried out by moveTo has not completed yet
- Throws:
DeviceException- See Also:
-
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:
-
getSpectrometerPositions
This is used externally, to return all the spectrometer motor values for a given bragg angle- Parameters:
targetBragg-- Returns:
- map of scannable positions (key = scannable, value = position)
-
getDetectorAxisAngle
public double getDetectorAxisAngle() -
setDetectorAxisAngle
public void setDetectorAxisAngle(double detectorAxisAngle) Set the angle of the detector translation axis relative to the analyser coordinate system.- Parameters:
detectorAxisAngle-
-
rawGetPosition
Description copied from class:ScannableBase[Consider abstract] Read the position in its internal (user) representation.- Overrides:
rawGetPositionin classScannableBase- Returns:
- the value represented by this Scannable
- Throws:
DeviceException- See Also:
-
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 classScannableMotionUnitsBase- Returns:
- string as defined above
-
getTrajectoryStepSize
-
setTrajectoryStepSize
-
getHorizontalCrystalOffset
public double getHorizontalCrystalOffset() -
setHorizontalCrystalOffset
public void setHorizontalCrystalOffset(double horizontalOffset) -
setUpperRow
public void setUpperRow(boolean isUpper) -
isUpperRow
public boolean isUpperRow() -
getPositionAngleMultiplier
public double[] getPositionAngleMultiplier() -
getAnalyserDemandPrecision
public double[] getAnalyserDemandPrecision() -
setAnalyserDemandPrecision
public void setAnalyserDemandPrecision(double[] analyserDemandPrecisions) -
getAnalyserPositionTolerance
public double[] getAnalyserPositionTolerance() -
setAnalyserPositionTolerance
public void setAnalyserPositionTolerance(double[] analyserPositionTolerance) -
getDetectorDemandPrecision
public double[] getDetectorDemandPrecision() -
setDetectorDemandPrecision
public void setDetectorDemandPrecision(double[] detectorDemandPrecision) -
getDetectorPositionTolerance
public double[] getDetectorPositionTolerance() -
setDetectorPositionTolerance
public void setDetectorPositionTolerance(double[] detectorPositionTolerance) -
getDirectDemandScannablesMap
-
setDirectDemandScannablesMap
-
getDeferredMoveStartStopGroup
-
setDeferredMoveStartStopGroup
-
isUseDeferredMove
public boolean isUseDeferredMove() -
setUseDeferredMove
public void setUseDeferredMove(boolean useDeferredMove)
-