Interface HardwareTriggeredDetector

All Superinterfaces:
Configurable, Detector, Device, Findable, gda.observable.IObservable, Scannable
All Known Subinterfaces:
HardwareTriggerableDetector, HardwareTriggeredNexusXmap
All Known Implementing Classes:
ADPilatus, DummyHardwareTriggerableAreaDetector, DummyHardwareTriggerableDetector, DummyHardwareTriggerableDetectorBase, DummyHardwareTriggerableSimpleDetector, DummyHardwareTriggeredDetector, DummyHardwareTriggeredNexusXmap, HardwareTriggerableADDetector, HardwareTriggerableDetectorBase, HardwareTriggeredNexusXmapImpl, HardwareTriggeredNXDetector, HardwareTriggeredNXDetectorWithReadoutTime, HardwareTriggeredNXDetectorWithReadoutTimeAndVariableCollectionTime, HardwareTriggeredXspress3Detector, NexusDetectorProcessor, TFGTriggeredScaler, ZebraExternallyTriggeredDetector

public interface HardwareTriggeredDetector extends Detector
A hardware triggered detector can be configured to accept hardware triggers from a HardwareTriggerProvider representing a controller that it is physically wired to (e.g. a ContinuousMoveController). To work with the TrajectoryScanLine class, an implementation should behave as described here:

An AbtsractContinuousScanLine will call Detector.setCollectionTime(double), then setNumberImagesToCollect(int) then Detector.prepareForCollection(). The implementation will then have DetectorDetector.readout() or if implemented PositionCallableProvider.getPositionCallable() called for each point that *will* be collected. A call to Detector.collectData() will then be made which should in this mode of operation arm the detector.

Most implementations should also implement PositionCallableProvider indicating that they will return data via Callables which block until the data is actually available. Implementing PositionInputStream and deferring calls to PositionCallableProvider.getPositionCallable() to a PositionStreamIndexer may be the simplest way to do this.

Detectors which operate in applications that require variable trigger times during a scan should implement VariableCollectionTimeDetector.

  • Method Details

    • getHardwareTriggerProvider

      HardwareTriggerProvider getHardwareTriggerProvider()
      Get the HardwareTriggerProvider that represents the controller this Detector is wired to.
      Returns:
      the trigger provider
    • setNumberImagesToCollect

      void setNumberImagesToCollect(int numberImagesToCollect)
      Tell the detector how many scan points to collect. (Unfortunately named images).
      Parameters:
      numberImagesToCollect -
    • integratesBetweenPoints

      boolean integratesBetweenPoints()
      Detectors that sample some value at the time of a trigger should return False. Detectors such as counter timers should return True. If true ,TrajectoryScanLine will generate a trigger half a point before the motor reaches a demanded point such that the resulting bin of data is centred on the demand position. Area detectors that will be triggered by the first pulse should also return true.
      Returns:
      true for detectors that integrates b