Class Xspress4BufferedDetector

All Implemented Interfaces:
Detector, BufferedDetector, NexusDetector, Device, Scannable, Configurable, Findable, gda.observable.IObservable, Serializable, FluorescenceDetector

See Also:
  • Constructor Details

    • Xspress4BufferedDetector

      public Xspress4BufferedDetector()
  • Method Details

    • clearMemory

      public void clearMemory() throws DeviceException
      Description copied from interface: BufferedDetector
      Clears the detector memory
      Specified by:
      clearMemory in interface BufferedDetector
      Throws:
      DeviceException
    • setContinuousMode

      public void setContinuousMode(boolean on) throws DeviceException
      Description copied from interface: BufferedDetector
      When in slave mode the detector will be triggered by an external signal to collect each frame of data.
      Specified by:
      setContinuousMode in interface BufferedDetector
      Parameters:
      on -
      Throws:
      DeviceException
    • isContinuousMode

      public boolean isContinuousMode() throws DeviceException
      Specified by:
      isContinuousMode in interface BufferedDetector
      Returns:
      true if the detector is ready to accept trigger pulses
      Throws:
      DeviceException
    • setContinuousParameters

      public void setContinuousParameters(ContinuousParameters parameters) throws DeviceException
      Description copied from interface: BufferedDetector
      Sets the parameters which define the continuous movement to use
      Specified by:
      setContinuousParameters in interface BufferedDetector
      Parameters:
      parameters -
      Throws:
      DeviceException
    • getContinuousParameters

      public ContinuousParameters getContinuousParameters()
      Specified by:
      getContinuousParameters in interface BufferedDetector
      Returns:
      ContinuousParameters
    • getNumberFrames

      public int getNumberFrames() throws DeviceException
      Specified by:
      getNumberFrames in interface BufferedDetector
      Returns:
      number of frames of data in memory which have been collected
      Throws:
      DeviceException
    • readFrames

      public NXDetectorData[] readFrames(int startFrame, int finalFrame) throws DeviceException
      Description copied from interface: BufferedDetector
      An array of the data from the detector. Each element is one frame of data. The first frame is 0.
      Specified by:
      readFrames in interface BufferedDetector
      Parameters:
      startFrame -
      finalFrame -
      Returns:
      Object
      Throws:
      DeviceException
    • readAllFrames

      public NXDetectorData[] readAllFrames() throws DeviceException
      Description copied from interface: BufferedDetector
      An array of the data from the detector. Each element is one frame of data.
      Specified by:
      readAllFrames in interface BufferedDetector
      Returns:
      Object
      Throws:
      DeviceException
    • maximumReadFrames

      public int maximumReadFrames() throws DeviceException
      Description copied from interface: BufferedDetector
      As 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:
      maximumReadFrames in interface BufferedDetector
      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 maxFramesToReadAtOnce)
    • getTriggerModeForContinuousScan

      public Xspress4Detector.TriggerMode getTriggerModeForContinuousScan()
    • setTriggerModeForContinuousScan

      public void setTriggerModeForContinuousScan(int intMode) throws DeviceException
      Throws:
      DeviceException
    • setTriggerModeForContinuousScan

      public void setTriggerModeForContinuousScan(Xspress4Detector.TriggerMode triggerModeForContinuousScan)
    • getXspress4Detector

      public Xspress4Detector getXspress4Detector()
    • setXspress4Detector

      public void setXspress4Detector(Xspress4Detector xspressDetector)
    • getCollectionTime

      public double getCollectionTime() throws DeviceException
      Description copied from interface: Detector
      Returns the time, in seconds, the detector collects for during the next call to collectData()
      Specified by:
      getCollectionTime in interface Detector
      Overrides:
      getCollectionTime in class DetectorBase
      Returns:
      double
      Throws:
      DeviceException
    • setCollectionTime

      public void setCollectionTime(double collectionTime) throws DeviceException
      Description copied from interface: Detector
      Sets the collection time, in seconds, to be used during the next call of collectData.
      Specified by:
      setCollectionTime in interface Detector
      Overrides:
      setCollectionTime in class DetectorBase
      Parameters:
      collectionTime - the collection time in seconds
      Throws:
      DeviceException
    • getDataDimensions

      public int[] getDataDimensions() throws DeviceException
      Description copied from class: DetectorBase
      Default which should be overridden by subclasses.
      Specified by:
      getDataDimensions in interface Detector
      Overrides:
      getDataDimensions in class DetectorBase
      Returns:
      the dimensions of the data object returned by the Detector.readout() method
      Throws:
      DeviceException
      See Also:
    • getProtectionLevel

      public int getProtectionLevel()
      Specified by:
      getProtectionLevel in interface Device
      Overrides:
      getProtectionLevel in class DeviceBase
      Returns:
      int - the permission level for this object.
    • endCollection

      public void endCollection() throws DeviceException
      Description copied from class: DetectorBase
      Default which should be overridden by subclasses.
      Specified by:
      endCollection in interface Detector
      Overrides:
      endCollection in class DetectorBase
      Throws:
      DeviceException
      See Also:
    • setProtectionLevel

      public void setProtectionLevel(int permissionLevel)
      Description copied from interface: Device
      Sets the permission level for this object. If this is not set then a default value will be applied.
      Specified by:
      setProtectionLevel in interface Device
      Overrides:
      setProtectionLevel in class DeviceBase
      Parameters:
      permissionLevel -
    • prepareForCollection

      public void prepareForCollection() throws DeviceException
      Description copied from class: DetectorBase
      Default which should be overridden by subclasses.
      Specified by:
      prepareForCollection in interface Detector
      Overrides:
      prepareForCollection in class DetectorBase
      Throws:
      DeviceException
      See Also:
    • atScanStart

      public void atScanStart() throws DeviceException
      Description copied from class: ScannableBase
      Called 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:
      atScanStart in interface Scannable
      Overrides:
      atScanStart in class ScannableBase
      Throws:
      DeviceException
      See Also:
    • asynchronousMoveTo

      public void asynchronousMoveTo(Object collectionTime) throws DeviceException
      Description copied from class: DetectorBase
      Default implementation is to set the collection time and to call the collectData method
      Specified by:
      asynchronousMoveTo in interface Scannable
      Overrides:
      asynchronousMoveTo in class DetectorBase
      Parameters:
      collectionTime - Position to move to should have an element for each input field.
      Throws:
      DeviceException
      See Also:
    • atScanLineStart

      public void atScanLineStart() throws DeviceException
      Description copied from class: ScannableBase
      Called for every Scannable at the start of every scan Default behaviour is to do nothing. Inheriting classes have the option to implement this if their specific behaviour requires it.
      Specified by:
      atScanLineStart in interface Scannable
      Overrides:
      atScanLineStart in class ScannableBase
      Throws:
      DeviceException
      See Also:
    • getPosition

      public Object getPosition() throws DeviceException
      Description copied from class: DetectorBase
      Returns the current position of the Scannable. Called by ConcurentScan at the end of the point. Reads an internal (hardware) position from rawGetPosition, converts this to an external (user) position and returns it. Also, if createsOwnFiles attempts to register the file with all FileRegistrars (primarily for data archiving). Note that this method will be called if the detector is triggered from a 'pos' command but not if the detector is triggered by the scan command (which ignores the detector's scannable interface).
      Specified by:
      getPosition in interface Scannable
      Overrides:
      getPosition in class DetectorBase
      Returns:
      Current position with an element for each input and extra field. null if their are no fields.
      Throws:
      DeviceException
      See Also:
    • reconfigure

      public void reconfigure() throws FactoryException
      Description copied from interface: Configurable
      Re-initialisation of values and states.

      Moved from Reconfigurable which has been deleted

      Specified by:
      reconfigure in interface Configurable
      Overrides:
      reconfigure in class ConfigurableBase
      Throws:
      FactoryException
    • atScanEnd

      public void atScanEnd() throws DeviceException
      Description copied from class: ScannableBase
      Called 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:
      atScanEnd in interface Scannable
      Overrides:
      atScanEnd in class ScannableBase
      Throws:
      DeviceException
      See Also:
    • atPointEnd

      public void atPointEnd() throws DeviceException
      Description copied from class: ScannableBase
      Called 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:
      atPointEnd in interface Scannable
      Overrides:
      atPointEnd in class ScannableBase
      Throws:
      DeviceException
      See Also:
    • close

      public void close() throws DeviceException
      Description copied from interface: Device
      Close and unconfigure the device.
      Specified by:
      close in interface Device
      Overrides:
      close in class DeviceBase
      Throws:
      DeviceException
    • setAttribute

      public void setAttribute(String attributeName, Object value) throws DeviceException
      Description copied from interface: Device
      Set any attribute the implementing classes may provide
      Specified by:
      setAttribute in interface Device
      Overrides:
      setAttribute in class DeviceBase
      Parameters:
      attributeName - is the name of the attribute
      value - is the value of the attribute
      Throws:
      DeviceException - if an attribute cannot be set
    • getAttribute

      public Object getAttribute(String attributeName) throws DeviceException
      Description copied from interface: Device
      Get the value of the specified attribute
      Specified by:
      getAttribute in interface Device
      Overrides:
      getAttribute in class DeviceBase
      Parameters:
      attributeName - is the name of the attribute
      Returns:
      the value of the attribute as an Object type
      Throws:
      DeviceException - if an attribute cannot be retrieved
    • isBusy

      public boolean isBusy() throws DeviceException
      Description copied from class: DetectorBase
      Check if the Scannable is moving/operating. default implementation is to call the getStatus method
      Specified by:
      isBusy in interface Scannable
      Overrides:
      isBusy in class DetectorBase
      Returns:
      true - if operation carried out by moveTo has not completed yet
      Throws:
      DeviceException
      See Also:
    • toFormattedString

      public String toFormattedString()
      Description copied from interface: Scannable
      Returns a string representation of the Scannable and its current position/value/status

      Typically should return:

      name : position

      or for detectors, name : status

      If the position/status cannot be determined, the function should return Scannable.VALUE_UNAVAILABLE in its place.

      Specified by:
      toFormattedString in interface Scannable
      Overrides:
      toFormattedString in class DetectorBase
      Returns:
      string as defined above
    • addIObserver

      public void addIObserver(gda.observable.IObserver observer)
      Specified by:
      addIObserver in interface gda.observable.IObservable
      Overrides:
      addIObserver in class DeviceBase
    • collectData

      public void collectData() throws DeviceException
      Description copied from interface: Detector
      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.
      Specified by:
      collectData in interface Detector
      Throws:
      DeviceException
    • deleteIObserver

      public void deleteIObserver(gda.observable.IObserver observer)
      Specified by:
      deleteIObserver in interface gda.observable.IObservable
      Overrides:
      deleteIObserver in class DeviceBase
    • deleteIObservers

      public void deleteIObservers()
      Specified by:
      deleteIObservers in interface gda.observable.IObservable
      Overrides:
      deleteIObservers in class DeviceBase
    • stop

      public void stop() throws DeviceException
      Description copied from class: ScannableBase
      Stop 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:
      stop in interface Scannable
      Overrides:
      stop in class ScannableBase
      Throws:
      DeviceException
      See Also:
    • getStatus

      public int getStatus() throws DeviceException
      Description copied from interface: Detector
      Returns the current collecting state of the device.
      Specified by:
      getStatus in interface Detector
      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
    • getDescription

      public String getDescription() throws DeviceException
      Specified by:
      getDescription in interface Detector
      Overrides:
      getDescription in class DetectorBase
      Returns:
      A description of the detector.
      Throws:
      DeviceException
    • getDetectorID

      public String getDetectorID() throws DeviceException
      Specified by:
      getDetectorID in interface Detector
      Overrides:
      getDetectorID in class DetectorBase
      Returns:
      A identifier for this detector.
      Throws:
      DeviceException
    • getDetectorType

      public String getDetectorType() throws DeviceException
      Specified by:
      getDetectorType in interface Detector
      Overrides:
      getDetectorType in class DetectorBase
      Returns:
      The type of detector.
      Throws:
      DeviceException
    • createsOwnFiles

      public boolean createsOwnFiles() throws DeviceException
      Description copied from interface: Detector
      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.
      Specified by:
      createsOwnFiles in interface Detector
      Returns:
      true if readout() returns filenames
      Throws:
      DeviceException
    • readout

      public NexusTreeProvider readout() throws DeviceException
      Description copied from interface: Detector
      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_CONCURRENTLY is true then motors may be moved while the detector readouts. The value returned must not be effected by any concurrent motor or shutter movements. See Detector.waitWhileBusy() and ConcurrentScan. Readout must block until the detector is ready to respond quickly to Detector.collectData() again.

      Specified by:
      readout in interface Detector
      Specified by:
      readout in interface NexusDetector
      Returns:
      the data collected
      Throws:
      DeviceException
    • getExtraNames

      public String[] getExtraNames()
      Description copied from interface: Scannable
      Additional names for extra values that returned by getPosition().
      Specified by:
      getExtraNames in interface Scannable
      Overrides:
      getExtraNames in class ScannableBase
      Returns:
      array of names of the extra elements if the array returned by getPosition is larger than the array required by moveTo
    • atPointStart

      public void atPointStart() throws DeviceException
      Description copied from class: ScannableBase
      Called on every Scannable at every data point, for scans which are broken down into individual points (i.e. non-continuous scans) Default behaviour is to do nothing. Inheriting classes have the option to implement this if their specific behaviour requires it.
      Specified by:
      atPointStart in interface Scannable
      Overrides:
      atPointStart in class ScannableBase
      Throws:
      DeviceException
      See Also:
    • atScanLineEnd

      public void atScanLineEnd() throws DeviceException
      Description copied from class: ScannableBase
      Called for every Scannable at the end of every scan Default behaviour is to do nothing. Inheriting classes have the option to implement this if their specific behaviour requires it.
      Specified by:
      atScanLineEnd in interface Scannable
      Overrides:
      atScanLineEnd in class ScannableBase
      Throws:
      DeviceException
      See Also:
    • atLevelStart

      public void atLevelStart() throws DeviceException
      Description copied from class: ScannableBase
      Called by both the pos and scan commands at the start of each subsequent level move on all Scannables that are part that level's movement.

      This provides a useful mechanism for e.g. creating a Scannable that opens a shutter after motors have moved but before a detector is exposed. Default behaviour is to do nothing. Inheriting classes have the option to implement this if their specific behaviour requires it.

      Specified by:
      atLevelStart in interface Scannable
      Overrides:
      atLevelStart in class ScannableBase
      Throws:
      DeviceException
      See Also:
    • atLevelMoveStart

      public void atLevelMoveStart() throws DeviceException
      Description copied from class: ScannableBase
      Called by both the pos and scan commands at the start of each subsequent level move only on Scannables that will be moved as part that level's movement.

      For example "pos a 1 b 2 c 3", will, if a and b have the same level and c a higher level will result in:

       a.atLevelMoveStart()   invalid input: '<'----
       b.atLevelMoveStart()   invalid input: '<'----
       a.asynchronousMoveTo()
       b.asynchronousMoveTo()
       a.waitWhileBusy()
       b.waitWhileBusy()
       c.atLevelMoveStart()   invalid input: '<'----
       c.asynchronousMoveTo()
       c.waitWhileBusy()
       
      This hook is used by CoordinatedMotionScannables. Default behaviour is to do nothing. Inheriting classes have the option to implement this if their specific behaviour requires it.
      Specified by:
      atLevelMoveStart in interface Scannable
      Overrides:
      atLevelMoveStart in class ScannableBase
      Throws:
      DeviceException
      See Also:
    • getMCAData

      public double[][] getMCAData(double time) throws DeviceException
      Description copied from interface: FluorescenceDetector
      Perform a 'snapshot' data collection and return the MCA data. No file writing is involved.
      Specified by:
      getMCAData in interface FluorescenceDetector
      Parameters:
      time - The collection time in milliseconds
      Returns:
      the MCA data as a double array: [detector element][MCA channel]
      Throws:
      DeviceException
    • atLevelEnd

      public void atLevelEnd() throws DeviceException
      Description copied from class: ScannableBase
      Default behaviour is to do nothing. Inheriting classes have the option to implement this if their specific behaviour requires it.
      Specified by:
      atLevelEnd in interface Scannable
      Overrides:
      atLevelEnd in class ScannableBase
      Throws:
      DeviceException
      See Also:
    • atCommandFailure

      public void atCommandFailure() throws DeviceException
      Description copied from class: ScannableBase
      Hook 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 only Scannable.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:
      atCommandFailure in interface Scannable
      Overrides:
      atCommandFailure in class ScannableBase
      Throws:
      DeviceException
      See Also:
    • getInputNames

      public String[] getInputNames()
      Description copied from interface: Scannable
      gets a array of InputNames used by moveTo of this scannable.
      Specified by:
      getInputNames in interface Scannable
      Overrides:
      getInputNames in class ScannableBase
      Returns:
      array of the names of the elements of the object returned by getPosition
    • getLevel

      public int getLevel()
      Description copied from interface: Scannable
      get the operation level of this scannable.
      Specified by:
      getLevel in interface Scannable
      Overrides:
      getLevel in class ScannableBase
      Returns:
      int - the level
    • getOutputFormat

      public String[] getOutputFormat()
      Description copied from interface: Scannable
      Returns an array of strings which are the format strings to use when pretty printing parts of the output
      Specified by:
      getOutputFormat in interface Scannable
      Overrides:
      getOutputFormat in class ScannableBase
      Returns:
      string array
    • moveTo

      public void moveTo(Object position) throws DeviceException
      Description copied from class: ScannableBase
      Trigger a move/operation and block until completion. If this is overridden, asynchronousMoveTo must also be valid, and the externalToInternal conversion must be applied.
      Specified by:
      moveTo in interface Scannable
      Overrides:
      moveTo in class ScannableBase
      Parameters:
      position -
      Throws:
      DeviceException
    • setExtraNames

      public void setExtraNames(String[] names)
      Description copied from interface: Scannable
      Sets the array of names returned by getExtraNames of this scannable.
      Specified by:
      setExtraNames in interface Scannable
      Overrides:
      setExtraNames in class ScannableBase
      Parameters:
      names -
    • setInputNames

      public void setInputNames(String[] names)
      Description copied from interface: Scannable
      sets the array of names returned by getInputNames method of this scannable.
      Specified by:
      setInputNames in interface Scannable
      Overrides:
      setInputNames in class ScannableBase
      Parameters:
      names -
    • setLevel

      public void setLevel(int level)
      Description copied from interface: Scannable
      Used for ordering the operations of Scannables during scans
      Specified by:
      setLevel in interface Scannable
      Overrides:
      setLevel in class ScannableBase
      Parameters:
      level -
    • setOutputFormat

      public void setOutputFormat(String[] names)
      Description copied from interface: Scannable
      Sets the array of strings describing how best to format the positions from this scannable
      Specified by:
      setOutputFormat in interface Scannable
      Overrides:
      setOutputFormat in class ScannableBase
      Parameters:
      names -
    • waitWhileBusy

      public void waitWhileBusy() throws DeviceException, InterruptedException
      Description copied from class: ScannableBase
      Returns 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:
      waitWhileBusy in interface Detector
      Specified by:
      waitWhileBusy in interface Scannable
      Overrides:
      waitWhileBusy in class ScannableBase
      Throws:
      DeviceException
      InterruptedException
    • isAt

      public boolean isAt(Object positionToTest) throws DeviceException
      Description copied from class: ScannableBase
      Tests if the scannable is at (or if appropriate, close to) the value positionToTest. If positionToTest is a string (as will be the case for valves or pneumatics for example), this is compared to the value obtained from getPosition(). An exception is thrown if this is not also a string.

      Otherwise if positionToTest is not a string the object is compared to the value from getPosition(), after having first pushed both values through objectToArray() from ScannableUtils.

      This behaviour should be extended where possible, and has been in ScannableMotionBase

      Specified by:
      isAt in interface Scannable
      Overrides:
      isAt in class ScannableBase
      Parameters:
      positionToTest - The position to compare the scannable's position to.
      Returns:
      true if scannable is at positionToTest
      Throws:
      DeviceException
      See Also:
    • getController

      public Xspress4Controller getController()
    • getNumberOfElements

      public int getNumberOfElements()
      Specified by:
      getNumberOfElements in interface FluorescenceDetector
      Returns:
      The number of detector elements (sometimes also called channels but this risks confusion with the channels which make up the MCA)
    • getMCASize

      public int getMCASize()
      Specified by:
      getMCASize in interface FluorescenceDetector
      Returns:
      The number of channels in the MCA (Multi-Channel Analyser)
    • getMaxNumberOfRois

      public int getMaxNumberOfRois()
      Specified by:
      getMaxNumberOfRois in interface FluorescenceDetector
      Returns:
      The maximum number of ROIs per channel
    • applyConfigurationParameters

      public void applyConfigurationParameters(FluorescenceDetectorParameters parameters) throws Exception
      Description copied from interface: FluorescenceDetector
      Configure the detector using the given parameters
      Specified by:
      applyConfigurationParameters in interface FluorescenceDetector
      Parameters:
      parameters -
      Throws:
      Exception
    • getConfigurationParameters

      public FluorescenceDetectorParameters getConfigurationParameters()
      Specified by:
      getConfigurationParameters in interface FluorescenceDetector
      Returns:
      The current detector configuration
    • isWriteHDF5Files

      public boolean isWriteHDF5Files()
      Specified by:
      isWriteHDF5Files in interface FluorescenceDetector
      Returns:
      true if detector creates an HDF5 file during a scan. This is normally created by Epics via the HDF plugin of the area detector.
    • setWriteHDF5Files

      public void setWriteHDF5Files(boolean writeHdfFiles)
      Description copied from interface: FluorescenceDetector
      Set to true to configure the detector to write an HDF5 file during a scan.
      Specified by:
      setWriteHDF5Files in interface FluorescenceDetector
      Parameters:
      writeHdfFiles -
    • getPathToAttributeDataGroup

      public String getPathToAttributeDataGroup()
    • setPathToAttributeDataGroup

      public void setPathToAttributeDataGroup(String pathToAttributeDataGroup)
    • getScalerDataNameFormat

      public String getScalerDataNameFormat()
    • setScalerDataNameFormat

      public void setScalerDataNameFormat(String scalerDataNameFormat)
    • getDtcFactorDataNameFormat

      public String getDtcFactorDataNameFormat()
    • setDtcFactorDataNameFormat

      public void setDtcFactorDataNameFormat(String dtcFactorDataNameFormat)
    • setTwoDHdfData

      public void setTwoDHdfData(boolean twoD)
    • isTwoDHdfData

      public boolean isTwoDHdfData()
    • getDataProvider

      public XspressDataProvider getDataProvider()
    • isUseSwmrFileReading

      public boolean isUseSwmrFileReading()
    • setUseSwmrFileReading

      public void setUseSwmrFileReading(boolean useSwmrFileReading)
    • isUseNexusTreeWriter

      public boolean isUseNexusTreeWriter()
    • setUseNexusTreeWriter

      public void setUseNexusTreeWriter(boolean useNexusTreeWriter)
    • setDetectorNexusFilename

      public void setDetectorNexusFilename(String detectorNexusFilename)
    • getDetectorNexusFilename

      public String getDetectorNexusFilename()
    • getDeadtimeCorrectionFactors

      public double[] getDeadtimeCorrectionFactors() throws DeviceException
      Specified by:
      getDeadtimeCorrectionFactors in interface FluorescenceDetector
      Returns:
      An array of 'deadtime correction' factor values (one for each element of the detector)
      Throws:
      DeviceException
    • getMinFramesBeforeHdfRead

      public int getMinFramesBeforeHdfRead()
    • setMinFramesBeforeHdfRead

      public void setMinFramesBeforeHdfRead(int minFramesBeforeHdfRead)
    • isCalculateDtcFactors

      public boolean isCalculateDtcFactors()
    • setCalculateDtcFactors

      public void setCalculateDtcFactors(boolean calculateDtcFactors)
    • isUseHdfFileNumFrames

      public boolean isUseHdfFileNumFrames()
    • setUseHdfFileNumFrames

      public void setUseHdfFileNumFrames(boolean useFrameWriterNumFrames)
      Set to true to use number of frame written to Hdf file in getNumberFrames() Otherwise number of captured frames in Hdf plugin will be used (via XspressPvName.NUM_CAPTURED_RBV)
      Parameters:
      useFrameWriterNumFrames -