feat: added option to specify monitored devices per scan; closes #100

This commit is contained in:
wakonig_k 2023-10-31 19:13:51 +01:00
parent a566dc5b1a
commit d3da613bfd

View File

@ -189,6 +189,7 @@ class RequestBase(ABC):
self,
*args,
device_manager: DeviceManagerBase = None,
monitored: list = None,
parameter=None,
metadata=None,
**kwargs,
@ -205,7 +206,7 @@ class RequestBase(ABC):
self._pre_scan_macros = []
self._scan_report_devices = None
self._get_scan_motors()
self.readout_priority = {"monitored": [], "baseline": [], "ignored": []}
self.readout_priority = {"monitored": monitored, "baseline": [], "ignored": []}
self.update_readout_priority()
if metadata is None:
self.metadata = {}
@ -276,7 +277,8 @@ class RequestBase(ABC):
def update_readout_priority(self):
"""update the readout priority for this request. Typically the monitored devices should also include the scan motors."""
self.readout_priority["monitored"] = self.scan_motors
self.readout_priority["monitored"].extend(self.scan_motors)
self.readout_priority["monitored"] = list(set(self.readout_priority["monitored"]))
@abstractmethod
def run(self):
@ -344,12 +346,14 @@ class ScanBase(RequestBase, PathOptimizerMixin):
burst_at_each_point: int = 1,
frames_per_trigger: int = 1,
optim_trajectory: str = None,
monitored: list = None,
metadata: dict = None,
**kwargs,
):
super().__init__(
*args,
device_manager=device_manager,
monitored=monitored,
parameter=parameter,
metadata=metadata,
**kwargs,