add ModuleFixTarget tab

This commit is contained in:
2022-08-25 17:17:54 +02:00
parent d625fbdfbd
commit 8fbd1c56af
4 changed files with 909 additions and 24 deletions

View File

@@ -69,6 +69,8 @@ TASK_PRELOCATED = "prelocated"
TASK_HELICAL = "helical"
TASK_EMBL = "embl"
ts.log('Import part 2/8:')
import ModuleFixTarget
import PrelocatedCoordinatesModel # ZAC: orig. code
from EmblModule import EmblWidget #ZAC: orig. code
from HelicalTable import HelicalTableWidget #ZAC: orig. code
@@ -644,6 +646,19 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow):
camera.epics_cam.set_fiducial(pic, 255)
self._goImg.setImage(pic)
def new_frame_sim_cb(self, **kwargs):
app=QApplication.instance()
sim=app._camera._sim
imgSeq=sim['imgSeq']
idx=sim['imgIdx']
sim['imgIdx']=(idx+1)%imgSeq.shape[0]
# _log.info('simulated idx:{}'.format(idx))
pic=imgSeq[idx]
self._goImg.setImage(pic)
delay=500 # ms -> 2fps
QtCore.QTimer.singleShot(delay, self.new_frame_sim_cb)
def load_stylesheet(self):
with open("swissmx.css", "r") as sheet:
self.setStyleSheet(sheet.read())
@@ -673,11 +688,11 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow):
toolbox = QToolBox()
layout.addWidget(toolbox)
self.build_faststage_group(toolbox)
self.build_group_faststage(toolbox)
# self.build_slits_group(toolbox)
self.build_collimator_group(toolbox)
self.build_posttube_group(toolbox)
self.build_xeye_group(toolbox)
self.build_group_collimator(toolbox)
self.build_group_posttube(toolbox)
self.build_group_xeye(toolbox)
#self.build_cryo_group(toolbox)
# monitor all axis for an axis fault
@@ -801,7 +816,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow):
msg = ""
self._message_critical_fault.setText(msg)
def build_faststage_group(self, toolbox):
def build_group_faststage(self, toolbox):
qutilities.add_item_to_toolbox(toolbox,"Fast Stage",
widget_list=[
# self.get_tweaker('SAR-EXPMX:MOT_BLGT', alias='backlight', label='backlight'),
@@ -813,7 +828,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow):
],
)
def build_collimator_group(self, toolbox):
def build_group_collimator(self, toolbox):
qutilities.add_item_to_toolbox(toolbox,"Collimator",
widget_list=[
self.get_tweaker("SARES30-ESBMX1", alias="colli_x", label="colli X", mtype="smaract_motor",),
@@ -821,7 +836,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow):
],
)
def build_posttube_group(self, toolbox):
def build_group_posttube(self, toolbox):
widgets = [
self.get_tweaker("SARES30-ESBMX4", alias="tube_usx", label="upstream X", mtype="smaract_motor",),
self.get_tweaker("SARES30-ESBMX6", alias="tube_usy", label="upstream Y", mtype="smaract_motor",),
@@ -851,7 +866,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow):
block.layout().addStretch()
toolbox.addItem(block, label)
def build_xeye_group(self, toolbox):
def build_group_xeye(self, toolbox):
qutilities.add_item_to_toolbox(
toolbox,
"X-Ray Eye",
@@ -1509,12 +1524,33 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow):
exp_tab.layout().addStretch()
# DAQ Methods Tabs
self.build_tab_module_fix_target()
self._OLD_build_daq_methods_grid_tab()
self._OLD_build_daq_methods_prelocated_tab() #ZAC: orig. code
self._OLD_create_helical_widgets() #ZAC: orig. code
self._OLD_build_daq_methods_embl_tab()
#self._OLD_build_sample_selection_tab()
def build_tab_module_fix_target(self):
#tab = self._tab_daq_method_prelocated
data=self._goTracked['objLst']
self._moduleFixTarget =mft = ModuleFixTarget.WndFixTarget(self,data)
tab = self._tabs_daq_methods.insertTab(0,mft,'Fix Target')
mft._btnAdd.clicked.connect(self.module_fix_target_add_obj)
#tab.layout().addWidget(mft)
mft.prefixSelected.connect(lambda prefix: self._le_prefix.setText(prefix))
mft.dataFileLoaded.connect(self._OLD_daq_method_prelocated_update_markers)
mft.prelocatedDataUpdated.connect(self._OLD_daq_method_prelocated_update_markers)
mft.markersDeleted.connect(self._OLD_daq_method_prelocated_remove_markers)
mft.moveFastStageRequest.connect(self._OLD_move_fast_stage)
self.fiducialPositionSelected.connect(self._OLD_daq_method_prelocated_set_fiducial)
self.appendPrelocatedPosition.connect(self._OLD_daq_method_prelocated_append_data)
#self._preloc_inspect_area = QPlainTextEdit()
#tab.layout().addWidget(self._preloc_inspect_area)
def switch_task(self, index=0):
stack = self._centerpiece_stack
@@ -1573,8 +1609,42 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow):
del app._raw_opt_ctr
return
def module_fix_target_add_obj(self,*args,**kwargs):
mft=self._moduleFixTarget
fx=self.tweakers["fast_x"].get_rbv()
fy=self.tweakers["fast_y"].get_rbv()
#cz=self.tweakers["fast_y"].get_rbv()
app=QApplication.instance()
geo=app._geometry
oc=geo._opt_ctr
idx=mft._cbType.currentIndex()
param=mft._txtParam.text()
# **************** OBSOLETE AND/OR OLD STUFF ****************
#cb.addItems(["Fiducial", "FixTarget(12.5x12.5)", "FixTarget(23.0x23.0)", "FixTarget(<param>)", "Grid(<param>)"])
if idx==0:
go=UsrGO.Fiducial((120, -100), (200, 150),(1,2,3))
elif idx==1:
v=geo.pos2pix((12.5, 0))
l=np.linalg.norm(v)
go=UsrGO.FixTargetFrame(-oc, (l, l), tpl='12.5x12.5')
elif idx==2:
v=geo.pos2pix((23, 0))
l=np.linalg.norm(v)
go=UsrGO.FixTargetFrame(-oc, (l, l), tpl='23.0x23.0')
elif idx==3:
go=UsrGO.FixTargetFrame((120, -100), (200, 150), tpl='test')
elif idx==4:
go=UsrGO.Grid((120, -100), (200, 150), (30, 22), 2)
else:
_log.error('set xstep 0..2 for tests')
self.vb.addItem(go)
obj=self._goTracked['objLst']
obj.append(go)
mft._tree.setData(obj)
# **************** OBSOLETE AND/OR OLD STUFF ****************
# functions are prefixed with _OLD_
@@ -1677,19 +1747,6 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow):
app=QApplication.instance()
app._camera.pause()
def _OLD_new_frame_sim_cb(self, **kwargs):
app=QApplication.instance()
sim=app._camera._sim
imgSeq=sim['imgSeq']
idx=sim['imgIdx']
sim['imgIdx']=(idx+1)%imgSeq.shape[0]
# _log.info('simulated idx:{}'.format(idx))
pic=imgSeq[idx]
self._goImg.setImage(pic)
delay=500 # ms -> 2fps
QtCore.QTimer.singleShot(delay, self.new_frame_sim_cb)
def _OLD_init_settings_tracker(self):
app=QApplication.instance()
cfg=app._cfg