Interface IWritableDetector<T>

Type Parameters:
T - Class of model required by detector to configure it.
All Superinterfaces:
IConfigurable<T>, IDeviceRoleActor, ILevel, IModelProvider<T>, INameable, IPausableDevice<T>, IResettableDevice, IRunnableDevice<T>, IRunnableEventDevice<T>, IValidator<T>
All Known Implementing Classes:
AbstractAreaDetectorRunnableDevice, AreaDetectorRunnableDevice, AreaDetectorRunnableDeviceProxy, AreaDetectorRunnableDeviceWaitForArray, AreaDetectorWritingFilesRunnableDevice, ConstantVelocityDevice, DarkImageDetector, ElectronAnalyserRunnableDevice, MandelbrotDetector, PosDetector, RandomIntDetector, RandomLineDevice, XmapRunnableDevice, XmapRunnableDeviceBase, XmapWritingFilesRunnableDevice, ZebraRunnableDevice

public interface IWritableDetector<T> extends IRunnableEventDevice<T>
Anatomy of a CPU scan (non-malcolm) Making GDA8 Detectors work with GDA9 (org.eclipse.scanning) requires usage of the GDA8 IHardwareConnectionService. This service returns IReadableDetector for the class gda.device.Detector and IScanner for gda.px.detector.Detector. In the later case the model provides the file path and omegaStart required.
  ___________
  |         |
 _|         |___________  collectData() Tell detector to collect
            ___________
            |         |
 ___________|         |_  readout() Tell detector to readout

            ________
            |      |
 ___________|      |____  moveTo()  Scannables move motors to new position
 
The readable detector is designed to be read out manually by the scanning system. Malcolm detectors are not read out manually by the scanning but because they implement IScanner, they can be configured and run during the scanning.
  • Method Details

    • write

      boolean write(IPosition position) throws ScanningException, InterruptedException
      For GDA9 detectors, returns a boolean for the readout completed, true for complete, false for error. Generally detectors running in GDA9 will be IDetector. For GDA8 detectors, the readout will be overridden.
      Returns:
      true for a successful readout. If false the events will not be fired and the scan will continue.