mirror of
https://github.com/bec-project/bec_widgets.git
synced 2025-07-14 03:31:50 +02:00
refactor: AutoUpdate disabled
This commit is contained in:
@ -1,168 +1,169 @@
|
|||||||
from __future__ import annotations
|
# TODO autoupdate disabled
|
||||||
|
# from __future__ import annotations
|
||||||
import threading
|
#
|
||||||
from queue import Queue
|
# import threading
|
||||||
from typing import TYPE_CHECKING
|
# from queue import Queue
|
||||||
|
# from typing import TYPE_CHECKING
|
||||||
from pydantic import BaseModel
|
#
|
||||||
|
# from pydantic import BaseModel
|
||||||
if TYPE_CHECKING:
|
#
|
||||||
from .client import BECDockArea, BECFigure
|
# if TYPE_CHECKING:
|
||||||
|
# from .client import BECDockArea, BECFigure
|
||||||
|
#
|
||||||
class ScanInfo(BaseModel):
|
#
|
||||||
scan_id: str
|
# class ScanInfo(BaseModel):
|
||||||
scan_number: int
|
# scan_id: str
|
||||||
scan_name: str
|
# scan_number: int
|
||||||
scan_report_devices: list
|
# scan_name: str
|
||||||
monitored_devices: list
|
# scan_report_devices: list
|
||||||
status: str
|
# monitored_devices: list
|
||||||
model_config: dict = {"validate_assignment": True}
|
# status: str
|
||||||
|
# model_config: dict = {"validate_assignment": True}
|
||||||
|
#
|
||||||
class AutoUpdates:
|
#
|
||||||
create_default_dock: bool = False
|
# class AutoUpdates:
|
||||||
enabled: bool = False
|
# create_default_dock: bool = False
|
||||||
dock_name: str = None
|
# enabled: bool = False
|
||||||
|
# dock_name: str = None
|
||||||
def __init__(self, gui: BECDockArea):
|
#
|
||||||
self.gui = gui
|
# def __init__(self, gui: BECDockArea):
|
||||||
self._default_dock = None
|
# self.gui = gui
|
||||||
self._default_fig = None
|
# self._default_dock = None
|
||||||
|
# self._default_fig = None
|
||||||
def start_default_dock(self):
|
#
|
||||||
"""
|
# def start_default_dock(self):
|
||||||
Create a default dock for the auto updates.
|
# """
|
||||||
"""
|
# Create a default dock for the auto updates.
|
||||||
self.dock_name = "default_figure"
|
# """
|
||||||
self._default_dock = self.gui.new(self.dock_name)
|
# self.dock_name = "default_figure"
|
||||||
self._default_dock.new("BECFigure")
|
# self._default_dock = self.gui.new(self.dock_name)
|
||||||
self._default_fig = self._default_dock.elements_list[0]
|
# self._default_dock.new("BECFigure")
|
||||||
|
# self._default_fig = self._default_dock.elements_list[0]
|
||||||
@staticmethod
|
#
|
||||||
def get_scan_info(msg) -> ScanInfo:
|
# @staticmethod
|
||||||
"""
|
# def get_scan_info(msg) -> ScanInfo:
|
||||||
Update the script with the given data.
|
# """
|
||||||
"""
|
# Update the script with the given data.
|
||||||
info = msg.info
|
# """
|
||||||
status = msg.status
|
# info = msg.info
|
||||||
scan_id = msg.scan_id
|
# status = msg.status
|
||||||
scan_number = info.get("scan_number", 0)
|
# scan_id = msg.scan_id
|
||||||
scan_name = info.get("scan_name", "Unknown")
|
# scan_number = info.get("scan_number", 0)
|
||||||
scan_report_devices = info.get("scan_report_devices", [])
|
# scan_name = info.get("scan_name", "Unknown")
|
||||||
monitored_devices = info.get("readout_priority", {}).get("monitored", [])
|
# scan_report_devices = info.get("scan_report_devices", [])
|
||||||
monitored_devices = [dev for dev in monitored_devices if dev not in scan_report_devices]
|
# monitored_devices = info.get("readout_priority", {}).get("monitored", [])
|
||||||
return ScanInfo(
|
# monitored_devices = [dev for dev in monitored_devices if dev not in scan_report_devices]
|
||||||
scan_id=scan_id,
|
# return ScanInfo(
|
||||||
scan_number=scan_number,
|
# scan_id=scan_id,
|
||||||
scan_name=scan_name,
|
# scan_number=scan_number,
|
||||||
scan_report_devices=scan_report_devices,
|
# scan_name=scan_name,
|
||||||
monitored_devices=monitored_devices,
|
# scan_report_devices=scan_report_devices,
|
||||||
status=status,
|
# monitored_devices=monitored_devices,
|
||||||
)
|
# status=status,
|
||||||
|
# )
|
||||||
def get_default_figure(self) -> BECFigure | None:
|
#
|
||||||
"""
|
# def get_default_figure(self) -> BECFigure | None:
|
||||||
Get the default figure from the GUI.
|
# """
|
||||||
"""
|
# Get the default figure from the GUI.
|
||||||
return self._default_fig
|
# """
|
||||||
|
# return self._default_fig
|
||||||
def do_update(self, msg):
|
#
|
||||||
"""
|
# def do_update(self, msg):
|
||||||
Run the update function if enabled.
|
# """
|
||||||
"""
|
# Run the update function if enabled.
|
||||||
if not self.enabled:
|
# """
|
||||||
return
|
# if not self.enabled:
|
||||||
if msg.status != "open":
|
# return
|
||||||
return
|
# if msg.status != "open":
|
||||||
info = self.get_scan_info(msg)
|
# return
|
||||||
return self.handler(info)
|
# info = self.get_scan_info(msg)
|
||||||
|
# return self.handler(info)
|
||||||
def get_selected_device(self, monitored_devices, selected_device):
|
#
|
||||||
"""
|
# def get_selected_device(self, monitored_devices, selected_device):
|
||||||
Get the selected device for the plot. If no device is selected, the first
|
# """
|
||||||
device in the monitored devices list is selected.
|
# Get the selected device for the plot. If no device is selected, the first
|
||||||
"""
|
# device in the monitored devices list is selected.
|
||||||
if selected_device:
|
# """
|
||||||
return selected_device
|
# if selected_device:
|
||||||
if len(monitored_devices) > 0:
|
# return selected_device
|
||||||
sel_device = monitored_devices[0]
|
# if len(monitored_devices) > 0:
|
||||||
return sel_device
|
# sel_device = monitored_devices[0]
|
||||||
return None
|
# return sel_device
|
||||||
|
# return None
|
||||||
def handler(self, info: ScanInfo) -> None:
|
#
|
||||||
"""
|
# def handler(self, info: ScanInfo) -> None:
|
||||||
Default update function.
|
# """
|
||||||
"""
|
# Default update function.
|
||||||
if info.scan_name == "line_scan" and info.scan_report_devices:
|
# """
|
||||||
return self.simple_line_scan(info)
|
# if info.scan_name == "line_scan" and info.scan_report_devices:
|
||||||
if info.scan_name == "grid_scan" and info.scan_report_devices:
|
# return self.simple_line_scan(info)
|
||||||
return self.simple_grid_scan(info)
|
# if info.scan_name == "grid_scan" and info.scan_report_devices:
|
||||||
if info.scan_report_devices:
|
# return self.simple_grid_scan(info)
|
||||||
return self.best_effort(info)
|
# if info.scan_report_devices:
|
||||||
|
# return self.best_effort(info)
|
||||||
def simple_line_scan(self, info: ScanInfo) -> None:
|
#
|
||||||
"""
|
# def simple_line_scan(self, info: ScanInfo) -> None:
|
||||||
Simple line scan.
|
# """
|
||||||
"""
|
# Simple line scan.
|
||||||
fig = self.get_default_figure()
|
# """
|
||||||
if not fig:
|
# fig = self.get_default_figure()
|
||||||
return
|
# if not fig:
|
||||||
dev_x = info.scan_report_devices[0]
|
# return
|
||||||
selected_device = yield self.gui.selected_device
|
# dev_x = info.scan_report_devices[0]
|
||||||
dev_y = self.get_selected_device(info.monitored_devices, selected_device)
|
# selected_device = yield self.gui.selected_device
|
||||||
if not dev_y:
|
# dev_y = self.get_selected_device(info.monitored_devices, selected_device)
|
||||||
return
|
# if not dev_y:
|
||||||
yield fig.clear_all()
|
# return
|
||||||
yield fig.plot(
|
# yield fig.clear_all()
|
||||||
x_name=dev_x,
|
# yield fig.plot(
|
||||||
y_name=dev_y,
|
# x_name=dev_x,
|
||||||
label=f"Scan {info.scan_number} - {dev_y}",
|
# y_name=dev_y,
|
||||||
title=f"Scan {info.scan_number}",
|
# label=f"Scan {info.scan_number} - {dev_y}",
|
||||||
x_label=dev_x,
|
# title=f"Scan {info.scan_number}",
|
||||||
y_label=dev_y,
|
# x_label=dev_x,
|
||||||
)
|
# y_label=dev_y,
|
||||||
|
# )
|
||||||
def simple_grid_scan(self, info: ScanInfo) -> None:
|
#
|
||||||
"""
|
# def simple_grid_scan(self, info: ScanInfo) -> None:
|
||||||
Simple grid scan.
|
# """
|
||||||
"""
|
# Simple grid scan.
|
||||||
fig = self.get_default_figure()
|
# """
|
||||||
if not fig:
|
# fig = self.get_default_figure()
|
||||||
return
|
# if not fig:
|
||||||
dev_x = info.scan_report_devices[0]
|
# return
|
||||||
dev_y = info.scan_report_devices[1]
|
# dev_x = info.scan_report_devices[0]
|
||||||
selected_device = yield self.gui.selected_device
|
# dev_y = info.scan_report_devices[1]
|
||||||
dev_z = self.get_selected_device(info.monitored_devices, selected_device)
|
# selected_device = yield self.gui.selected_device
|
||||||
yield fig.clear_all()
|
# dev_z = self.get_selected_device(info.monitored_devices, selected_device)
|
||||||
yield fig.plot(
|
# yield fig.clear_all()
|
||||||
x_name=dev_x,
|
# yield fig.plot(
|
||||||
y_name=dev_y,
|
# x_name=dev_x,
|
||||||
z_name=dev_z,
|
# y_name=dev_y,
|
||||||
label=f"Scan {info.scan_number} - {dev_z}",
|
# z_name=dev_z,
|
||||||
title=f"Scan {info.scan_number}",
|
# label=f"Scan {info.scan_number} - {dev_z}",
|
||||||
x_label=dev_x,
|
# title=f"Scan {info.scan_number}",
|
||||||
y_label=dev_y,
|
# x_label=dev_x,
|
||||||
)
|
# y_label=dev_y,
|
||||||
|
# )
|
||||||
def best_effort(self, info: ScanInfo) -> None:
|
#
|
||||||
"""
|
# def best_effort(self, info: ScanInfo) -> None:
|
||||||
Best effort scan.
|
# """
|
||||||
"""
|
# Best effort scan.
|
||||||
fig = self.get_default_figure()
|
# """
|
||||||
if not fig:
|
# fig = self.get_default_figure()
|
||||||
return
|
# if not fig:
|
||||||
dev_x = info.scan_report_devices[0]
|
# return
|
||||||
selected_device = yield self.gui.selected_device
|
# dev_x = info.scan_report_devices[0]
|
||||||
dev_y = self.get_selected_device(info.monitored_devices, selected_device)
|
# selected_device = yield self.gui.selected_device
|
||||||
if not dev_y:
|
# dev_y = self.get_selected_device(info.monitored_devices, selected_device)
|
||||||
return
|
# if not dev_y:
|
||||||
yield fig.clear_all()
|
# return
|
||||||
yield fig.plot(
|
# yield fig.clear_all()
|
||||||
x_name=dev_x,
|
# yield fig.plot(
|
||||||
y_name=dev_y,
|
# x_name=dev_x,
|
||||||
label=f"Scan {info.scan_number} - {dev_y}",
|
# y_name=dev_y,
|
||||||
title=f"Scan {info.scan_number}",
|
# label=f"Scan {info.scan_number} - {dev_y}",
|
||||||
x_label=dev_x,
|
# title=f"Scan {info.scan_number}",
|
||||||
y_label=dev_y,
|
# x_label=dev_x,
|
||||||
)
|
# y_label=dev_y,
|
||||||
|
# )
|
||||||
|
Reference in New Issue
Block a user