Package gda.device
Interface ScannableMotion
- All Superinterfaces:
Configurable,Device,Findable,gda.observable.IObservable,Scannable
- All Known Subinterfaces:
ContinuouslyScannable,IAirBearingScannableMotor,IScannableMotor,IScannableMotorObservable,ITweakableScannableMotor,IXesEnergyScannable,IXesSpectrometerScannable,ScannableMotionUnits,SimulatedContinuouslyScannable
- All Known Implementing Classes:
AbsorptionCoefficient,AirBearingScannableMotor,B18EnergyScannable,BeamlineWavelength,BeamSize,BeforeAfterScannable,BeforeAfterScannables,BeforeCheckScannable,CalibratedAmplifier,CircHklScannable,ConicHklScannable,ConicIndexScannable,ConicThScannable,ControllerScannable,ConvertorScannable,CoupledScannable,Crystal1PitchScannable,CVScan,CVScan,DataReductionScannable,DeferredScannable,DoseCalculator,DummyConstantVelocityRasterScannable,DummyContinuouslyScannable,DummyControlPoint,DummyMultiFieldUnitsScannable,DummyPersistentScannable,DummyPersistentUnitsScannable,DummyRealPositionReader,DummyScannable,DummyScannableFieldScannableMotion,DummyScannableMotor,DummyTemp,DummyTemperature,DummyUnitsScannable,EndstationPhotonEnergyProvider,EpicsControlPoint,EpicsControlPointWithStatus,EpicsScannable,Eurotherm2K,GapControlCheckingEnergyController,GdaLakeshore340,HklScannable,I18SampleFocusScannable,I23FluoScanEnergyControllerWrapper,IdealBaseX,JohannSpectrometer,JythonEnumPositionerWrapper,JythonScannableWrapper,KeyenceLightScannable,Lakeshore340With4Outputs,Lauda,LinkamCI,LinkamT95,Marlow,MonoMoveWithOffsetScannable,MultiPVScannable,OxfordCryostream700,ParametrisedHklScannable,PassthroughScannableMotionUnitsDecorator,PIE725ConstantVelocityRasterScannable,PIE725ConstantVelocityRasterScannable3Axis,QexafsScannable,QexafsTestingScannable,QueuedScriptDrivenScannableMotionUnits,SampleXYZAxis,ScannableAttenuatorWedge,ScannableMotionBase,ScannableMotionUnitsBase,ScannableMotionUnitsObservableWrapper,ScannableMotionWithScannableFieldsBase,ScannableMotionWithScannableFieldsBase.ScannableField,ScannableMotor,ScannableRotatingGonio,ScanResetDummyUnitScannable,ScriptDrivenScannableMotionUnits,SequentialScannable,SimpleEpicsTemperatureController,SmarGonScannableMotor,TemperatureBase,TrajectoryScannableMotor,TurboXasScannable,TweakableScannableMotor,TwoJawSlitGap,TwoJawSlitPosition,VmxmJacksPiezoScannable,XESEnergyScannable,XesSpectrometerScannable,XesSpectrometerScannableBase,ZebraQexafsScannable,ZebraScannableMotor,ZebraScannableMotorForQexafs
Interface for any object which operates in scans and represents a value or array of numbers. This could be a physical
value such as motor positions or sample environment attribute, or something abstract such as time.
This extends the Scannable interface with methods relating to an array of limits. These are user limits which can be changed dynamically at runtime and are in addition to any hard limits or those held at another level of software
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe attribute to ask for to get the effective limits of the first input of the Scannable.Fields inherited from interface gda.device.Scannable
ATTR_NEXUS_CATEGORY, ATTR_NX_CLASS, DEFAULT_INPUT_NAME, VALUE_UNAVAILABLE -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidcheckPositionWithinGdaLimits(Double[] externalPosition) Returns null if okay, or a descriptive error if not.checkPositionWithinGdaLimits(Object externalPosition) Returns null if okay, or a descriptive error if not.Double[]Get lower Scannable limits in external representation.intThis is the number of times the Scannable should attempt to move to the target position.Double[]Returns offset(s) in amounts of external quantities.Double[]Returns scaling factor(s) as Doubles.Double[]Gets the scannables values of tolerance.Double[]Get upper Scannable limits in external representationvoidvoidsetLowerGdaLimits(Double externalLowerLim) Set lower Scannable limit in external representation.voidsetLowerGdaLimits(Double[] externalLowerLim) Set lower Scannable limits in external representation.voidsetNumberTries(int numberTries) voidSet offset(s) in amounts of external quantities.voidsetScalingFactor(Double... scaleArray) Set scaling factor(s) as Doubles.voidsetTolerance(Double tolerence) voidsetTolerances(Double[] tolerence) voidsetUpperGdaLimits(Double externalUpperLim) Set upper Scannable limit in external representation.voidsetUpperGdaLimits(Double[] externalUpperLim) Set upper Scannable limits in external representation.Methods 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
asynchronousMoveTo, atCommandFailure, atLevelEnd, atLevelMoveStart, atLevelStart, atPointEnd, atPointStart, atScanEnd, atScanLineEnd, atScanLineStart, atScanStart, checkPositionValid, getExtraNames, getInputNames, getLevel, getOutputFormat, getPosition, getScanMetadataAttribute, getScanMetadataAttributeNames, getScanMetadataAttributes, isAt, isBusy, moveTo, setExtraNames, setInputNames, setLevel, setOutputFormat, setScanMetadataAttribute, setScanMetadataAttributes, stop, toFormattedString, waitWhileBusy
-
Field Details
-
FIRSTINPUTLIMITS
The attribute to ask for to get the effective limits of the first input of the Scannable. Returns Double[2]. The array or individual entries could be null to indicate no limit.- See Also:
-
-
Method Details
-
checkPositionWithinGdaLimits
Returns null if okay, or a descriptive error if not. Code only called if limits are set.- Parameters:
externalPosition- position in external representation- Returns:
- null if okay, or a descriptive error if not
-
checkPositionWithinGdaLimits
Returns null if okay, or a descriptive error if not. Code only called if limits are set.- Parameters:
externalPosition- position in external representation- Returns:
- null or description of any error
-
setLowerGdaLimits
Set lower Scannable limits in external representation. Setting the input null will remove lower limits from the Scannable. Otherwise, any element can be null indicating that the corresponding field has no limit.- Parameters:
externalLowerLim- limit in external representation- Throws:
Exception
-
setLowerGdaLimits
Set lower Scannable limit in external representation. Setting the input null will remove the lower limit from the Scannable.- Parameters:
externalLowerLim- limit in external representation- Throws:
Exception
-
getLowerGdaLimits
Double[] getLowerGdaLimits()Get lower Scannable limits in external representation. Will be null if no lower limits are set. Otherwise, any element can be null indicating that the corresponding field has no limit.- Returns:
- Double[] limit in external representation
-
setUpperGdaLimits
Set upper Scannable limits in external representation. Setting the input null will remove upper limits from the Scannable. Otherwise, any element can be null indicating that the corresponding field has no limit.- Parameters:
externalUpperLim- limit in external representation- Throws:
Exception
-
setUpperGdaLimits
Set upper Scannable limit in external representation. Setting the input null will remove the upper limit from the Scannable.- Parameters:
externalUpperLim- limit in external representation- Throws:
Exception
-
getUpperGdaLimits
Double[] getUpperGdaLimits()Get upper Scannable limits in external representation- Returns:
- Double[] limit in external representation
-
getTolerances
Gets the scannables values of tolerance. If no values have been set then returns an array of zeros. This is for 'real world' motors which may not move to their desired location and do not throw an exception.- Returns:
- Double[]
- Throws:
DeviceException
-
setTolerance
- Parameters:
tolerence-- Throws:
DeviceException
-
setTolerances
- Parameters:
tolerence-- Throws:
DeviceException
-
getNumberTries
int getNumberTries()This is the number of times the Scannable should attempt to move to the target position. Useful when the underlying hardware is problematic and often fails or ignores calls without throwing an exception. This should be used in conjunction with setting the tolerance attribute.- Returns:
- the numberTries
-
setNumberTries
void setNumberTries(int numberTries) - Parameters:
numberTries- the numberTries to set
-
a
- Throws:
DeviceException
-
ar
- Throws:
DeviceException
-
r
- Throws:
DeviceException
-
setOffset
Set offset(s) in amounts of external quantities. May be null, or any element may be null, indicating no offset is to be applied/removed.- Parameters:
offsetArray- must match number of input fields.
-
setScalingFactor
Set scaling factor(s) as Doubles. May be null, or any element may be null, indicating no scale is to be applied/removed.- Parameters:
scaleArray- must match number of input fields.
-
getOffset
Double[] getOffset()Returns offset(s) in amounts of external quantities. May be null, or any element may be null, indicating no offset is to be applied/removed. -
getScalingFactor
Double[] getScalingFactor()Returns scaling factor(s) as Doubles. May be null, or any element may be null, indicating no scale is to be applied/removed.
-