Class Xspress3QexafsDetector
java.lang.Object
gda.factory.ConfigurableBase
gda.factory.FindableConfigurableBase
gda.device.DeviceBase
gda.device.scannable.ScannableBase
gda.device.detector.DetectorBase
uk.ac.gda.devices.detector.xspress3.Xspress3QexafsDetector
- All Implemented Interfaces:
Detector,BufferedDetector,Device,Scannable,Configurable,Findable,gda.observable.IObservable,Serializable
Single detector class solution for QEXAFS. This solves some timing issues
arising when using three separate detector classes (e.g. Xspress3QexafsDetector invalid input: '&'
Xspress3BufferedDetectorv2 invalid input: '&' BufferedDetector) especially related to readout of data
from Xspress3 HDF file.
- See Also:
-
Field Summary
Fields inherited from class gda.device.detector.DetectorBase
collectionTimeFields 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 TypeMethodDescriptionvoidCalled for every Scannable at the start of a group of nested scans (or a single scan if that is the case)voidClears the detector memoryvoidTells the detector to begin to collect a set of data, then returns immediately.booleanReturns a value which indicates whether the detector creates its own files.String[]Additional names for extra values that returned by getPosition().intString[]Returns an array of strings which are the format strings to use when pretty printing parts of the outputintReturns the current collecting state of the device.booleanintAs certain detectors may cause memory issues if too many frames are attempted to be read in one go, this is the maximum for this detector based on its current configuration (i.e.voidDefault which should be overridden by subclasses.Object[]An array of the data from the detector.readFrames(int startFrame, int finalFrame) An array of the data from the detector.readout()Returns the latest data collected.voidsetContinuousMode(boolean on) When in slave mode the detector will be triggered by an external signal to collect each frame of data.voidsetContinuousParameters(ContinuousParameters parameters) Sets the parameters which define the continuous movement to usevoidsetQexafsScaler(BufferedScaler scaler) voidsetQexafsXspress(Xspress3BufferedDetector qexafsXspress) Methods inherited from class gda.device.detector.DetectorBase
asynchronousMoveTo, checkPositionValid, endCollection, getCollectionTime, getDataDimensions, getDescription, getDetectorID, getDetectorType, getPosition, isBusy, setCollectionTime, toFormattedStringMethods inherited from class gda.device.scannable.ScannableBase
__call__, __call__, __doc__, __getitem__, __len__, __repr__, __str__, atCommandFailure, atLevelEnd, atLevelMoveStart, atLevelStart, atPointEnd, atPointStart, atScanEnd, atScanLineEnd, atScanLineStart, externalToInternal, getInputNames, getLevel, getScanMetadataAttribute, getScanMetadataAttributeNames, getScanMetadataAttributes, internalToExternal, isAt, moveTo, rawAsynchronousMoveTo, 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
configure, 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
configure, isConfigureAtStartup, isConfigured, reconfigureMethods inherited from interface gda.device.Detector
endCollection, getCollectionTime, getDataDimensions, getDescription, getDetectorID, getDetectorType, getFileStructure, setCollectionTime, waitWhileBusyMethods 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, checkPositionValid, getInputNames, getLevel, getPosition, getScanMetadataAttribute, getScanMetadataAttributeNames, getScanMetadataAttributes, isAt, isBusy, moveTo, setExtraNames, setInputNames, setLevel, setOutputFormat, setScanMetadataAttribute, setScanMetadataAttributes, stop, toFormattedString
-
Constructor Details
-
Xspress3QexafsDetector
public Xspress3QexafsDetector()
-
-
Method Details
-
setQexafsXspress
-
setQexafsScaler
-
getExtraNames
Description copied from interface:ScannableAdditional names for extra values that returned by getPosition().- Specified by:
getExtraNamesin interfaceScannable- Overrides:
getExtraNamesin classScannableBase- Returns:
- array of names of the extra elements if the array returned by getPosition is larger than the array required by moveTo
-
getOutputFormat
Description copied from interface:ScannableReturns an array of strings which are the format strings to use when pretty printing parts of the output- Specified by:
getOutputFormatin interfaceScannable- Overrides:
getOutputFormatin classScannableBase- Returns:
- string array
-
atScanStart
Description copied from class:ScannableBaseCalled for every Scannable at the start of a group of nested scans (or a single scan if that is the case) Default behaviour is to do nothing. Inheriting classes have the option to implement this if their specific behaviour requires it.- Specified by:
atScanStartin interfaceScannable- Overrides:
atScanStartin classScannableBase- Throws:
DeviceException- See Also:
-
prepareForCollection
Description copied from class:DetectorBaseDefault which should be overridden by subclasses.- Specified by:
prepareForCollectionin interfaceDetector- Overrides:
prepareForCollectionin classDetectorBase- Throws:
DeviceException- See Also:
-
readFrames
Description copied from interface:BufferedDetectorAn array of the data from the detector. Each element is one frame of data. The first frame is 0.- Specified by:
readFramesin interfaceBufferedDetector- Parameters:
startFrame-finalFrame-- Returns:
- Object
- Throws:
DeviceException
-
collectData
Description copied from interface:DetectorTells the detector to begin to collect a set of data, then returns immediately. Should cause the hardware to start collecting immediately: if there is any delay then detectors used in the same scan would collect over different times when beam conditions may differ.- Specified by:
collectDatain interfaceDetector- Throws:
DeviceException
-
getStatus
Description copied from interface:DetectorReturns the current collecting state of the device.- Specified by:
getStatusin interfaceDetector- Returns:
- BUSY if the detector has not finished the requested operation(s), IDLE if in an completely idle state and STANDBY if temporarily suspended.
- Throws:
DeviceException
-
readout
Description copied from interface:DetectorReturns the latest data collected. The size of the Object returned must be consistent with the values returned by getDataDimensions and getExtraNames.If
LocalProperties.GDA_SCAN_CONCURRENTSCAN_READOUT_CONCURRENTLYis true then motors may be moved while the detector readouts. The value returned must not be effected by any concurrent motor or shutter movements. SeeDetector.waitWhileBusy()andConcurrentScan. Readout must block until the detector is ready to respond quickly toDetector.collectData()again.- Specified by:
readoutin interfaceDetector- Returns:
- the data collected
- Throws:
DeviceException
-
createsOwnFiles
Description copied from interface:DetectorReturns a value which indicates whether the detector creates its own files. If it does (return true) the readout() method returns the name of the latest file created as a string. If it does not (return false) the readout() method will return the data directly.- Specified by:
createsOwnFilesin interfaceDetector- Returns:
- true if readout() returns filenames
- Throws:
DeviceException
-
clearMemory
Description copied from interface:BufferedDetectorClears the detector memory- Specified by:
clearMemoryin interfaceBufferedDetector- Throws:
DeviceException
-
setContinuousMode
Description copied from interface:BufferedDetectorWhen in slave mode the detector will be triggered by an external signal to collect each frame of data.- Specified by:
setContinuousModein interfaceBufferedDetector- Parameters:
on-- Throws:
DeviceException
-
isContinuousMode
- Specified by:
isContinuousModein interfaceBufferedDetector- Returns:
- true if the detector is ready to accept trigger pulses
- Throws:
DeviceException
-
setContinuousParameters
Description copied from interface:BufferedDetectorSets the parameters which define the continuous movement to use- Specified by:
setContinuousParametersin interfaceBufferedDetector- Parameters:
parameters-- Throws:
DeviceException
-
getContinuousParameters
- Specified by:
getContinuousParametersin interfaceBufferedDetector- Returns:
- ContinuousParameters
- Throws:
DeviceException
-
getNumberFrames
- Specified by:
getNumberFramesin interfaceBufferedDetector- Returns:
- number of frames of data in memory which have been collected
- Throws:
DeviceException
-
readAllFrames
Description copied from interface:BufferedDetectorAn array of the data from the detector. Each element is one frame of data.- Specified by:
readAllFramesin interfaceBufferedDetector- Returns:
- Object
- Throws:
DeviceException
-
maximumReadFrames
Description copied from interface:BufferedDetectorAs certain detectors may cause memory issues if too many frames are attempted to be read in one go, this is the maximum for this detector based on its current configuration (i.e. after setContinuousMode(True) has been called.The lowest value returned from any of the detectors in a continuous scan will be the limit set.
If there is no limit then this method should return Integer.MAX_VALUE.
- Specified by:
maximumReadFramesin interfaceBufferedDetector- Returns:
- int - the maximum number of frames which should be read at any one time from this detector
- Throws:
DeviceException
-