Class EpicsEurotherm903

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

public class EpicsEurotherm903 extends ScannableBase
This class controls a Eurotherm903 furnace using the EPICS interface. It was originally written for use with the B18 Eurotherm (in a B18 specific plugin). This is a cleaned up version of that class developed when using the same furnace on I20, with 'moveAndWait' function added, and moved to a non beamline specific package. TODO: Use this class on B18 and use new 'moveAndWait' method to replace equivalent functionality currently in B18SampleEnvironmentIterator; implement this class by extending TemperatureBase
  • Constructor Details

    • EpicsEurotherm903

      public EpicsEurotherm903()
  • Method Details

    • isBusy

      public boolean isBusy() throws DeviceException
      Returns true if current and demand temperature is outside of tolerance range.
      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:
    • rawGetPosition

      public Object rawGetPosition() throws DeviceException
      Description copied from class: ScannableBase
      [Consider abstract] Read the position in its internal (user) representation.
      Overrides:
      rawGetPosition in class ScannableBase
      Returns:
      the value represented by this Scannable
      Throws:
      DeviceException
      See Also:
    • getEurothermPv

      public String getEurothermPv()
    • setEurothermPv

      public void setEurothermPv(String eurothermPv)
    • getSetpointPv

      public String getSetpointPv()
    • setSetpointPv

      public void setSetpointPv(String setpointPv)
    • getUpperLimit

      public String getUpperLimit() throws gov.aps.jca.CAException, gov.aps.jca.TimeoutException, InterruptedException
      Throws:
      gov.aps.jca.CAException
      gov.aps.jca.TimeoutException
      InterruptedException
    • setUpperLimitPv

      public void setUpperLimitPv(String upperLimitPv)
    • getLowerLimit

      public String getLowerLimit()
    • getActualTemperatureRbvPv

      public String getActualTemperatureRbvPv()
    • setActualTemperatureRbvPv

      public void setActualTemperatureRbvPv(String actualTemperatureRbvPv)
    • getPollTimeInterval

      public double getPollTimeInterval()
    • setPollTimeInterval

      public void setPollTimeInterval(double pollTimeInterval)
    • getSetpointTemperatureWaitTime

      public double getSetpointTemperatureWaitTime()
    • setSetpointTemperatureWaitTime

      public void setSetpointTemperatureWaitTime(double setpointTemperatureWaitTime)
    • getTemperatureTolerance

      public double getTemperatureTolerance()
    • setTemperatureTolerance

      public void setTemperatureTolerance(double temperatureTolerance)
    • moveAndWait

      public void moveAndWait(double finalTemperature) throws DeviceException, InterruptedException
      Adjust setpoint temperature and wait until getSetpointTemperatureWaitTime() seconds have passed at finalTemperature
      Parameters:
      finalTemperature -
      Throws:
      DeviceException
      InterruptedException