From 1041e3a3089ad6162ac51d5a4e529524b02e6a16 Mon Sep 17 00:00:00 2001 From: wyzula-jan Date: Thu, 5 Mar 2026 13:59:55 +0100 Subject: [PATCH] fix(bec-widgets): migration of scripts to V3 --- pxii_bec/macros/APscripts.py | 16 +++---- pxii_bec/macros/Undu_Helpers.py | 9 ++-- pxii_bec/macros/mx_basics.py | 8 ++-- pxii_bec/macros/mx_methods.py | 78 +++++++++++++++++++++++++-------- 4 files changed, 76 insertions(+), 35 deletions(-) diff --git a/pxii_bec/macros/APscripts.py b/pxii_bec/macros/APscripts.py index ea26559..80a3b0a 100755 --- a/pxii_bec/macros/APscripts.py +++ b/pxii_bec/macros/APscripts.py @@ -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!") diff --git a/pxii_bec/macros/Undu_Helpers.py b/pxii_bec/macros/Undu_Helpers.py index 8c984ed..49659ce 100755 --- a/pxii_bec/macros/Undu_Helpers.py +++ b/pxii_bec/macros/Undu_Helpers.py @@ -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 - diff --git a/pxii_bec/macros/mx_basics.py b/pxii_bec/macros/mx_basics.py index 853d690..48bc8c7 100755 --- a/pxii_bec/macros/mx_basics.py +++ b/pxii_bec/macros/mx_basics.py @@ -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): diff --git a/pxii_bec/macros/mx_methods.py b/pxii_bec/macros/mx_methods.py index e9ee114..d084623 100755 --- a/pxii_bec/macros/mx_methods.py +++ b/pxii_bec/macros/mx_methods.py @@ -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"] -- 2.52.0