fix(bec-widgets): migration of scripts to V3 #10

Merged
wyzula_j merged 1 commits from fix/bw-migration-v3 into main 2026-03-05 16:25:49 +01:00
4 changed files with 76 additions and 35 deletions
+8 -8
View File
@@ -149,7 +149,7 @@ def rock(**kwargs):
import matplotlib.pyplot as plt
dock_area = bec.gui.new()
wr = dock_area.new().new(bec.gui.available_widgets.Waveform)
wr = dock_area.new(bec.gui.available_widgets.Waveform)
# width of rocking curve of perfect xtal: at 20 keV: 14 urad == 0.0008 deg
@@ -206,7 +206,7 @@ def rock(**kwargs):
s = scans.line_scan(mot, -dx, dx, steps=50, exp_time=time, relative=True)
# md = scan.metadata["bec"]
wr.title = f"RockingScan at Energy of {e}"
wr.plot(x_name=mot.name, y_name=det.name) ##set names/axes first !
wr.plot(device_x=mot.name, device_y=det.name) ##set names/axes first !
wr.x_label = mot.name
wr.y_label = det.name
if ax == 0:
@@ -890,7 +890,7 @@ def colliscan(direction: str, range=0.3, nsteps=30, stime=0.5, centre=1):
import sys
dock_area = bec.gui.new()
wr = dock_area.new().new(bec.gui.available_widgets.Waveform)
wr = dock_area.new(bec.gui.available_widgets.Waveform)
# check if i1 DIODE is IN
# if not, aks to be moved
@@ -1064,14 +1064,14 @@ def slitscan(device_location: str, direction: str, range: 1, nsteps=50, centre=0
return
dock_area = bec.gui.new()
wr = dock_area.new().new(bec.gui.available_widgets.Waveform)
wr = dock_area.new(bec.gui.available_widgets.Waveform)
pos0 = mot.user_readback.get()
siz0 = size.user_readback.get()
umv(size, s_closed)
s = scans.line_scan(mot, -dx, dx, steps=nsteps, exp_time=time, relative=True)
wr.plot(x_name=mot.name, y_name=det.name)
wr.plot(device_x=mot.name, device_y=det.name)
wr.x_label = mot.name
wr.y_label = det.name
@@ -1261,11 +1261,11 @@ def bstatus():
#
dock_area = bec.gui.new()
dbrowser = dock_area.new("device_browser").new(
bec.gui.available_widgets.DeviceBrowser
dbrowser = dock_area.new(
bec.gui.available_widgets.DeviceBrowser, object_name="device_browser"
)
dock_area.new("queue").new(bec.gui.available_widgets.BECQueue)
dock_area.new(bec.gui.available_widgets.BECQueue, object_name="queue")
# queue = dock_area.queue.BECQueue # give it a name
# text_box = dock_area.new().new(widget=bec.gui.available_widgets.TextBox)
# text_box.set_plain_text("Hello, World!")
+4 -5
View File
@@ -225,10 +225,10 @@ def long_gscan(estart=7, end_en=20.5, g_low=4.5, g_high=9.0, nsteps=1500):
resol = (g_high - g_low) / nsteps
print(f"nsteps = {nsteps}; resolution is {resol} mm")
dock_area = bec.gui.new("LongGapScan")
wr = dock_area.new().new(bec.gui.available_widgets.Waveform)
wr = dock_area.new(bec.gui.available_widgets.Waveform)
mot = dev.id_gap
det = dev.lu_bpmsum
wr.plot(x_name=mot.name, y_name=det.name) ## names first !
wr.plot(device_x=mot.name, device_y=det.name) ## names first !
wr.x_label = mot.name
wr.y_label = det.name
g0 = dev.id_gap.readback.get()
@@ -275,10 +275,10 @@ def gscan(centre=0, gomax=0, detune=0):
import time
dock_area = bec.gui.new()
wr = dock_area.new().new(bec.gui.available_widgets.Waveform)
wr = dock_area.new(bec.gui.available_widgets.Waveform)
mot = dev.id_gap
det = dev.lu_bpmsum
wr.plot(x_name=mot.name, y_name=det.name) ## names first !
wr.plot(device_x=mot.name, device_y=det.name) ## names first !
# wr.plot(x=mot.name,y=det.name) ### this comes later
wr.x_label = mot.name
wr.y_label = det.name
@@ -317,4 +317,3 @@ def gscan(centre=0, gomax=0, detune=0):
return
+4 -4
View File
@@ -154,9 +154,9 @@ def select_bec_window(dock_area_name="Fitting"):
open_docks = bec.gui.windows
if open_docks.get(dock_area_name) is None:
dock_area = bec.gui.new(dock_area_name)
wf = dock_area.new("Plot").new(bec.gui.available_widgets.Waveform)
text_box = dock_area.new("Results", position="bottom").new(
widget=bec.gui.available_widgets.TextBox
wf = dock_area.new(bec.gui.available_widgets.Waveform, object_name="Plot")
text_box = dock_area.new(
bec.gui.available_widgets.TextBox, object_name="Results", where="bottom"
)
else:
wf = bec.gui.Fitting.Plot.Waveform
@@ -186,7 +186,7 @@ def plot_live_data_bec(motor_name, signal_name, window_name="Fitting"):
wf.title = "Scan: Live scan"
wf.x_label = motor_name
wf.y_label = signal_name
wf.plot(x_name=motor_name, y_name=signal_name)
wf.plot(device_x=motor_name, device_y=signal_name)
def plot_fitted_data_bec(data, fit_result):
+60 -18
View File
@@ -249,42 +249,79 @@ def scan_bpm(bpmname):
# Open a dock area and set up the heatmaps
dock_area = bec.gui.new("XBPM_Scan")
wf5 = dock_area.new("Sum").new(bec.gui.available_widgets.Heatmap)
wf1 = dock_area.new("Ch1", relative_to="Sum", position="bottom").new(
bec.gui.available_widgets.Heatmap
wf5 = dock_area.new(bec.gui.available_widgets.Heatmap, object_name="Sum")
wf1 = dock_area.new(
bec.gui.available_widgets.Heatmap,
object_name="Ch1",
relative_to="Sum",
where="bottom",
)
wf3 = dock_area.new("Ch3", relative_to="Ch1", position="right").new(
bec.gui.available_widgets.Heatmap
wf3 = dock_area.new(
bec.gui.available_widgets.Heatmap,
object_name="Ch3",
relative_to="Ch1",
where="right",
)
wf4 = dock_area.new("Ch4", relative_to="Ch3", position="bottom").new(
bec.gui.available_widgets.Heatmap
wf4 = dock_area.new(
bec.gui.available_widgets.Heatmap,
object_name="Ch4",
relative_to="Ch3",
where="bottom",
)
wf2 = dock_area.new("Ch2", relative_to="Ch1", position="bottom").new(
bec.gui.available_widgets.Heatmap
wf2 = dock_area.new(
bec.gui.available_widgets.Heatmap,
object_name="Ch2",
relative_to="Ch1",
where="bottom",
)
wfscan = dock_area.new("ScanControl").new(bec.gui.available_widgets.ScanControl)
wfscan = dock_area.new(bec.gui.available_widgets.ScanControl, object_name="ScanControl")
cfg = getattr(BPMScans, bpmname)
wf1.x_label = cfg["x_name"]
wf1.y_label = cfg["y_name"]
wf1.plot(x_name=cfg["x_name"], y_name=cfg["y_name"], z_name=cfg["z1_name"], color_map="plasma")
wf1.plot(
device_x=cfg["x_name"],
device_y=cfg["y_name"],
device_z=cfg["z1_name"],
color_map="plasma",
)
wf2.x_label = cfg["x_name"]
wf2.y_label = cfg["y_name"]
wf2.plot(x_name=cfg["x_name"], y_name=cfg["y_name"], z_name=cfg["z2_name"], color_map="plasma")
wf2.plot(
device_x=cfg["x_name"],
device_y=cfg["y_name"],
device_z=cfg["z2_name"],
color_map="plasma",
)
wf3.x_label = cfg["x_name"]
wf3.y_label = cfg["y_name"]
wf3.plot(x_name=cfg["x_name"], y_name=cfg["y_name"], z_name=cfg["z3_name"], color_map="plasma")
wf3.plot(
device_x=cfg["x_name"],
device_y=cfg["y_name"],
device_z=cfg["z3_name"],
color_map="plasma",
)
wf4.x_label = cfg["x_name"]
wf4.y_label = cfg["y_name"]
wf4.plot(x_name=cfg["x_name"], y_name=cfg["y_name"], z_name=cfg["z4_name"], color_map="plasma")
wf4.plot(
device_x=cfg["x_name"],
device_y=cfg["y_name"],
device_z=cfg["z4_name"],
color_map="plasma",
)
wf5.x_label = cfg["x_name"]
wf5.y_label = cfg["y_name"]
wf5.plot(x_name=cfg["x_name"], y_name=cfg["y_name"], z_name=cfg["z5_name"], color_map="plasma")
wf5.plot(
device_x=cfg["x_name"],
device_y=cfg["y_name"],
device_z=cfg["z5_name"],
color_map="plasma",
)
# Run the scan
x_mot = cfg["x_device"]
y_mot = cfg["y_device"]
@@ -304,15 +341,20 @@ def optimise_kb(mirror):
# Open a dock area and set up the heatmaps
dock_area = bec.gui.new(mirror)
wf1 = dock_area.new("Heatmap").new(bec.gui.available_widgets.Heatmap)
wf1 = dock_area.new(bec.gui.available_widgets.Heatmap, object_name="Heatmap")
wfscan = dock_area.new("ScanControl").new(bec.gui.available_widgets.ScanControl)
wfscan = dock_area.new(bec.gui.available_widgets.ScanControl, object_name="ScanControl")
cfg = getattr(MirrorConfig, mirror)
wf1.x_label = cfg["bu_name"]
wf1.y_label = cfg["bd_name"]
wf1.plot(x_name=cfg["bu_name"], y_name=cfg["bd_name"], z_name=cfg["z_name"], color_map="plasma")
wf1.plot(
device_x=cfg["bu_name"],
device_y=cfg["bd_name"],
device_z=cfg["z_name"],
color_map="plasma",
)
# Run the scan
x_mot = cfg["x_device"]