Package gda.px.camera

Interface Camera

All Superinterfaces:
Configurable, Device, Findable, gda.observable.IObservable
All Known Subinterfaces:
MXCameraInterface
All Known Implementing Classes:
DummyCamera, MXCamera, VmxmMXCamera

public interface Camera extends Device
A Camera must implement the methods explicitly listed here plus those contained in Device, Exposure, Shutter and RotationAxis. Camera observes shutter and rotation axis and is observed by the StatusPanel.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    exposure completed.
    static final String
    Distance
    static final int
    exposure in progress
    static final int
    error status for the exposure
    static final int
    waiting status
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    checkDetectorDistance(double distance)
    Returns whether or not the requested detector distance is within the available range.
    void
    Perform a protein crystallography exposure according to the set parameters.
    double
    Acceleration of rotation axis in degrees/sec/sec used for ramp up and ramp down.
    double
    Get the current camera crystal to detector distance.
    double
     
    double
    Get the maximum allowed camera crystal to detector distance.
    double
    Get the minimum allowed camera crystal to detector distance.
    double
    Returns the rotation axis's omega position.
    boolean
    Get the current shutter state of the camera as a string.
    boolean
    isSpeedAchievable(double time, double oscillation)
    Based on passed parameters checks whether requested speed is achivable.
    void
    makeDetectorSafe(boolean wait)
    Returns the detector to a safe distance from the crystal position.
    void
    moveDetectorTo(double distance)
    Moves the detector to achieve a required crystal to detector distance.
    void
    moveOmegaBy(double distance)
    Move the rotation axis's omega axis by an increment.
    void
    moveOmegaTo(double position)
    Move the rotation axis's omega axis to a position.
    void
    Open the shutter.
    void
    This must be called after setting the exposure parameters (by calling setImageAngle, setImageTime and setImageStart) and before expose.
    void
    setAcceleration(double acceleration)
    Set the acceleration used for ramp up and ramp down in degrees/sec/sec
    void
    This should be called after an exposure to reset the omega motor parameters back to normal.
    void
    setImageAngularSize(double angle)
    Set the omega rotation during an exposure (in degrees).
    void
    setImageStartAngle(double position)
    Set the starting angle of the exposure.
    void
    setImageTime(double time)
    Set the total shutter open time during an exposure (in seconds).
    void
    setNumberPasses(int numPasses)
    Set the number of repeated passes across the oscillation range during an exposure.
    void
    Move any motion of the rotation axis's omega axis.
    void
    Wait until the camera is no longer performing an exposure.
    void
    Wait until all elements of the camera are no longer moving.

    Methods inherited from interface gda.factory.Configurable

    configure, isConfigureAtStartup, isConfigured, reconfigure

    Methods inherited from interface gda.device.Device

    close, getAttribute, getProtectionLevel, setAttribute, setProtectionLevel

    Methods inherited from interface gda.factory.Findable

    getName, setName

    Methods inherited from interface gda.observable.IObservable

    addIObserver, deleteIObserver, deleteIObservers
  • Field Details

  • Method Details

    • checkDetectorDistance

      boolean checkDetectorDistance(double distance) throws DeviceException
      Returns whether or not the requested detector distance is within the available range.
      Parameters:
      distance -
      Returns:
      true if it is, false if not
      Throws:
      DeviceException
    • getMaxDistance

      double getMaxDistance() throws DeviceException
      Get the maximum allowed camera crystal to detector distance.
      Returns:
      Maximum camera crystal to detector distance.
      Throws:
      DeviceException
    • getMinDistance

      double getMinDistance() throws DeviceException
      Get the minimum allowed camera crystal to detector distance.
      Returns:
      Minimum camera crystal to detector distance.
      Throws:
      DeviceException
    • getDetectorDistance

      double getDetectorDistance() throws DeviceException
      Get the current camera crystal to detector distance.
      Returns:
      Current camera crystal to detector distance.
      Throws:
      DeviceException
    • getDetectorMotionTolerance

      double getDetectorMotionTolerance() throws DeviceException
      Throws:
      DeviceException
    • isShutterOpen

      boolean isShutterOpen() throws DeviceException
      Get the current shutter state of the camera as a string.
      Returns:
      Current shutter state.
      Throws:
      DeviceException
    • waitWhileExposing

      void waitWhileExposing() throws DeviceException
      Wait until the camera is no longer performing an exposure.
      Throws:
      DeviceException
    • waitWhileMoving

      void waitWhileMoving() throws DeviceException
      Wait until all elements of the camera are no longer moving.
      Throws:
      DeviceException
    • makeDetectorSafe

      void makeDetectorSafe(boolean wait) throws DeviceException
      Returns the detector to a safe distance from the crystal position. At the end of data collection this may well be done to allow easy access to the crystal mounting area, for manual or automatic crystal mounting.
      Parameters:
      wait - Whether to wait until the move is complete, true to wait.
      Throws:
      DeviceException
    • open

      void open() throws DeviceException
      Open the shutter.
      Throws:
      DeviceException
    • isSpeedAchievable

      boolean isSpeedAchievable(double time, double oscillation) throws DeviceException
      Based on passed parameters checks whether requested speed is achivable.
      Parameters:
      time - The exposure duration in seconds.
      oscillation - The rotation of the crystal during an exposure in degrees.
      Returns:
      true for achievable.
      Throws:
      DeviceException
    • getOmegaPosition

      double getOmegaPosition() throws DeviceException
      Returns the rotation axis's omega position.
      Returns:
      Omega
      Throws:
      DeviceException
    • moveOmegaBy

      void moveOmegaBy(double distance) throws DeviceException
      Move the rotation axis's omega axis by an increment.
      Parameters:
      distance - The required increment in degrees.
      Throws:
      DeviceException
    • moveOmegaTo

      void moveOmegaTo(double position) throws DeviceException
      Move the rotation axis's omega axis to a position.
      Parameters:
      position - The required position in degrees.
      Throws:
      DeviceException
    • stopOmega

      void stopOmega() throws DeviceException
      Move any motion of the rotation axis's omega axis.
      Throws:
      DeviceException
    • expose

      void expose() throws DeviceException
      Perform a protein crystallography exposure according to the set parameters.

      This should be called after prepareForExposure. Then setDefaultSpeeds should be called afterwards.

      Throws:
      DeviceException
    • moveDetectorTo

      void moveDetectorTo(double distance) throws DeviceException
      Moves the detector to achieve a required crystal to detector distance.
      Parameters:
      distance - Required crystal to detector distance.
      Throws:
      DeviceException
    • setImageAngularSize

      void setImageAngularSize(double angle) throws DeviceException
      Set the omega rotation during an exposure (in degrees).
      Parameters:
      angle - Omega rotation during an exposure (in degrees).
      Throws:
      DeviceException
    • setImageTime

      void setImageTime(double time) throws DeviceException
      Set the total shutter open time during an exposure (in seconds).
      Parameters:
      time - Shutter open time during an exposure (in seconds).
      Throws:
      DeviceException
    • setImageStartAngle

      void setImageStartAngle(double position) throws DeviceException
      Set the starting angle of the exposure.
      Parameters:
      position - angle of the exposure (in degrees).
      Throws:
      DeviceException
    • setNumberPasses

      void setNumberPasses(int numPasses) throws DeviceException
      Set the number of repeated passes across the oscillation range during an exposure. This is assumed to be 1 by default. If this number is greater than 1 then the exposure time for each pass is adjusted so that the total exposure time is that set by setImageTime.
      Parameters:
      numPasses -
      Throws:
      DeviceException
    • prepareForExposure

      void prepareForExposure() throws DeviceException
      This must be called after setting the exposure parameters (by calling setImageAngle, setImageTime and setImageStart) and before expose. This move the omega axis to the correct position for its run-up before opening the shutter during the exposure.
      Throws:
      DeviceException
    • setDefaultSpeeds

      void setDefaultSpeeds() throws DeviceException
      This should be called after an exposure to reset the omega motor parameters back to normal. This can also be called during a experiment emergency stop to ensure the beamline is returned to a known status.
      Throws:
      DeviceException
    • setAcceleration

      void setAcceleration(double acceleration) throws DeviceException
      Set the acceleration used for ramp up and ramp down in degrees/sec/sec
      Parameters:
      acceleration -
      Throws:
      DeviceException
    • getAcceleration

      double getAcceleration() throws DeviceException
      Acceleration of rotation axis in degrees/sec/sec used for ramp up and ramp down.
      Returns:
      acceleration in degrees/sec/sec
      Throws:
      DeviceException