Class LinkamCI

All Implemented Interfaces:
INeXusInfoWriteable, Device, Scannable, ScannableMotion, Temperature, Configurable, Findable, gda.observable.IObservable, AlarmListener

public class LinkamCI extends TemperatureBase
Class to control a LinkamCI Those computer interface boxes control the Linkam range of heating/freezing stages. They offer a serial connection.
  • Constructor Details

    • LinkamCI

      public LinkamCI()
      Constructor
  • 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 TemperatureBase
      Throws:
      FactoryException - if there is an error in configuration e.g. required variable not set or cannot connect to device
    • 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
    • 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
    • setSerialDeviceName

      public void setSerialDeviceName(String serialDeviceName)
      Parameters:
      serialDeviceName -
    • getSerialDeviceName

      public String getSerialDeviceName()
      Returns:
      serialDeviceName
    • getSerial

      public Serial getSerial()
    • setSerial

      public void setSerial(Serial serial)
    • setSamplingTime

      public void setSamplingTime(double samplingTime)
      Parameters:
      samplingTime -
    • getSamplingTime

      public double getSamplingTime()
      Returns:
      samplingTime
    • extractTemperature

      public static double extractTemperature(String string)
      Extracts the current temperature from a four byted string (from either a T or D reply)
      Parameters:
      string - the four byte substring
      Returns:
      the current temperature
    • getCurrentTemperature

      public double getCurrentTemperature() throws DeviceException
      Gets the current temperature by asking the actual LinkamCI
      Returns:
      currentTemp
      Throws:
      DeviceException
    • getTemperature

      public double getTemperature()
      Gets the current temperature without asking the actual LinkamCI
      Returns:
      temperature (in degreesC)
    • sendRamp

      protected void sendRamp(int which)
      Sends the ramps to the hardware.
      Specified by:
      sendRamp in class TemperatureBase
      Parameters:
      which - the current ramp
    • isAtTargetTemperature

      public boolean isAtTargetTemperature() throws DeviceException
      Description copied from interface: Temperature
      Check the current temperature against the target temperature
      Specified by:
      isAtTargetTemperature in interface Temperature
      Overrides:
      isAtTargetTemperature in class TemperatureBase
      Returns:
      true if at the desired temperature
      Throws:
      DeviceException
    • hold

      public void hold()
      Description copied from interface: Temperature
      Stops running ramps or moving to temperature but holds the current temperature
    • temperatureUpdate

      public void temperatureUpdate()
      Called each time the poller goes round.
      Specified by:
      temperatureUpdate in class TemperatureBase
    • sendNotify

      public void sendNotify(String additionalData)
      Sends a notifyIObservers with a TemperatureStatus. Used by stages to notify IObservers of the Controller.
      Parameters:
      additionalData - set as the additionalData field of the TemperatureStatus which is sent in the notify.
    • sendHold

      public void sendHold()
      Sends a hold command
    • doStart

      public void doStart() throws DeviceException
      Specified by:
      doStart in class TemperatureBase
      Throws:
      DeviceException
    • startNextRamp

      protected void startNextRamp() throws DeviceException
      Specified by:
      startNextRamp in class TemperatureBase
      Throws:
      DeviceException
    • doStop

      public void doStop()
      Specified by:
      doStop in class TemperatureBase
    • setAttribute

      public void setAttribute(String name, Object value)
      Overrides the DeviceBase method to provide commands for a liquid nitrogen pump
      Specified by:
      setAttribute in interface Device
      Overrides:
      setAttribute in class DeviceBase
      Parameters:
      name - the name of the attribute to set
      value - the attribute value
    • getAttribute

      public Object getAttribute(String name)
      Overrides the DeviceBase method to get current DSC dataset name.
      Specified by:
      getAttribute in interface Device
      Overrides:
      getAttribute in class ScannableMotionBase
      Parameters:
      name - the attribute name to get
      Returns:
      the attribute value
      See Also:
    • startTowardsTarget

      public void startTowardsTarget() throws DeviceException
      Description copied from class: TemperatureBase
      Should send hardware commands to start heating or cooling towards a single targetTemp
      Specified by:
      startTowardsTarget in class TemperatureBase
      Throws:
      DeviceException
    • setHWLowerTemp

      protected void setHWLowerTemp(double lowerTemp) throws DeviceException
      Specified by:
      setHWLowerTemp in class TemperatureBase
      Parameters:
      lowerTemp -
      Throws:
      DeviceException
    • setHWUpperTemp

      protected void setHWUpperTemp(double upperTemp) throws DeviceException
      Specified by:
      setHWUpperTemp in class TemperatureBase
      Parameters:
      upperTemp -
      Throws:
      DeviceException
    • runRamp

      public void runRamp() throws DeviceException
      Description copied from class: TemperatureBase
      Run the ramp sequence.
      Specified by:
      runRamp in class TemperatureBase
      Throws:
      DeviceException