Class TfgEncoderCounter

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

public class TfgEncoderCounter extends TFGCounterTimer
Represents a Tfg and HY8513 Incremental Encoder Counter Industry Pack combination. Since the Tfg will generally also be part of a TfgScaler combination there is a slave mode. In this mode methods which set things on the Tfg do nothing.
See Also:
  • Constructor Details

    • TfgEncoderCounter

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

      public void setEncoderCounterName(String encoderCounterName)
      Parameters:
      encoderCounterName -
    • getEncoderCounterName

      public String getEncoderCounterName()
      Returns:
      encoderCounterName
    • getTotalChans

      public int getTotalChans() throws DeviceException
      Returns the total number of available counter-timer readout channels that will be returned by calls to readChans() For a time-framing device it is the number of channels per frame. All counter-timers must fully implement this.
      Returns:
      total number of readout channels
      Throws:
      DeviceException
    • countAsync

      public void countAsync(double time) throws DeviceException
      Throws:
      DeviceException
    • start

      public void start() throws DeviceException
      Description copied from interface: CounterTimer
      For a time framing counter-timer this initiates framing.
      Specified by:
      start in interface CounterTimer
      Overrides:
      start in class CounterTimerBase
      Throws:
      DeviceException
    • stop

      public void stop() throws DeviceException
      Description copied from class: ScannableBase
      Stop the current move/operation. Default behaviour is to do nothing. Inheriting classes have the option to implement this if their specific behaviour requires it.
      Specified by:
      stop in interface Scannable
      Overrides:
      stop in class CounterTimerBase
      Throws:
      DeviceException
      See Also:
    • readChans

      public double[] readChans() throws DeviceException
      Obtain an array of available readout channels. This should be available at any time. If the hardware does not allow it during active counter-timing periods, it should return zero values. High level counter-timers may return values in user units. All counter-timers must fully implement this.
      Returns:
      array of all channel readout values
      Throws:
      DeviceException
    • readChannel

      public double[] readChannel(int startFrame, int frameCount, int channel) throws DeviceException
      For a time framing counter-timer, read out a specified channel beginning from the specified start frame number using the requested frame count.
      Parameters:
      startFrame - starting frame number (1st=0)
      frameCount - number of frames to read the counter data out from
      channel - read this channel
      Returns:
      array of requested readout counter-timer data
      Throws:
      DeviceException
    • readFrame

      public double[] readFrame(int startChannel, int channelCount, int frame) throws DeviceException
      For a time framing counter-timer, read out a specified channel beginning from the specified start frame number using the requested frame count.
      Parameters:
      startChannel - starting channel number (1st=0)
      channelCount - number of channels to read the counter data out from
      frame - read this frame
      Returns:
      array of requested readout counter-timer data
      Throws:
      DeviceException
    • setAttribute

      public void setAttribute(String attributeName, Object value) throws DeviceException
      Description copied from interface: Device
      Set any attribute the implementing classes may provide
      Specified by:
      setAttribute in interface Device
      Overrides:
      setAttribute in class DeviceBase
      Parameters:
      attributeName - is the name of the attribute
      value - is the value of the attribute
      Throws:
      DeviceException - if an attribute cannot be set
    • getAttribute

      public Object getAttribute(String attributeName) throws DeviceException
      Description copied from interface: Device
      Get the value of the specified attribute
      Specified by:
      getAttribute in interface Device
      Overrides:
      getAttribute in class DeviceBase
      Parameters:
      attributeName - is the name of the attribute
      Returns:
      the value of the attribute as an Object type
      Throws:
      DeviceException - if an attribute cannot be retrieved
    • collectData

      public void collectData() throws DeviceException
      Description copied from interface: Detector
      Tells the detector to begin to collect a set of data, then returns immediately. Should cause the hardware to start collecting immediately: if there is any delay then detectors used in the same scan would collect over different times when beam conditions may differ.
      Throws:
      DeviceException
    • readout

      public double[] readout() throws DeviceException
      Description copied from interface: Detector
      Returns the latest data collected. The size of the Object returned must be consistent with the values returned by getDataDimensions and getExtraNames.

      If LocalProperties.GDA_SCAN_CONCURRENTSCAN_READOUT_CONCURRENTLY is true then motors may be moved while the detector readouts. The value returned must not be effected by any concurrent motor or shutter movements. See Detector.waitWhileBusy() and ConcurrentScan. Readout must block until the detector is ready to respond quickly to Detector.collectData() again.

      Returns:
      the data collected
      Throws:
      DeviceException
      See Also:
    • createsOwnFiles

      public boolean createsOwnFiles() throws DeviceException
      Description copied from interface: Detector
      Returns a value which indicates whether the detector creates its own files. If it does (return true) the readout() method returns the name of the latest file created as a string. If it does not (return false) the readout() method will return the data directly.
      Returns:
      true if readout() returns filenames
      Throws:
      DeviceException
    • getDescription

      public String getDescription() throws DeviceException
      Specified by:
      getDescription in interface Detector
      Overrides:
      getDescription in class DetectorBase
      Returns:
      A description of the detector.
      Throws:
      DeviceException
    • getDetectorID

      public String getDetectorID() throws DeviceException
      Specified by:
      getDetectorID in interface Detector
      Overrides:
      getDetectorID in class DetectorBase
      Returns:
      A identifier for this detector.
      Throws:
      DeviceException
    • getDetectorType

      public String getDetectorType() throws DeviceException
      Specified by:
      getDetectorType in interface Detector
      Overrides:
      getDetectorType in class DetectorBase
      Returns:
      The type of detector.
      Throws:
      DeviceException