Package gda.device
Interface Detector
- All Superinterfaces:
Configurable,Device,Findable,gda.observable.IObservable,Scannable
- All Known Subinterfaces:
Analyser,AsynchronousDetector,BufferedDetector,CoboldDetector,CounterTimer,DataLogger,EdeDetector,EpicsAreaDetector,EpicsMcsSis3820,EtlDetector,FrelonDetector,HardwareTriggerableDetector,HardwareTriggeredDetector,HardwareTriggeredNexusXmap,IAravisCamera,IEDXDElement,IEpicsMCA,IEpicsMCASimple,IMythenDetector,IPCODetector,IPixiumDetector,Mar345,Mythen,NcdDetector,NexusDetector,NXPluginDetector,ODCCD,PCO4000,Pilatus,SimulatedBufferedDetector,StripDetector,VariableCollectionTimeDetector,XCHIPDetector,XmapDetector,Xspress3,Xspress3Mini,XspressDetector,XspressFluorescenceDetector
- All Known Implementing Classes:
AbstractKeithley6400Series,AbstractWriteRegionsImmediatelyNXDetector,AceApdDetector,ADCameraDetector,ADCameraDetector,ADCMonitor,ADDetector,AdDetectorExtRoiDraw,ADPco,ADPilatus,AnalyserBase,AndorZylaDetector,AravisCamera,AsciiReaderDetector,BufferedEdeDetector,BufferedNXDetector,BufferedPandaDetector,BufferedScaler,BufferedScannablePositions,CallableTfgScalerWithLogValues,CallableTfgXmap,CallableTfgXspress2,CallableXmap,Cam4Detector,CoboldTDC,CounterTimerBase,DatasetNexusDetector,DataSocketDetector,DetectorBase,DummyBufferedDetector,DummyCoboldTDC,DummyCounterTimer,DummyDetector,DummyEpicsMcaForXmap,DummyEtlDetector,DummyHardwareTriggerableAreaDetector,DummyHardwareTriggerableDetector,DummyHardwareTriggerableDetectorBase,DummyHardwareTriggerableSimpleDetector,DummyHardwareTriggeredDetector,DummyHardwareTriggeredNexusXmap,DummyHardwareTriggerProvider,DummyImageCreator,DummyKeithley2600AverageMode,DummyKeithley2600SweepMode,DummyKeithley6487,DummyMandelbrotMappingDetector,DummyNexusDetector,DummyNXDetector,DummyPilatus,DummyScalarChannelDetector,DummyXmapBufferedDetector,DummyXmapEDXDMappingController,DummyXspress3Detector,DummyXspress3MiniDetector,EdeDetectorBase,EdeDummyDetector,EdeFrelon,EDXD,EDXDController,EDXDControllerQMap,EDXDElement,EDXDMappingController,EDXDMappingElement,EpicsBekhoffAdc,EpicsDetector,EpicsFemtoWithBekhoffAdc,EpicsMCA,EpicsMCA2,EpicsMCACounterTimer,EpicsMCASimple,EpicsMultiChannelScaler,EpicsPilatus,EpicsScaler,EpicsScalerSimple,EpicsScanData,ETLDetector,GeFanuc110BLADC,HardwareTriggerableADDetector,HardwareTriggerableDetectorBase,HardwareTriggeredNexusXmapImpl,HardwareTriggeredNXDetector,HardwareTriggeredNXDetectorWithReadoutTime,HardwareTriggeredNXDetectorWithReadoutTimeAndVariableCollectionTime,HardwareTriggeredXspress3Detector,I21Detector,IPPserver,Keithley2600SeriesAverageMode,Keithley2600SeriesSweepMode,Keithley6487,MbsAnalyser,MerlinDetector,MirrorCommissioningDetector,MjpegDetector,MoveableImageDetector,MythenDetector,MythenDetectorImpl,MythenNexusImpl,NcdDetectorSystem,NexusDetectorProcessor,NexusXmap,NXDetector,NXDetectorSnappingDecorator,ODCCDController,OdinDetector,OfflineCoboldTDC,PandaDetector,PassthroughDetectorWrapper,PCO4000,PCODetector,PixiumNXDetector,PositionStreamingTfgScaler,PulseTube,QexafsFFoverIO,QexafsGMSDOverI0,ReadbackDemandDifference,RoiExtractor,SesoXbpmDetector,ShutterControlledMythenDetectorImpl,SimpleDummyNexusDetector,SpecsPhoibosAnalyser,SpecsPhoibosAnalyserSeparateIterations,SpecsPhoibosSolsticeAnalyser,StepScanEdeDetector,SummingMythenDetector,TFGCounterTimer,TfgEncoderCounter,TfgEpicsMCACounterTimer,TfgFFoverI0,TfgScaler,TfgScalerWithDarkCurrent,TfgScalerWithFrames,TfgScalerWithLogValues,TFGScalerWithRatio,TFGStruck,TFGTriggeredScaler,TfgXmap,TfgXMapFFoverI0,TfgXspress2,TfgXspress2NoCorrection,TfgXspress2Raw,TimeResolvedTFGDetector,VGScientaAnalyser,VGScientaAnalyserCamOnly,VGScientaAnalyserNXDetector,VGScientaAnalyserTotalOnly,VortexDetector,VortexQexafsFFIO,XesIf,XhDetector,Xmap,XmapBufferedDetector,XmapDetectorFromEpicsMca,XmapwithSlaveMode,Xspress2BufferedDetector,Xspress2Detector,Xspress3BufferedDetector,Xspress3Detector,Xspress3FFoverI0BufferedDetector,Xspress3FFoverI0Detector,Xspress3MiniDetector,Xspress3MiniSingleChannelDetector,Xspress3QexafsDetector,Xspress4BufferedDetector,Xspress4Detector,Xspress4OdinDetector,XspressSystem,ZebraExternallyTriggeredDetector
Interface used by ScanBase and its descendents to control data collection from Devices. All devices which need to
appear in scans must implement this interface.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intPossible status value, indicates detector is busy.static final intPossible status value, indicates detector in an error state.static final intPossible status value, indicates detector is idle.static final intPossible status value, equals BUSY but indicates something else toostatic final intPossible status value, indicates detector is busy, but in paused statestatic final intPossible status value, indicates detector is not ready for use or needs configuring.Fields inherited from interface gda.device.Scannable
ATTR_NEXUS_CATEGORY, ATTR_NX_CLASS, DEFAULT_INPUT_NAME, VALUE_UNAVAILABLE -
Method Summary
Modifier and TypeMethodDescriptionvoidTells 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.voidMethod called at the end of collection to tell detector when a scan has finished.doubleReturns the time, in seconds, the detector collects for during the next call to collectData()int[]Returns the dimensions of the data object returned by thereadout()method.default NexusTreeProviderReturns the structure of the file.intReturns the current collecting state of the device.voidMethod called before a scan starts.readout()Returns the latest data collected.voidsetCollectionTime(double time) Sets the collection time, in seconds, to be used during the next call of collectData.voidWait while the detector collects data.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
-
Field Details
-
IDLE
static final int IDLEPossible status value, indicates detector is idle.- See Also:
-
BUSY
static final int BUSYPossible status value, indicates detector is busy.- See Also:
-
PAUSED
static final int PAUSEDPossible status value, indicates detector is busy, but in paused state- See Also:
-
STANDBY
static final int STANDBYPossible status value, indicates detector is not ready for use or needs configuring.- See Also:
-
FAULT
static final int FAULTPossible status value, indicates detector in an error state.- See Also:
-
MONITORING
static final int MONITORINGPossible status value, equals BUSY but indicates something else too- See Also:
-
-
Method Details
-
collectData
Tells 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.- Throws:
DeviceException
-
setCollectionTime
Sets the collection time, in seconds, to be used during the next call of collectData.- Parameters:
time- the collection time in seconds- Throws:
DeviceException
-
getCollectionTime
Returns the time, in seconds, the detector collects for during the next call to collectData()- Returns:
- double
- Throws:
DeviceException
-
getStatus
Returns the current collecting state of the device.- 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
Returns 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. SeewaitWhileBusy()andConcurrentScan. Readout must block until the detector is ready to respond quickly tocollectData()again.- Returns:
- the data collected
- Throws:
DeviceException
-
getFileStructure
Returns the structure of the file. This is only needed if usingNexusScanDataWriter#PROPERTY_NAME_CREATE_FILE_AT_SCAN_STARTis true. If null (default), then the detector is not compatible with this property and will throw an error. This must describe the nexus structure fields that the detector will later write to. *- Returns:
- the nexus file structure
- Throws:
DeviceException
-
waitWhileBusy
Wait while the detector collects data. Should return as soon as the exposure completes and it is safe to move motors. i.e. counts must be safely latched either in hardware or software before returning.- Specified by:
waitWhileBusyin interfaceScannable- Throws:
DeviceExceptionInterruptedException
-
getDataDimensions
Returns the dimensions of the data object returned by thereadout()method.- Returns:
- the dimensions of the data object returned by the
readout()method - Throws:
DeviceException
-
prepareForCollection
Method called before a scan starts. May be used to setup detector for collection, for example MAR345 uses this to erase.Note: it is recommended to not implement this method, but to implement one or both of
Scannable.atScanLineStart()orScannable.atScanStart()instead. Implementing this method may cause issues when the detector class is used in multi-dimensional scans.- Throws:
DeviceException
-
endCollection
Method called at the end of collection to tell detector when a scan has finished. Typically integrating detectors used in powder diffraction do not output until the end of the scan and need to be told when this happens.- Throws:
DeviceException
-
createsOwnFiles
Returns 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.- Returns:
- true if readout() returns filenames
- Throws:
DeviceException
-
getDescription
- Returns:
- A description of the detector.
- Throws:
DeviceException
-
getDetectorID
- Returns:
- A identifier for this detector.
- Throws:
DeviceException
-
getDetectorType
- Returns:
- The type of detector.
- Throws:
DeviceException
-