moving config dialog to app_config
This commit is contained in:
233
swissmx.py
233
swissmx.py
@@ -95,7 +95,6 @@ import pyqtUsrObj as UsrGO
|
||||
|
||||
#from CustomROI import BeamMark, Grid, CrystalCircle #ZAC: orig. code
|
||||
|
||||
import GenericDialog
|
||||
#from GenericDialog import GenericDialog #ZAC: orig. code
|
||||
#from dialogs.PreferencesDialog import PreferencesDialog #ZAC: orig. code
|
||||
#from epics_widgets import zoom #ZAC: orig. code
|
||||
@@ -2267,7 +2266,7 @@ class Main(QMainWindow, Ui_MainWindow):
|
||||
dp.plot_gather(mode=11)
|
||||
|
||||
#plt.show(block=False)
|
||||
plt.show(block=True)
|
||||
#plt.show(block=True)
|
||||
return
|
||||
|
||||
|
||||
@@ -2931,9 +2930,6 @@ class Main(QMainWindow, Ui_MainWindow):
|
||||
self.shortcut = QShortcut(QKeySequence(Qt.Key_F12), self)
|
||||
self.shortcut.activated.connect(self.show_window_configuration)
|
||||
|
||||
self.shortcut = QShortcut(QKeySequence(Qt.Key_F5), self)
|
||||
self.shortcut.activated.connect(self.generic_dialog)
|
||||
|
||||
self.shortcut = QShortcut(QKeySequence(Qt.CTRL + Qt.Key_B), self)
|
||||
self.shortcut.activated.connect(lambda: self._beammark.toggle_handle())
|
||||
|
||||
@@ -2941,47 +2937,47 @@ class Main(QMainWindow, Ui_MainWindow):
|
||||
self.shortcut.activated.connect(self.camera_pause_toggle)
|
||||
|
||||
# adding a menu entry to one of the menus
|
||||
action = QAction("Beam Marker Size", self)
|
||||
action.setToolTip("Update the beam marker size on GUI; *not* the actual beam size!")
|
||||
action.setStatusTip("Update the beam marker size on GUI; *not* the actual beam size!")
|
||||
action.triggered.connect(self.set_beam_size_marker_dialog)
|
||||
action = QAction("geometry", self)
|
||||
action.setToolTip("Update optical center, beam marker size etc.")
|
||||
action.setStatusTip("Update optical center, beam marker size etc.")
|
||||
action.triggered.connect(lambda x: cfg.dlg_geometry(self))
|
||||
self.menuAdvanced.addAction(action)
|
||||
|
||||
action = QAction("Backlight Reference Positions", self)
|
||||
action.setToolTip("Update the reference positions for the backlight")
|
||||
action.setStatusTip("Update the reference positions for the backlight")
|
||||
action.triggered.connect(self.set_backlight_positions_dialog)
|
||||
action.triggered.connect(cfg.dlg_backlight_positions)
|
||||
self.menuAdvanced.addAction(action)
|
||||
|
||||
action = QAction("Collimator Reference Positions", self)
|
||||
action.setToolTip("Update the reference positions for the collimator")
|
||||
action.setStatusTip("Update the reference positions for the collimator")
|
||||
action.triggered.connect(self.set_collimator_reference_positions)
|
||||
self.menuAdvanced.addAction(action)
|
||||
|
||||
action = QAction("Cryojet Reference Positions", self)
|
||||
action.setToolTip("Update the reference positions for the cryojet nozzle position")
|
||||
action.setStatusTip("Update the reference positions for the cryojet nozzle position")
|
||||
action.triggered.connect(self.set_cryojet_positions_dialog)
|
||||
action.triggered.connect(cfg.dlg_collimator_reference_positions)
|
||||
self.menuAdvanced.addAction(action)
|
||||
|
||||
action = QAction("Post sample tube Reference Positions", self)
|
||||
action.setToolTip("Update the reference positions for the post tube")
|
||||
action.setStatusTip("Update the reference positions for the post tube")
|
||||
action.triggered.connect(self.set_posttube_references_dialog)
|
||||
action.triggered.connect(cfg.dlg_posttube_references)
|
||||
self.menuAdvanced.addAction(action)
|
||||
|
||||
action = QAction("Delta Tau Parameters", self)
|
||||
action.setToolTip("Parameters affecting the Delta Tau")
|
||||
action.setStatusTip("Parameters affecting the Delta Tau")
|
||||
action.triggered.connect(self.set_deltatau_parameters)
|
||||
action.triggered.connect(cfg.dlg_deltatau_parameters)
|
||||
self.menuAdvanced.addAction(action)
|
||||
|
||||
action = QAction("Tell Mount Positions", self)
|
||||
action.setToolTip("Mount positions for TELL sample changer")
|
||||
action.setStatusTip("Parameters affecting the Delta Tau")
|
||||
action.triggered.connect(self.set_tell_mount_positions)
|
||||
self.menuAdvanced.addAction(action)
|
||||
#action = QAction("Cryojet Reference Positions", self)
|
||||
#action.setToolTip("Update the reference positions for the cryojet nozzle position")
|
||||
#action.setStatusTip("Update the reference positions for the cryojet nozzle position")
|
||||
#action.triggered.connect(self.set_cryojet_positions_dialog)
|
||||
#self.menuAdvanced.addAction(action)
|
||||
|
||||
#action = QAction("Tell Mount Positions", self)
|
||||
#action.setToolTip("Mount positions for TELL sample changer")
|
||||
#action.setStatusTip("Parameters affecting the Delta Tau")
|
||||
#action.triggered.connect(cfg.dlg_tell_mount_positions)
|
||||
#self.menuAdvanced.addAction(action)
|
||||
|
||||
def daq_method_prelocated_remove_markers(self):
|
||||
try:
|
||||
@@ -3066,195 +3062,6 @@ class Main(QMainWindow, Ui_MainWindow):
|
||||
fx_motor.move_motor_to_position(x)
|
||||
fy_motor.move_motor_to_position(y)
|
||||
|
||||
def set_beam_size_marker_dialog(self):
|
||||
SPN=GenericDialog.Spinner
|
||||
app=QApplication.instance()
|
||||
cfg=app._cfg
|
||||
w, h = map(float,cfg.value(AppCfg.GEO_BEAM_SZ))
|
||||
d = GenericDialog.GenericDialog(
|
||||
title="geometry",
|
||||
message="Enter the size of the beam in microns",
|
||||
inputs={
|
||||
"bw": ("beam width um" ,w,SPN(w, min=1, max=200, suffix=" \u00B5m"),),
|
||||
"bh": ("beam height um",h,SPN(h, min=1, max=200, suffix=" \u00B5m"),),
|
||||
},
|
||||
)
|
||||
if d.exec():
|
||||
results = d.results
|
||||
_log.info("Updating beamsize to {}".format(results))
|
||||
bm_sz= (results["bw"], results["bh"])
|
||||
_log.debug("types {}".format(type(w)))
|
||||
cfg.setValue(AppCfg.GEO_BEAM_SZ, bm_sz)
|
||||
bm=self._goBeamMarker
|
||||
bm.setSize(bm_sz)
|
||||
#self._beammark.set_beam_size((w, h))
|
||||
cfg.sync()
|
||||
|
||||
def set_posttube_references_dialog(self):
|
||||
SPN=GenericDialog.Spinner
|
||||
app=QApplication.instance()
|
||||
cfg=app._cfg
|
||||
x_up = cfg.value(AppCfg.PST_X_UP , 0.0,type=float)
|
||||
y_up = cfg.value(AppCfg.PST_Y_UP , 0.0,type=float)
|
||||
x_down = cfg.value(AppCfg.PST_X_DOWN, 0.0,type=float)
|
||||
y_down = cfg.value(AppCfg.PST_Y_DOWN, 0.0,type=float)
|
||||
dx = cfg.value(AppCfg.PST_DX , 0.0,type=float)
|
||||
dy = cfg.value(AppCfg.PST_DY , 0.0,type=float)
|
||||
tz_in = cfg.value(AppCfg.PST_TZ_IN , 0.0,type=float)
|
||||
tz_out = cfg.value(AppCfg.PST_TZ_OUT, 0.0,type=float)
|
||||
|
||||
d = GenericDialog.GenericDialog(
|
||||
title="Post Sample Tube Configuration",
|
||||
message="Enter the relative displacements for X and Y to move the post sample tube either in or out.",
|
||||
inputs={
|
||||
AppCfg.PST_X_UP : ("Up X" , x_up , SPN(x_up , decimals=3, min=-45.0, max=15.0, suffix=" mm"), ),
|
||||
AppCfg.PST_Y_UP : ("Up Y" , y_up , SPN(y_up , decimals=3, min=-45.0, max=15.0, suffix=" mm"), ),
|
||||
AppCfg.PST_X_DOWN: ("Down X" , x_down, SPN(x_down, decimals=3, min=-45.0, max=15.0, suffix=" mm"), ),
|
||||
AppCfg.PST_Y_DOWN: ("Down Y" , y_down, SPN(y_down, decimals=3, min=-45.0, max=15.0, suffix=" mm"), ),
|
||||
AppCfg.PST_DX : ("out delta X" , dx , SPN(dx , decimals=3, min=-32.0, max=32.0, suffix=" mm"), ),
|
||||
AppCfg.PST_DY : ("out delta Y" , dy , SPN(dy , decimals=3, min=-32.0, max=32.0, suffix=" mm"), ),
|
||||
AppCfg.PST_TZ_IN : ("tube Z in position" , tz_in , SPN(tz_in , decimals=3, min=-8.0 , max=1.0 , suffix=" mm"), ),
|
||||
AppCfg.PST_TZ_OUT: ("tube Z OUT position", tz_out, SPN(tz_out, decimals=3, min=-8.0 , max=1.0 , suffix=" mm"), ),
|
||||
},
|
||||
)
|
||||
if d.exec():
|
||||
results = d.results
|
||||
_log.info("setting post-sample-tube displacements {}".format(results))
|
||||
for k, v in results.items():
|
||||
cfg.setValue(k, v)
|
||||
cfg.sync()
|
||||
|
||||
def set_collimator_reference_positions(self):
|
||||
SPN=GenericDialog.Spinner
|
||||
app=QApplication.instance()
|
||||
cfg=app._cfg
|
||||
x_out = cfg.value(AppCfg.COL_DX , 0.0,type=float)
|
||||
y_out = cfg.value(AppCfg.COL_DY , 0.0,type=float)
|
||||
x_in = cfg.value(AppCfg.COL_X_IN, 0.0,type=float)
|
||||
y_in = cfg.value(AppCfg.COL_Y_IN, 0.0,type=float)
|
||||
d = GenericDialog.GenericDialog(
|
||||
title="Collimator configuration",
|
||||
message="Enter reference positions for the collimator",
|
||||
inputs={
|
||||
AppCfg.COL_DX: ("Collimator out deltaX", x_out, SPN(x_out, decimals=3, min=-15.9, max=15.9, suffix=" mm"),),
|
||||
AppCfg.COL_DY: ("Collimator out deltaY", y_out, SPN(y_out, decimals=3, min=-15.9, max=15.9, suffix=" mm"),),
|
||||
AppCfg.COL_X_IN: ("Collimator in X", x_in, SPN(x_in, decimals=3, min=-15.9, max=15.9, suffix=" mm"),),
|
||||
AppCfg.COL_Y_IN: ("Collimator in Y", y_in, SPN(y_in, decimals=3, min=-15.9, max=15.9, suffix=" mm"),),
|
||||
},
|
||||
)
|
||||
if d.exec():
|
||||
results = d.results
|
||||
_log.info("setting collimator reference positions {}".format(results))
|
||||
for k, v in results.items():
|
||||
cfg.setValue(k, v)
|
||||
cfg.sync()
|
||||
|
||||
def set_backlight_positions_dialog(self):
|
||||
SPN=GenericDialog.Spinner
|
||||
app=QApplication.instance()
|
||||
cfg=app._cfg
|
||||
p_in = cfg.value(AppCfg.BKLGT_IN,0,type=int)
|
||||
p_out = cfg.value(AppCfg.BKLGT_OUT,0,type=int)
|
||||
d = GenericDialog.GenericDialog(
|
||||
title="Back Light configuration",
|
||||
message="Enter reference positions for the backlight",
|
||||
inputs={
|
||||
AppCfg.BKLGT_IN: ("In position" , p_in , SPN(p_in, min=-30000, max=10), ),
|
||||
AppCfg.BKLGT_OUT: ("Out position", p_out, SPN(p_out, min=-1000, max=10), ),
|
||||
},
|
||||
)
|
||||
if d.exec():
|
||||
results = d.results
|
||||
_log.info("setting back light reference positions {}".format(results))
|
||||
for k, v in results.items():
|
||||
cfg.setValue(k, v)
|
||||
cfg.sync()
|
||||
|
||||
def set_cryojet_positions_dialog(self):
|
||||
p_in = settings.value(CRYOJET_NOZZLE_IN, type=float)
|
||||
p_out = settings.value(CRYOJET_NOZZLE_OUT, type=float)
|
||||
motion_enabled = option(CRYOJET_MOTION_ENABLED)
|
||||
d = GenericDialog(
|
||||
title="Cryojet Nozzle Configuration",
|
||||
message="Enter reference positions for the cryojet nozzle position",
|
||||
inputs={
|
||||
CRYOJET_NOZZLE_IN: ("In position", p_in, Spinner(p_in, min=3, max=15)),
|
||||
CRYOJET_NOZZLE_OUT: ("Out position",p_out,Spinner(p_out, min=-1000, max=10),),
|
||||
CRYOJET_MOTION_ENABLED: ("Move Cryojet in Transitions",motion_enabled,Checkbox(motion_enabled, "move cryojet"),),
|
||||
},
|
||||
)
|
||||
if d.exec():
|
||||
results = d.results
|
||||
_log.info("setting cryojet reference positions {}".format(results))
|
||||
for k, v in results.items():
|
||||
settings.setValue(k, v)
|
||||
settings.sync()
|
||||
|
||||
def set_deltatau_parameters(self):
|
||||
SPN=GenericDialog.Spinner
|
||||
CB=GenericDialog.Checkbox
|
||||
app=QApplication.instance()
|
||||
cfg=app._cfg
|
||||
#dt1 = cfg.value(AppCfg.DT_HOST,'SAR-CPPM-EXPMX1')
|
||||
dt1 = cfg.value(AppCfg.DT_HOST,'localhost:10001:10002')
|
||||
dt2 = cfg.value(AppCfg.DT_VEL_SCL, 1, type=float)
|
||||
dt3 = cfg.option(AppCfg.DT_SHOW_PLOTS)
|
||||
|
||||
d = GenericDialog.GenericDialog(
|
||||
title="Delta Tau Parameters",
|
||||
message="These parameters affect the data collection.",
|
||||
inputs={
|
||||
AppCfg.DT_HOST:("host name (host[:port:port_gather])", dt1, QLineEdit(),),
|
||||
AppCfg.DT_VEL_SCL: ("Velocity Scale (1=optimal, 0=zero vel at target)", dt2,SPN(dt2, min=0, max=1, suffix=""),),
|
||||
AppCfg.DT_SHOW_PLOTS: ("show plots after collection", dt3,CB(dt3, "active"),),
|
||||
#DELTATAU_SORT_POINTS: ("Sort pointshoot/prelocated coords", b,CB(b, "sort points"),),
|
||||
},
|
||||
)
|
||||
if d.exec():
|
||||
results = d.results
|
||||
_log.info("setting delta tau parameters {}".format(results))
|
||||
for k, v in results.items():
|
||||
cfg.setValue(k, v)
|
||||
cfg.sync()
|
||||
|
||||
def set_tell_mount_positions(self):
|
||||
AUTODRY_ENABLED = "tell/autodry_enabled"
|
||||
AUTODRY_MAXMOUNTS = "tell/autodry_max_number_of_mounts"
|
||||
AUTODRY_MAXTIME = "tell/autodry_max_time"
|
||||
|
||||
SECS_HOURS = 60 * 60
|
||||
|
||||
enabled = option(AUTODRY_ENABLED)
|
||||
maxtime = settings.value(AUTODRY_MAXTIME, type=float) / SECS_HOURS
|
||||
maxmounts = settings.value(AUTODRY_MAXMOUNTS, type=int)
|
||||
|
||||
d = GenericDialog.GenericDialog(
|
||||
title="TELL Settings",
|
||||
message="These control some features of the TELL sample changer",
|
||||
inputs={
|
||||
AUTODRY_ENABLED: ("Auto dry", enabled,
|
||||
Checkbox(enabled, "enabled")),
|
||||
AUTODRY_MAXMOUNTS: ("Max. num. mounts between dry",maxmounts,
|
||||
Spinner(maxmounts, decimals=0, min=1, max=100, suffix=" mounts"),),
|
||||
AUTODRY_MAXTIME: ("Max. time between dry",maxtime,
|
||||
Spinner(maxtime, decimals=1, min=0.5, max=5, suffix=" hours"),),
|
||||
},
|
||||
)
|
||||
if d.exec():
|
||||
results = d.results
|
||||
_log.info("setting tell parameters {}".format(results))
|
||||
for k, v in results.items():
|
||||
if k == AUTODRY_MAXTIME:
|
||||
v = v * SECS_HOURS
|
||||
settings.setValue(k, v)
|
||||
settings.sync()
|
||||
|
||||
def generic_dialog(self, title="test", message=""):
|
||||
d = GenericDialog(title="Beamsize", message="some message")
|
||||
if d.exec():
|
||||
results = d.results
|
||||
print(results)
|
||||
|
||||
def toggle_maximized(self):
|
||||
if self.isMaximized():
|
||||
self.showNormal()
|
||||
|
||||
Reference in New Issue
Block a user