Class I05Apple

All Implemented Interfaces:
Device, Scannable, Configurable, Findable, gda.observable.IObservable

public class I05Apple extends ScannableBase
Class for controlling the ID on I05 the unique feature is calculating a move path through gap and phase space which avoids the exclusion zone. in anti

Circular polarisation we have the top phase positive for right circular

  • Field Details

  • Constructor Details

    • I05Apple

      public I05Apple()
  • Method Details

    • configure

      public void configure() throws FactoryException
      Description copied from class: ConfigurableBase
      Default 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:
      configure in interface Configurable
      Overrides:
      configure in class ConfigurableBase
      Throws:
      FactoryException - if there is an error in configuration e.g. required variable not set or cannot connect to device
    • getPhaseForGap

      protected double getPhaseForGap(double gap, String polarisation) throws DeviceException
      Throws:
      DeviceException
    • getGapFor

      public double getGapFor(double energy, String polarisation) throws DeviceException
      Throws:
      DeviceException
    • getCurrentPolarisation

      public String getCurrentPolarisation() throws DeviceException
      Throws:
      DeviceException
    • getPosition

      public Object getPosition() throws DeviceException
      Description copied from class: ScannableBase
      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.
      Specified by:
      getPosition in interface Scannable
      Overrides:
      getPosition in class ScannableBase
      Returns:
      Current position with an element for each input and extra field. null if their are no fields.
      Throws:
      DeviceException
    • isBusy

      public boolean isBusy() throws DeviceException
      Description copied from interface: Scannable
      Check if the Scannable is moving/operating.
      Returns:
      true - if operation carried out by moveTo has not completed yet
      Throws:
      DeviceException
    • rawAsynchronousMoveTo

      public void rawAsynchronousMoveTo(Object position) throws DeviceException
      Description copied from class: ScannableBase
      [Consider abstract] Trigger a move/operation to an internal/hardware position and return immediately.
      Overrides:
      rawAsynchronousMoveTo in class ScannableBase
      Parameters:
      position - Position in its internal/hardware representation. e.g. with units and offsets removed
      Throws:
      DeviceException
      See Also:
    • setExclusionZone

      public void setExclusionZone(Rectangle2D[] zone)
    • getExclusionZone

      public Rectangle2D[] getExclusionZone()
    • getHorizontalGapPolynomial

      public org.apache.commons.math3.analysis.polynomials.PolynomialFunction getHorizontalGapPolynomial()
    • setHorizontalGapPolynomial

      public void setHorizontalGapPolynomial(org.apache.commons.math3.analysis.polynomials.PolynomialFunction horizontalGapPolynomial)
    • getVerticalGapPolynomial

      public org.apache.commons.math3.analysis.polynomials.PolynomialFunction getVerticalGapPolynomial()
    • setVerticalGapPolynomial

      public void setVerticalGapPolynomial(org.apache.commons.math3.analysis.polynomials.PolynomialFunction verticalGapPolynomial)
    • getLowerPhaseDemandPV

      public String getLowerPhaseDemandPV()
    • setLowerPhaseDemandPV

      public void setLowerPhaseDemandPV(String lowerPhaseDemand)
    • getUpperPhaseDemandPV

      public String getUpperPhaseDemandPV()
    • setUpperPhaseDemandPV

      public void setUpperPhaseDemandPV(String upperPhaseDemand)
    • getCircularGapPolynomial

      public org.apache.commons.math3.analysis.polynomials.PolynomialFunction getCircularGapPolynomial()
    • setCircularGapPolynomial

      public void setCircularGapPolynomial(org.apache.commons.math3.analysis.polynomials.PolynomialFunction circularGapPolynomial)
    • getCircularPhasePolynomial

      public org.apache.commons.math3.analysis.polynomials.PolynomialFunction getCircularPhasePolynomial()
    • setCircularPhasePolynomial

      public void setCircularPhasePolynomial(org.apache.commons.math3.analysis.polynomials.PolynomialFunction circularPhasePolynomial)
    • getGapScannable

      public ScannableMotion getGapScannable()
    • setGapScannable

      public void setGapScannable(ScannableMotion gapScannable)
    • getUpperPhaseScannable

      public ScannableMotion getUpperPhaseScannable()
    • setUpperPhaseScannable

      public void setUpperPhaseScannable(ScannableMotion upperPhaseScannable)
    • getLowerPhaseScannable

      public ScannableMotion getLowerPhaseScannable()
    • setLowerPhaseScannable

      public void setLowerPhaseScannable(ScannableMotion lowerPhaseScannable)
    • getPhaseTolerance

      public double getPhaseTolerance()
    • setPhaseTolerance

      public void setPhaseTolerance(double phaseTolerance)