Class AbstractKeithley6400Series
- All Implemented Interfaces:
Detector,NexusDetector,Device,Scannable,Configurable,Findable,gda.observable.IObservable
- Direct Known Subclasses:
DummyKeithley6487,Keithley6487
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final Stringprotected static final Stringprotected static final Stringprotected final ArrayList<DetectorDataEntry<?>> protected HashMap<String, DetectorDataEntry<?>> protected static final Stringprotected booleanprotected static final Stringprotected static final Stringprotected static final Stringprotected Future<?> protected longprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final StringFields 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 TypeMethodDescriptionvoidHook to be used by Scan and pos commands to inform the Scannable that an exception, such as a DeviceExcpetion, has occurred.voidCalled on every Scannable at the end of every data point, for scans which are broken down into individual points (i.e.voidCalled for every Scannable at the end of a group of nested scans (or a single scan if that is the case).voidCalled for every Scannable at the start of a group of nested scans (or a single scan if that is the case)voidTells 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.protected voiddoubleReturns the time, in seconds, the detector collects for during the next call to collectData()abstract doubleint[]Returns the dimensions of the data object returned by theDetector.readout()method.protected NexusTreeProviderReturns the structure of the file.abstract Stringabstract doublelongintReturns the current collecting state of the device.intbooleanisBusy()Check if the Scannable is moving/operating.protected abstract booleanvoidMethod called before a scan starts.voidrawAsynchronousMoveTo(Object position) [Consider abstract] Trigger a move/operation to an internal/hardware position and return immediately.Return readback rate and current in a "pos" commandvoidsetBasePVName(String basePVName) voidsetCollectionTime(double time) Set readback rate here instead of exposure time in scan command "scan detector exposure"protected voidsetDetectorDataEntryMap(HashMap<?, ?>... data) protected voidsetOutputDemandAndWaitToSettle(double demand) abstract voidsetReadbackRate(double demand) voidsetSettleTimeMs(long settleTimeMs) voidsetStatus(int status) protected voidvoidsetWaitWhileBusySleepTime(int waitWhileBusySleepTime) voidstop()Stop the current move/operation.Returns a string representation of the Scannable and its current position/value/statusprotected voidvoidReturns when operation carried out by moveTo has completedMethods inherited from class gda.device.scannable.ScannableBase
__call__, __call__, __doc__, __getitem__, __len__, __repr__, __str__, asynchronousMoveTo, atLevelEnd, atLevelMoveStart, atLevelStart, atPointStart, atScanLineEnd, atScanLineStart, checkPositionValid, externalToInternal, getExtraNames, getInputNames, getLevel, getOutputFormat, getPosition, getScanMetadataAttribute, getScanMetadataAttributeNames, getScanMetadataAttributes, internalToExternal, isAt, moveTo, setExtraNames, setInputNames, setLevel, setOutputFormat, setScanMetadataAttribute, setScanMetadataAttributes, throwExceptionIfInvalidTarget, toString, validateScannable, valueUnavailableString, 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.Device
close, getAttribute, getProtectionLevel, setAttribute, setProtectionLevelMethods inherited from interface gda.observable.IObservable
addIObserver, deleteIObserver, deleteIObserversMethods inherited from interface gda.device.detector.NexusDetector
readoutMethods inherited from interface gda.device.Scannable
asynchronousMoveTo, atLevelEnd, atLevelMoveStart, atLevelStart, atPointStart, atScanLineEnd, atScanLineStart, checkPositionValid, getExtraNames, getInputNames, getLevel, getOutputFormat, getPosition, getScanMetadataAttribute, getScanMetadataAttributeNames, getScanMetadataAttributes, isAt, moveTo, setExtraNames, setInputNames, setLevel, setOutputFormat, setScanMetadataAttribute, setScanMetadataAttributes
-
Field Details
-
settleTimeMs
protected long settleTimeMs -
isFirstPoint
protected boolean isFirstPoint -
setting
-
detectorDataEntryList
-
detectorDataEntryMap
-
dataMapToWrite
-
plottableValueDetectorData
-
DAMPING
- See Also:
-
VOLTAGE_SOURCE_VALUE
- See Also:
-
CURRENT
- See Also:
-
VOLTAGE_SOURCE_READBACK_RATE
- See Also:
-
VOLTAGE_SOURCE_INTERLOCK_STATUS
- See Also:
-
VOLTAGE_SOURCE_INTERLOCK
- See Also:
-
VOLTAGE_SOURCE_CURRENT_LIMIT
- See Also:
-
VOLTAGE_SOURCE_RANGE
- See Also:
-
VOLTAGE_SOURCE_SETPOINT
- See Also:
-
VOLTAGE_SOURCE_READING
- See Also:
-
VOLTAGE_SOURCE_ENABLED
- See Also:
-
LOCAL_CONTROLS
- See Also:
-
FILTER
- See Also:
-
RANGE
- See Also:
-
AUTORANGE
- See Also:
-
ZERO_CHECK
- See Also:
-
READBACK_RATE
- See Also:
-
perScanDetectorData
-
-
Constructor Details
-
AbstractKeithley6400Series
public AbstractKeithley6400Series()
-
-
Method Details
-
getCollectionTimeS
- Throws:
DeviceException
-
getReadbackRate
- Throws:
DeviceException
-
setReadbackRate
- Throws:
DeviceException
-
getReading
- Throws:
DeviceException
-
isDisabled
- Throws:
DeviceException
-
getBasePVName
-
setBasePVName
-
setCollectionTime
Set readback rate here instead of exposure time in scan command "scan detector exposure"- Specified by:
setCollectionTimein interfaceDetector- Parameters:
time- the collection time in seconds- Throws:
DeviceException
-
getCollectionTime
Description copied from interface:DetectorReturns the time, in seconds, the detector collects for during the next call to collectData()- Specified by:
getCollectionTimein interfaceDetector- Returns:
- double
- Throws:
DeviceException
-
rawGetPosition
Return readback rate and current in a "pos" command- Overrides:
rawGetPositionin classScannableBase- Returns:
- the value represented by this Scannable
- 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
-
failure
-
waitWhileBusy
Description copied from class:ScannableBaseReturns when operation carried out by moveTo has completed If this is to be overriden, isBusy must also be valid. Although the pos and scan command currently use this method to determine if the Scannable is busy, this must not be relied upon.- Specified by:
waitWhileBusyin interfaceDetector- Specified by:
waitWhileBusyin interfaceScannable- Overrides:
waitWhileBusyin classScannableBase- Throws:
DeviceExceptionInterruptedException
-
waitForSettling
protected void waitForSettling() -
setOutputDemandAndWaitToSettle
protected void setOutputDemandAndWaitToSettle(double demand) -
setupNamesAndFormat
protected void setupNamesAndFormat() -
getDataDimensions
Description copied from interface:DetectorReturns the dimensions of the data object returned by theDetector.readout()method.- Specified by:
getDataDimensionsin interfaceDetector- Returns:
- the dimensions of the data object returned by the
Detector.readout()method - Throws:
DeviceException
-
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:
-
isBusy
Description copied from interface:ScannableCheck if the Scannable is moving/operating.- Specified by:
isBusyin interfaceScannable- Returns:
- true - if operation carried out by moveTo has not completed yet
- Throws:
DeviceException
-
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:
-
atScanEnd
Description copied from class:ScannableBaseCalled for every Scannable at the end of a group of nested scans (or a single scan if that is the case).Note that this is only called if the Scan finishes normally, or has been requested to finish early. This will not be called if the scan finishes due to an exception of any kind. See
Scannable.atCommandFailure()Default behaviour is to do nothing. Inheriting classes have the option to implement this if their specific behaviour requires it.- Specified by:
atScanEndin interfaceScannable- Overrides:
atScanEndin classScannableBase- Throws:
DeviceException- See Also:
-
atPointEnd
Description copied from class:ScannableBaseCalled on every Scannable at the end of every data point, for scans which are broken down into individual points (i.e. non-continous scans) Default behaviour is to do nothing. Inheriting classes have the option to implement this if their specific behaviour requires it.- Specified by:
atPointEndin interfaceScannable- Overrides:
atPointEndin classScannableBase- Throws:
DeviceException- See Also:
-
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 classScannableBase- Throws:
DeviceException- See Also:
-
atCommandFailure
Description copied from class:ScannableBaseHook to be used by Scan and pos commands to inform the Scannable that an exception, such as a DeviceExcpetion, has occurred. However not called when the command is aborted using an InterruptionException. If a Scan is aborted then onlyScannable.stop()will be called by the Scan or pos command.Useful for telling Scannables which hold state during a scan for example, to reset themselves. Used for example by CoordinatedMotionScannables. This hook should be used not in the same way as the stop hook. Default behaviour is to do nothing. Inheriting classes have the option to implement this if their specific behaviour requires it.
- Specified by:
atCommandFailurein interfaceScannable- Overrides:
atCommandFailurein classScannableBase- Throws:
DeviceException- See Also:
-
getDescription
- Specified by:
getDescriptionin interfaceDetector- Returns:
- A description of the detector.
-
prepareForCollection
Description copied from interface:DetectorMethod 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.- Specified by:
prepareForCollectionin interfaceDetector- Throws:
DeviceException
-
endCollection
Description copied from interface:DetectorMethod 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.- Specified by:
endCollectionin 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
-
setStatus
public void setStatus(int status) -
getSettleTimeMs
public long getSettleTimeMs() -
setSettleTimeMs
public void setSettleTimeMs(long settleTimeMs) -
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
-
getWaitWhileBusySleepTime
public int getWaitWhileBusySleepTime() -
setWaitWhileBusySleepTime
public void setWaitWhileBusySleepTime(int waitWhileBusySleepTime) -
getDetectorID
- Specified by:
getDetectorIDin interfaceDetector- Returns:
- A identifier for this detector.
- Throws:
DeviceException
-
getDetectorType
- Specified by:
getDetectorTypein interfaceDetector- Returns:
- The type of detector.
- Throws:
DeviceException
-
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 classScannableBase- Returns:
- string as defined above
-
getFileStructure
Description copied from interface:DetectorReturns 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. *- Specified by:
getFileStructurein interfaceDetector- Returns:
- the nexus file structure
- Throws:
DeviceException
-
setDetectorDataEntryMap
-
getDetectorData
-
getPlottableValueDetectorData
-