Package org.eclipse.scanning.api.device
Interface IDeviceController
public interface IDeviceController
A device controller takes input from several clients
and ensures that each of their preferences about pausing
the device being controlled is taken into account.
For instance three classes control a scan, a class from the
user interface, one from the topup monitor and one from the
beam stop monitor, call them gui, topup, shutter
If any one of gui, topup, shutter pause, the device gets paused.
If all of gui, topup and shutter say resume, the device gets resumed.
gui, topup and shutter have an id that goes in a map. They must always
use the same id to send commands to the controller or it will not work.
-
Method Details
-
getObjects
The list of objects which will participate in a scan.- Returns:
-
getDevice
IPausableDevice<?> getDevice()The device we are controlling.- Returns:
-
pause
Make a pause- Parameters:
id-- Throws:
ScanningExceptionInterruptedException
-
resume
Make a resume- Parameters:
id-- Throws:
ScanningExceptionInterruptedException
-
seek
Make a seek- Parameters:
id-- Throws:
ScanningExceptionInterruptedException
-
abort
Make an abort- Parameters:
id-- Throws:
ScanningExceptionInterruptedException
-
getName
String getName()- Returns:
- the name of the device that we are controlling
-
isActive
boolean isActive()- Returns:
- true if the devices (watchdogs) in this contoller all think they are running in a scan.
-