Interface IElectronAnalyser

All Superinterfaces:
Configurable, Device, Findable, gda.observable.IObservable
All Known Subinterfaces:
IDitherScanningElectronAnalyser, IDitherScanningElectronAnalyserWithDeflector, IMbsAnalyser, IVGScientaAnalyserRMI
All Known Implementing Classes:
MbsAnalyser, VGScientaAnalyser, VGScientaAnalyserCamOnly

public interface IElectronAnalyser extends Device
  • Method Details

    • getEnergyRange

    • getEnergyStepPerPixel

      double getEnergyStepPerPixel()
      This is the energy covered by one pixel in pass energy = 1 in meV

      To find the energy step per pixel this value should be multiplied by the pass energy. To find the fixed mode energy width this value should be multiplied by the pass energy and the number of energy channels.

      This value should not be used to calculate energy scales.

    • getMaxKE

      double getMaxKE()
      This is the fall-back maximum kinetic energy (KE) if the energyRange object can't provide a correct energy range
    • getFixedModeEnergyChannels

      int getFixedModeEnergyChannels()
      This gets the number of energy channels in the fixed mode region, to allow the fixed mode energy width to be calculated.
      Returns:
      The number of energy channels in fixed mode
    • getSweptModeEnergyChannels

      int getSweptModeEnergyChannels()
      This gets the number of energy channels in the swept mode region, to allow the swept mode energy steps including pre-scan to be calculated
      Returns:
      The number of energy channels in swept mode
    • getPsuMode

      String getPsuMode() throws Exception
      Gets the current PSU mode. (Also known as element set)
      Returns:
      The current power supply mode
      Throws:
      Exception - If there is a problem with the EPICS communication
    • getPsuModes

      List<String> getPsuModes()
      Gets the available PSU modes (also known as element set)
      Returns:
      The list of available PSU modes
    • setPsuMode

      void setPsuMode(String psuMode) throws Exception
      Sets the PSU mode (aka element set)
      Throws:
      Exception - If there is a problem with the EPICS communication
    • getLensMode

      String getLensMode() throws Exception
      Gets the current lens mode.
      Returns:
      The current lens mode
      Throws:
      Exception - If there is a problem with the EPICS communication
    • setLensMode

      void setLensMode(String lensMode) throws Exception
      Sets the lens mode
      Parameters:
      lensMode - The lens mode to set
      Throws:
      Exception - If there is a problem with the EPICS communication
    • getLensModes

      List<String> getLensModes()
      Gets the list of available lens modes
    • changeRequestedIterations

      void changeRequestedIterations(int newScheduledIterations)
      This can be called to change the number of iterations scheduled during a scan.
      Parameters:
      newScheduledIterations -
    • getEnergyAxis

      double[] getEnergyAxis() throws Exception
      Get the energy axis for the current acquisition
      Returns:
      The energy axis
      Throws:
      Exception - If there is a problem with the EPICS communication
    • getAngleAxis

      double[] getAngleAxis() throws Exception
      Gets the Y axis (usually angle) for the current acquisition
      Returns:
      The angle axis
      Throws:
      Exception - If there is a problem with the EPICS communication
    • getPassEnergy

      Integer getPassEnergy() throws Exception
      Get the current pass energy
      Returns:
      The current pass energy
      Throws:
      Exception - If there is a problem with the EPICS communication
    • setPassEnergy

      void setPassEnergy(Integer passEnergy) throws Exception
      Sets the pass energy
      Parameters:
      passEnergy - The requested pass energy
      Throws:
      Exception - If the pass energy is invalid or if there is a problem with the EPICS communication
    • getPassEnergies

      List<String> getPassEnergies()
      Gets the available pass energies
    • getCentreEnergy

      Double getCentreEnergy() throws Exception
      Gets the current centre energy
      Returns:
      The current centre energy
      Throws:
      Exception - If there is a problem with the EPICS communication
    • setCentreEnergy

      void setCentreEnergy(Double centreEnergy) throws Exception
      Sets the centre energy
      Parameters:
      centreEnergy - The requested centre energy
      Throws:
      Exception - If there is a problem with the EPICS communication
    • getCollectionTime

      double getCollectionTime() throws DeviceException
      Gets the collection time per point
      Returns:
      The collection time
      Throws:
      DeviceException - If there is a problem with the EPICS communication
    • setCollectionTime

      void setCollectionTime(double collectionTime) throws DeviceException
      Sets the collection time per point
      Throws:
      DeviceException - If there is a problem with the EPICS communication
    • startContinuous

      void startContinuous() throws Exception
      Starts the analyser acquiring in continuous mode, this is intended for use in alignment. This is non blocking
      Throws:
      Exception - If there is a problem with the EPICS communication
    • stop

      void stop() throws Exception
      Stops the analyser acquiring Does NOT zero supplies
      Throws:
      Exception - If there is a problem with the EPICS communication
      See Also:
    • zeroSupplies

      void zeroSupplies() throws Exception
      Stops the analyser and zeros the HV supplies. This puts the analyser into a safe state.
      Throws:
      Exception - If there is a problem with the EPICS communication
      See Also:
    • stopAfterCurrentIteration

      void stopAfterCurrentIteration() throws Exception
      Stops the analyser after the current iteration and saves the data.
      Throws:
      Exception - If there is a problem with the EPICS communication
      See Also:
    • getIterations

      int getIterations() throws Exception
      Gets the currently set number of iterations
      Returns:
      The current number of iterations
      Throws:
      Exception - If there is a problem with the EPICS communication
    • getCompletedIterations

      int getCompletedIterations() throws Exception
      Gets the completed number of iterations from the most recent scan
      Returns:
      The number of complete iterations from previous scan
      Throws:
      Exception - If there is a problem with the EPICS communication
    • getCurrentIteration

      int getCurrentIteration() throws Exception
      Gets the current iteration number in the scan
      Returns:
      The current iteration number in the scan
      Throws:
      Exception - If there is a problem with the EPICS communication
    • setIterations

      void setIterations(int iterations) throws Exception
      Sets the number of iterations requested, not for use while in a scan
      Parameters:
      iterations - The requested number of iterations
      Throws:
      Exception - If there is a problem with the EPICS communication
      IllegalStateException - If the analyser is performing a scan
      See Also:
    • getEnergyStep

      double getEnergyStep() throws Exception
      Gets the step size
      Returns:
      step size
      Throws:
      DeviceException - If there is a problem with EPICS communication
      Exception
    • setEnergyStep

      void setEnergyStep(double stepSize) throws Exception
      Sets the step size
      Parameters:
      stepSize - The step size
      Throws:
      DeviceException - If there is a problem with EPICS communication
      Exception
    • getSupportedAcquisitionModes

      List<AcquisitionMode> getSupportedAcquisitionModes()
      Gets the list of supported acquisition mode, using AcquisitionMode enum. Allows UIs to support different models of electron analyser which may name their modes differently
      Returns:
      The list of supported acquisition modes
    • getSpectrum

      double[] getSpectrum() throws Exception
      Gets the spectrum data acquired from the most recent acquisition
      Returns:
      The spectrum data
      Throws:
      Exception - If there is a problem getting the spectrum
    • getImage

      double[] getImage() throws Exception
      Gets the image acquired during the most recent acquisition
      Returns:
      The image data
      Throws:
      Exception - If there is a problem getting the image
    • getSlices

      int getSlices() throws Exception
      Gets the value of the slices parameter
      Returns:
      The number of slices
      Throws:
      Exception - If there is a problem getting the slices
    • getFrames

      int getFrames() throws Exception
      Gets the value of the frames parameter
      Returns:
      The number of slices
      Throws:
      Exception - If there is a problem getting the frames
    • getExtIO

      double[] getExtIO(int length) throws Exception
      Gets data from an external I/O device
      Parameters:
      length - The number of data elements to return
      Returns:
      The data
      Throws:
      Exception - If there is a problem getting the data
    • setAcquisitionMode

      void setAcquisitionMode(String acquisitionMode) throws Exception
      Sets the acquisition mode
      Parameters:
      acquisitionMode - The name of the acquisition mode
      Throws:
      Exception - If there is a problem setting acquisition mode
    • setupAcquisitionMode

      void setupAcquisitionMode(AcquisitionMode acquisitionMode) throws Exception
      Sets the acquisition mode to the one specified and performs any configuration necessary for the chosen mode, such as setting up ROIs
      Parameters:
      acquisitionMode - The requested acquisition mode
      Throws:
      Exception - If there is a problem setting up the acquisition mode
    • startAcquiring

      void startAcquiring() throws Exception
      Starts the analyser acquiring data with the current parameters
      Throws:
      Exception
    • getDetectorState

      short getDetectorState() throws Exception
      Gets the current state of the analyser
      Returns:
      The current analyser state
      Throws:
      Exception - If there is a problem getting the current state
    • setSingleImageMode

      void setSingleImageMode() throws Exception
      Sets the analyser to single image mode
      Throws:
      Exception - If there is a problem setting single image mode
    • getExcitationEnergy

      @Deprecated(since="9.20") double getExcitationEnergy() throws Exception
      Deprecated.
      This was deprecated on the old VG Scienta RMI interface so it's deprecated here too
      Gets the excitation energy
      Returns:
      The excitation energy
      Throws:
      Exception - If there is a problem getting the value
    • getMaximumNumberOfSteps

      int getMaximumNumberOfSteps()
      Returns the maximum number of steps the analyser can perform in a swept scan. Suggest returning Integer.MAX_VALUE if your analyser doesn't have a limit.
      Returns:
      The maximum number of steps
    • getSensorSizeX

      default int getSensorSizeX() throws DeviceException
      Returns sensor size along X direction. Declared as default to not change all implementations.
      Returns:
      Sensor size along X direction
      Throws:
      DeviceException
    • getSensorSizeY

      default int getSensorSizeY() throws DeviceException
      Returns sensor size along Y direction. Declared as default to not change all implementations.
      Returns:
      Sensor size along Y direction
      Throws:
      DeviceException
    • getRegionSizeX

      default int getRegionSizeX() throws DeviceException
      Returns region size along X direction. Declared as default to not change all implementations.
      Returns:
      Region size along X direction
      Throws:
      DeviceException
    • getRegionSizeY

      default int getRegionSizeY() throws DeviceException
      Returns region size along Y direction. Declared as default to not change all implementations.
      Returns:
      Region size along Y direction
      Throws:
      DeviceException