Class B18EnergyScannable

All Implemented Interfaces:
INeXusInfoWriteable, ControllerRecord, Device, IScannableMotor, Scannable, ScannableMotion, ScannableMotionUnits, InitializationListener, Configurable, Findable, gda.observable.IObservable

public class B18EnergyScannable extends ScannableMotor implements InitializationListener
Stop/starts the feedback control at the start of every scan on the B18 energy controller in Epics.

This is B18 specific with hacks to work around issues with the mono geo-brick.

  • Constructor Details

    • B18EnergyScannable

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

      public void atScanLineStart() throws DeviceException
      Description copied from class: ScannableBase
      Called for every Scannable at the start of every scan Default behaviour is to do nothing. Inheriting classes have the option to implement this if their specific behaviour requires it.
      Specified by:
      atScanLineStart in interface Scannable
      Overrides:
      atScanLineStart in class ScannableBase
      Throws:
      DeviceException
      See Also:
    • initializationCompleted

      public void initializationCompleted()
      Description copied from interface: InitializationListener
      Called when all critical channels are connected.
      Specified by:
      initializationCompleted in interface InitializationListener
    • isBusy

      public boolean isBusy() throws DeviceException
      Description copied from class: ScannableMotor
      Return true if motor is busy.
      Specified by:
      isBusy in interface Scannable
      Overrides:
      isBusy in class ScannableMotor
      Returns:
      true - if operation carried out by moveTo has not completed yet
      Throws:
      DeviceException
      See Also:
    • rawAsynchronousMoveTo

      public void rawAsynchronousMoveTo(Object internalPosition) throws DeviceException
      Description copied from class: ScannableMotor
      [Consider abstract] Trigger a move/operation to an internal/hardware position and return immediately.. Triggers a motor to move. Throws a DeviceException if the motor is already busy. This method's guts are synchronised so that another thread can't enter it before the first thread has completed the motor's (asynchronous) moveTo call. For the DeviceException to be thrown properly when a move request is made of a moving motor, the motor's getStatus() method must *immediately* report BUSY after it's moveTo call has completed.
      Overrides:
      rawAsynchronousMoveTo in class ScannableMotor
      Parameters:
      internalPosition - Position in its internal/hardware representation. e.g. with units and offsets removed
      Throws:
      DeviceException
      See Also: