Package gda.device.panda
Class DataSocketDetector
java.lang.Object
gda.factory.ConfigurableBase
gda.factory.FindableConfigurableBase
gda.device.DeviceBase
gda.device.scannable.ScannableBase
gda.device.detector.DetectorBase
gda.device.panda.DataSocketDetector
- All Implemented Interfaces:
Detector,BufferedDetector,Device,Scannable,Configurable,Findable,gda.observable.IObservable,Serializable
- 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.voidDefault 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.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 outputintintReturns 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.Object[]An array of the data from the detector.Object[]readFrames(int startFrame, int finalFrame) An array of the data from the detector.readout()Returns the latest data collected.voidRe-initialisation of values and states.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 usevoidsetDataFormatString(String dataFormatString) voidsetDataNames(List<String> dataNames) Set the names of the data to be read from the stream.voidsetMaximumReadFrames(int maximumReadFrames) voidsetSocketIpAddress(String socketIpAddress) voidsetSocketPort(int socketPort) voidSet the dataNames to match all available ones present in the stream e.g.Methods inherited from class gda.device.detector.DetectorBase
asynchronousMoveTo, checkPositionValid, endCollection, getCollectionTime, getDataDimensions, getDescription, getDetectorID, getDetectorType, getPosition, isBusy, prepareForCollection, 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
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.Detector
endCollection, getCollectionTime, getDataDimensions, getDescription, getDetectorID, getDetectorType, getFileStructure, prepareForCollection, 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
-
DataSocketDetector
public DataSocketDetector()
-
-
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
-
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:
-
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
-
getDataFormatString
-
setDataFormatString
-
getDataNames
-
setDataNames
Set the names of the data to be read from the stream. These need to match up with the available fields, in the stream or exception will be thrown inreadout()andreadFrames(int, int)- Parameters:
dataNames-
-
getAvailableFieldNames
- Returns:
- List of data field names present in the stream
-
updateDataNamesFromStream
public void updateDataNamesFromStream()Set the dataNames to match all available ones present in the stream e.g. do this after running a scan, so that subsequent scans readout all the data. (Convenience method to avoid doinggetAvailableFieldNames()thensetDataNames(List)) -
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
-
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
-
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
-
setMaximumReadFrames
public void setMaximumReadFrames(int maximumReadFrames) -
getSocketIpAddress
-
setSocketIpAddress
-
getSocketPort
public int getSocketPort() -
setSocketPort
public void setSocketPort(int socketPort)
-