diff --git a/app_config.py b/app_config.py index 88d93f4..b5c52b0 100644 --- a/app_config.py +++ b/app_config.py @@ -30,6 +30,8 @@ class MyJsonEncoder(json.JSONEncoder): return json.JSONEncoder.default(self, obj) class AppCfg(QSettings): + GBL_FLD_SCR_SHOT="global/folder_screenshot" + GEO_OPT_CTR='geometry/opt_ctr' GEO_PIX2POS='geometry/pix2pos' diff --git a/geometry.py b/geometry.py index b507da3..b3563b3 100755 --- a/geometry.py +++ b/geometry.py @@ -347,8 +347,13 @@ class geometry: A[:,0:2]=points[:,:2] y=np.asmatrix(y.ravel()).T A=np.asmatrix(A) - aa=(A.T*A).I*A.T*y + try: + aa=(A.T*A).I*A.T*y + except np.linalg.LinAlgError as e: + _log.warning(e) + return aa=aa.A.ravel() + print(f'plane={aa[0]}X+{aa[1]}Y+{aa[2]}') for p in points: print(f'{p}->{aa[0]*p[0]+aa[1]*p[1]+aa[2]}') self._fitPlane=aa diff --git a/swissmx.py b/swissmx.py index 04dd09c..87b2433 100755 --- a/swissmx.py +++ b/swissmx.py @@ -88,7 +88,7 @@ from PyQt5 import QtCore, QtGui from PyQt5.QtCore import Qt, pyqtSlot, QSize, QRegExp, pyqtSignal, QObject, QThread from PyQt5.QtGui import QKeySequence, QPixmap, QRegExpValidator from PyQt5.QtWidgets import ( - QAction, QApplication, QDoubleSpinBox, QFormLayout, QGridLayout, QGroupBox, QHBoxLayout, QLabel, QLineEdit, + QAction, QApplication, QDoubleSpinBox, QFileDialog, QFormLayout, QGridLayout, QGroupBox, QHBoxLayout, QLabel, QLineEdit, QMessageBox, QPlainTextEdit, QProgressBar, QProgressDialog, QPushButton, QShortcut, QSizePolicy, QSpinBox, QSplashScreen, QTextBrowser, QToolBox, QVBoxLayout, QWidget,) from PyQt5.uic import loadUiType @@ -216,7 +216,7 @@ class StartupSplash: Ui_MainWindow, QMainWindow = loadUiType("swissmx.ui") -class SwissMxWnd(QMainWindow, Ui_MainWindow): +class WndSwissMx(QMainWindow, Ui_MainWindow): #pixelsPerMillimeter = pyqtSignal(float) #beamCameraCoordinatesChanged = pyqtSignal(float, float) addGridRequest = pyqtSignal(float, float) @@ -237,7 +237,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): daqAborted = pyqtSignal() def __init__(self,): - super(SwissMxWnd, self).__init__() + super(WndSwissMx, self).__init__() self.setupUi(self) app=QApplication.instance() @@ -328,17 +328,17 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): self.prepare_left_tabs() #self.update_beam_marker(qoptic_zoom.get_sp()) #ZAC: orig. code self._centerpiece_stack.setCurrentIndex(0) - self._centerpiece_stack.currentChanged.connect(self.center_piece_update) + self._centerpiece_stack.currentChanged.connect(self.cb_update_center_widget) self._OLD_init_validators() #self.init_settings_tracker() ? not needed, was for TELL ? self._OLD_wire_storage() - self.center_piece_update(0) # start camera updater + self.cb_update_center_widget(0) # start camera updater curzoom = app._zoom.get_val() _log.debug(f"starting app with zoom at {curzoom}") - self.zoom_changed_cb(curzoom) - self._tabs_daq_methods.currentChanged.connect(self.switch_task) - self.switch_task() + self.cb_zoom_changed(curzoom) + self._tabs_daq_methods.currentChanged.connect(self.cb_switch_task) + self.cb_switch_task() def init_settings(self): app = QApplication.instance() @@ -378,8 +378,8 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): self.microscope_page.setLayout(QVBoxLayout()) self.microscope_page.layout().addWidget(self.glw) self.glw.show() - self.glw.scene().sigMouseMoved.connect(self.mouse_move_event) - self.glw.scene().sigMouseClicked.connect(self.mouse_click_event) + self.glw.scene().sigMouseMoved.connect(self.cb_mouse_move) + self.glw.scene().sigMouseClicked.connect(self.cb_mouse_click) #--- viewbox --- #self.vb=vb=self.glw.addViewBox(invertY=False,border='r',enableMenu=False) @@ -412,18 +412,22 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): #grid.setTransform(tr) # assign transform vb.addItem(grid) - #--- beam marker --- - bm_sz=np.array((50, 40)) # it is immidiatly repositioned in zoom_changed_cb - self._goBeamMarker=bm=UsrGO.Marker(-opt_ctr-bm_sz/2,bm_sz,mode=0) - bm.setTransform(tr) # assign transform - vb.addItem(bm) - #--- opctical center ---- oc_sz=np.array((50,50)) self._goOptCtr=obj=UsrGO.Marker(-opt_ctr-oc_sz/2, oc_sz,mode=1) - bm.setTransform(tr) # assign transform + obj.sigRegionChangeFinished.connect(self.cb_marker_moved) + #obj.setTransform(tr) # assign transform vb.addItem(obj) + #--- beam marker --- + bm_sz=np.array((50, 40)) # it is immidiatly repositioned in cb_zoom_changed + self._goBeamMarker=bm=UsrGO.Marker(-opt_ctr-bm_sz/2,bm_sz,mode=0) + bm._size_eu=cfg.value(AppCfg.GEO_BEAM_SZ) + bm._pos_eu=cfg.value(AppCfg.GEO_BEAM_POS) + bm.sigRegionChangeFinished.connect(self.cb_marker_moved) + #bm.setTransform(tr) # assign transform + vb.addItem(bm) + #--- testing scan grid --- self.track_objects() # first call is needed to initialize the structure self._goTracked # #go=UsrGO.Grid((120, -100), (200, 150), (30, 22), 2) @@ -440,13 +444,13 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): self.toolBar.setToolButtonStyle(Qt.ToolButtonTextUnderIcon) self.shortcut = QShortcut(QKeySequence(Qt.CTRL + Qt.SHIFT + Qt.Key_S), self) - self.shortcut.activated.connect(self.saveSampleCameraScreenshot) + self.shortcut.activated.connect(self.cb_save_cam_image) self.shortcut = QShortcut(QKeySequence(Qt.Key_F2), self) - self.shortcut.activated.connect(self.saveSampleCameraScreenshot) + self.shortcut.activated.connect(self.cb_save_cam_image) self.shortcut = QShortcut(QKeySequence(Qt.CTRL + Qt.Key_S), self) - self.shortcut.activated.connect(self.saveSampleCameraScreenshotView) + self.shortcut.activated.connect(self.cb_save_cam_image) self.shortcut = QShortcut(QKeySequence(Qt.CTRL + Qt.SHIFT + Qt.Key_T), self) self.shortcut.activated.connect(lambda: qutilities.toggle_warn(SKIP_ESCAPE_TRANSITIONS_IF_SAFE)) @@ -459,20 +463,20 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): self.shortcut = QShortcut(QKeySequence(Qt.CTRL + qkey), self) self.shortcut.activated.connect(lambda key=k: self.gotoBookmark(key)) - self._button_collect.clicked.connect(self.execute_collection) + self._button_collect.clicked.connect(self.cb_execute_collection) # Toolbar buttons icon_size = QSize(50, 50) icon = qtawesome.icon("material.photo_camera") - action = QAction(icon, "Save View", self) - action.setToolTip("(Ctrl+S) Take a screenshot of the currently visible sample image, including markers. Saves in current folder.") - action.triggered.connect(self.saveSampleCameraScreenshotView) - self.toolBar.addAction(action) - action = QAction(icon, "Save Original", self) action.setToolTip("(Ctrl+Shift+S) Take a screenshot of the sample image, without markers. Saves in current folder.") - action.triggered.connect(self.saveSampleCameraScreenshot) + action.triggered.connect(self.cb_save_cam_image) + self.toolBar.addAction(action) + + action = QAction(icon, "Save View", self) + action.setToolTip("(Ctrl+S) Take a screenshot of the currently visible sample image, including markers. Saves in current folder.") + action.triggered.connect(lambda: self.cb_save_cam_image(True)) self.toolBar.addAction(action) if os.getenv("DEVELOPMENT_VERSION"): @@ -510,27 +514,27 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): action = QAction(icon, "Sample\nExchange", self) action.setToolTip("Move devices so a sample can be exchanged.") action.setObjectName("action_SampleExchange") - action.triggered.connect(self.escape_goToSampleExchange) + action.triggered.connect(self.cb_esc_sample_exchange) self.toolBar.addAction(action) self.toolBar.widgetForAction(action).setAccessibleName("action_SampleExchange") icon = qtawesome.icon("material.my_location") action = QAction(icon, "Sample\nAlignment", self) action.setToolTip("Move devices so a sample can be aligned.") - action.triggered.connect(self.escape_goToSampleAlignment) + action.triggered.connect(self.cb_esc_sample_alignment) self.toolBar.addAction(action) self.toolBar.widgetForAction(action).setAccessibleName("action_SampleAlignment") icon = qtawesome.icon("material.fingerprint") action = QAction(icon, "Data\nCollection", self) action.setToolTip("Move devices so a sample can be collected.") - action.triggered.connect(self.escape_goToDataCollection) + action.triggered.connect(self.cb_esc_data_collection) self.toolBar.addAction(action) self.toolBar.widgetForAction(action).setAccessibleName("action_DataCollection") - self.actionQuit.triggered.connect(self.really_quit) + self.actionQuit.triggered.connect(self.cb_really_quit) self.actionPreferences.triggered.connect(self._OLD_openPreferencesDialog) - self.actionHome_Fast_Stages.triggered.connect(self.home_deltatau_faststages) + self.actionHome_Fast_Stages.triggered.connect(self.cb_deltatau_home_faststages) self.actionUser_Storage.triggered.connect(self._OLD_update_user_and_storage) self.shortcut = QShortcut(QKeySequence(Qt.CTRL + Qt.SHIFT + Qt.Key_L), self) @@ -619,7 +623,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): else: event.ignore() - def center_piece_update(self, index): + def cb_update_center_widget(self, index): if index > 0: # not showing camera image _log.warning("listening to zescape") self.timer.stop() @@ -630,11 +634,11 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): else: app=QApplication.instance() try: - self.new_frame_sim_cb() + self.cb_new_frame_sim() except AttributeError: - app._camera.run(self.new_frame_pv_cb) + app._camera.run(self.cb_new_frame_pv) - def new_frame_pv_cb(self, **kwargs): + def cb_new_frame_pv(self, **kwargs): #_log.debug('new_frame_pv_cb count {}'.format(kwargs['count'])) app=QApplication.instance() sz=app._camera._sz @@ -648,7 +652,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): camera.epics_cam.set_fiducial(pic, 255) self._goImg.setImage(pic) - def new_frame_sim_cb(self, **kwargs): + def cb_new_frame_sim(self, **kwargs): app=QApplication.instance() sim=app._camera._sim imgSeq=sim['imgSeq'] @@ -659,7 +663,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): self._goImg.setImage(pic) delay=500 # ms -> 2fps - QtCore.QTimer.singleShot(delay, self.new_frame_sim_cb) + QtCore.QTimer.singleShot(delay, self.cb_new_frame_sim) def load_stylesheet(self): with open("swissmx.css", "r") as sheet: @@ -682,8 +686,8 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): self.zoombox = zoom.Zoom() self.zoombox.init_settings() - self.zoombox.zoomChanged.connect(self.zoom_changed_cb) - self.zoombox.moveBacklight.connect(self.safe_backlight_move) + self.zoombox.zoomChanged.connect(self.cb_zoom_changed) + self.zoombox.moveBacklight.connect(self.cb_move_backlight_safe) layout.addWidget(self.zoombox) @@ -699,7 +703,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): # monitor all axis for an axis fault for key, tweaker in self.tweakers.items(): - tweaker.event_axis_fault.connect(self.axis_fault) + tweaker.event_axis_fault.connect(self.cb_axis_fault) #self.tweakers["fast_x"].event_readback.connect(lambda alias, value, kw: self.fast_x_position.emit(value)) #self.tweakers["fast_y"].event_readback.connect(lambda alias, value, kw: self.fast_y_position.emit(value)) @@ -708,29 +712,47 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): self.tweakers["fast_y"].event_val.connect(lambda rec_name, kw: self.track_objects()) # layout.addStretch() - def zoom_changed_cb(self, value): - #self.zoomChanged.emit(value) + def cb_marker_moved(self,obj,*args,**kwargs): + _log.debug(args) + _log.debug(kwargs) app=QApplication.instance() cfg=app._cfg geo=app._geometry + opt_ctr=geo._opt_ctr + if obj==self._goOptCtr: + oc_pos=obj.pos() + oc_sz=obj.size() + geo._opt_ctr=opt_ctr=np.array(-oc_pos-oc_sz/2) + _log.debug(f'{obj}->{opt_ctr} !!! NOT SAVED IN CONFIG !!!') + #cfg.setValue(AppCfg.GEO_OPT_CTR,bm_pos) + elif obj==self._goBeamMarker: + bm_pos=obj.pos() + bm_sz=obj.size() + obj._pos_eu=bm_pos=-geo.pix2pos(bm_pos+opt_ctr+bm_sz/2) + _log.debug(f'{obj}->{bm_pos} !!! NOT SAVED IN CONFIG !!!') + #cfg.setValue(AppCfg.GEO_BEAM_POS,bm_pos) + + def cb_zoom_changed(self, value): + #self.zoomChanged.emit(value) + app=QApplication.instance() + geo=app._geometry try: geo.interp_zoom(value) except AttributeError as e: _log.warning(e) else: opt_ctr=geo._opt_ctr - bm_sz=cfg.value(AppCfg.GEO_BEAM_SZ) - bm_pos=cfg.value(AppCfg.GEO_BEAM_POS) - bm_sz=np.abs(geo.pos2pix(bm_sz)) - bm_pos=-opt_ctr-geo.pos2pix(bm_pos)-bm_sz/2 bm=self._goBeamMarker + bm_sz=np.abs(geo.pos2pix(bm._size_eu)) + bm_pos=-opt_ctr-geo.pos2pix(bm._pos_eu)-bm_sz/2 + bm.blockSignals(True) # avoid to call cb_marker_moved bm.setPos(bm_pos,finish=False) bm.setSize(bm_sz) + bm.blockSignals(False) _log.debug(f"zoom->{value} beam marker pos:{bm_pos} sz:{bm_sz})") self.track_objects() - #self.update_beam_marker(value) - def safe_backlight_move(self, pos): + def cb_move_backlight_safe(self, pos): # any move of backlight requires post sample tube out try: self.assert_post_tube_position(pos="out") @@ -798,7 +820,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): block.layout().addWidget(c) return block - def axis_fault(self, pvname, kw): + def cb_axis_fault(self, pvname, kw): """ swissmx - {'pvname': 'SAR-EXPMX:MOT_FY.STAT', 'value': 0, 'char_value': 'NO_ALARM', 'status': 0, 'ftype': 17, 'chid': 38980392, 'host': 'SAR-CPPM-EXPMX1.psi.ch:5064', 'count': 1, 'access': 'read-only', 'write_access': False, 'read_access': True, @@ -885,7 +907,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): def active_task(self): return self._active_task - def mouse_move_event(self, pos): + def cb_mouse_move(self, pos): app = QApplication.instance() self._mouse_pos = pos task = self.active_task() @@ -929,7 +951,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): ) ) - def mouse_click_event(self, event): + def cb_mouse_click(self, event): #_log.debug("{}".format(event)) #_log.debug("screen pos {}".format(event.screenPos())) #pixel position on the whole screen #_log.debug("scene pos {}".format(event.scenePos())) #pixel position on the scene (including black frame) @@ -1191,50 +1213,36 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): #x=imgPos.x();y=imgPos.y() @pyqtSlot() - def saveSampleCameraScreenshot(self): - outf = self.get_screenshot_filename() - _log.info("saving original clean screenshot: {}".format(outf)) - try: - sample_camera.saveimage(outf) - except Exception as e: - _log.warning(e) - QMessageBox.warning(self, "Screenshot: failed to save image", "Failed to save screenshot!") - - @pyqtSlot() - def saveSampleCameraScreenshotView(self): - outf = self.get_screenshot_filename() - _log.info("saving view screenshot: {}".format(outf)) - - exporter = pg.exporters.ImageExporter(self.vb) - - # set export parameters if needed - exporter.parameters()["width"] = 2000 # (note this also affects height parameter) - - # save to file - try: - exporter.export(outf) - except Exception as e: - _log.warning(e) - QMessageBox.warning(self, "Screenshot: failed to save viewer image", "Failed to save screenshot of viewer!",) - - def get_screenshot_filename(self): - global folders - _log.info("taking screenhot") - prefix = folders.prefix - folder = folders.res_folder - base = time.strftime("{}_%Y%m%d_%H%M%S.png".format(prefix)) - if not os._exists(folder): + def cb_save_cam_image(self,overlays=False): + app=QApplication.instance() + cam=app._camera + filename, _ = QFileDialog.getSaveFileName(self,"Save data file",'', 'PNG files (*.png);;all files (*)') + if not filename: + return + _log.info(f"saving view screenshot: {filename}") + #try: + if not overlays: + import PIL.Image + #img=PIL.Image.fromarray(cam.pic.astype(np.uint8)) try: - os.makedirs(folder, 0o750, exist_ok=True) - except: - msg = "Failed to create folder: {}".format(folder) - _log.warning(msg) - QMessageBox.warning(self, "Screenshot: failed to create folder", "Failed to create output folder for screenshot!\n\n\tScreenshot not taken!",) - raise - outf = os.path.join(folder, base) - return outf + pic=cam.pic + except AttributeError: + sim=app._camera._sim + pic=cam._sim['imgSeq'][sim['imgIdx']] + img=PIL.Image.fromarray(pic) + img.save(filename) + else: + exporter = pg.exporters.ImageExporter(self.vb) + # set export parameters if needed + #exporter.parameters()["width"] = 2000 # (note this also affects height parameter) + # save to file + exporter.export(filename) - def execute_collection(self): + #except Exception as e: + # _log.warning(e) + # QMessageBox.warning(self, "Screenshot: failed to save image", "Failed to save screenshot!") + + def cb_execute_collection(self): app=QApplication.instance() geo=app._geometry #zoom=app._zoom.get_val() @@ -1333,7 +1341,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): elif task == TASK_EMBL: self.daq_embl_collect_points() - def escape_goToSampleExchange(self): + def cb_esc_sample_exchange(self): self._escape_current_state = "busy" steps = [] if option(CRYOJET_MOTION_ENABLED): @@ -1348,7 +1356,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): self.escape_run_steps(steps, "Transitioning to Sample Exchange") self._escape_current_state = "ManualSampleExchange" - def escape_goToSampleAlignment(self): + def cb_esc_sample_alignment(self): app=QApplication.instance() self._escape_current_state = "busy" @@ -1362,7 +1370,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): self.escape_run_steps(steps, "Transitioning to Sample Alignment") self._escape_current_state = "SampleAlignment" - def escape_goToDataCollection(self): + def cb_esc_data_collection(self): self._escape_current_state = "busy" steps = [ # lambda: sample_selection.tell.set_current(30.0), @@ -1375,19 +1383,19 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): self.escape_run_steps(steps, "Transitioning to Data Collection") self._escape_current_state = "DataCollection" - def really_quit(self): + def cb_really_quit(self): """called when user Ctrl-Q the app""" if QMessageBox.question(self, "", "Are you sure you want to quit?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No,) == QMessageBox.Yes: self._do_quit = True self.close() - def home_deltatau_faststages(self): + def cb_deltatau_home_faststages(self): _log.warning("homing fast stages") epics.PV("SAR-EXPMX1:ASYN.AOUT").put(b"enable plc 1") def prepare_left_tabs(self): tabs = self._left_tabs - tabs.currentChanged.connect(self.switch_task) + tabs.currentChanged.connect(self.cb_switch_task) setup_tab = self._tab_setup exp_tab = self._tab_experiment @@ -1532,11 +1540,11 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): #grp.layout().addWidget(self._ppm_feature_size_spinbox, 0, 1) self._btn_pix2pos = but = QPushButton("pix2pos") but.setCheckable(True) - but.clicked.connect(self.update_pix2pos) + but.clicked.connect(self.cb_update_pix2pos) grp.layout().addWidget(but, 0, 0) self._btn_opt_ctr = but = QPushButton("opt_ctr") but.setCheckable(True) - but.clicked.connect(self.update_opt_ctr) + but.clicked.connect(self.cb_update_opt_ctr) grp.layout().addWidget(but, 1, 0) help = QTextBrowser() @@ -1570,7 +1578,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): # tbox.addItem(grp, "PPM ToolBox") # self._ppm_toolbox = grp - tbox.currentChanged.connect(self.switch_task) + tbox.currentChanged.connect(self.cb_switch_task) # final stretch # setup_tab.layout().addStretch() @@ -1610,7 +1618,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): #tab.layout().addWidget(self._preloc_inspect_area) - def switch_task(self, index=0): + def cb_switch_task(self, index=0): stack = self._centerpiece_stack task = self._left_tabs.currentWidget().accessibleName() setup_task = self._setup_toolbox.currentWidget().accessibleName() @@ -1633,7 +1641,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): self.set_active_task(active_task) self._status_task.setText(active_task) - def update_pix2pos(self, calib): + def cb_update_pix2pos(self, calib): app=QApplication.instance() if calib: _log.info("received new pix2pos calibration") @@ -1644,11 +1652,11 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): res=QMessageBox.question(self, "calibration", f"use calibration\n{s} ? ") if res==QMessageBox.Yes: geo=app._geometry - geo.update_pix2pos(app._raw_pix2pos) + geo.cb_update_pix2pos(app._raw_pix2pos) app._cfg.setValue(AppCfg.GEO_PIX2POS, geo._lut_pix2pos) del app._raw_pix2pos - def update_opt_ctr(self, calib): + def cb_update_opt_ctr(self, calib): app=QApplication.instance() if calib: _log.info("received new pix2pos calibration") @@ -1732,6 +1740,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): sz=np.array(go._dscr['size']) fid=fid/sz trf=geometry.geometry.least_square_trf(ptFitTrf,fid) + print(trf) tr=go.transform() tr.setMatrix(1, trf[1,0]/trf[0,0], 0, trf[0,1]/trf[1,1], 1, 0, @@ -2044,7 +2053,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): ) self.move_gonio_to_mount_position(offset=self._pin_mounting_offset) elif "samplealignment" in state: - self.escape_goToSampleAlignment() + self.cb_esc_sample_alignment() except: zescape.reply("Maintenance") zescape.reply(self._escape_current_state) @@ -2238,12 +2247,12 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): self.engage_mouse_tracking() def _OLD_engage_mouse_tracking(self): - self.glw.scene().sigMouseMoved.connect(self.mouse_move_event) + self.glw.scene().sigMouseMoved.connect(self.cb_mouse_move) self.glw.scene().sigMouseMoved.emit() self._mouse_tracking = True def _OLD_disengage_mouse_tracking(self): - self.glw.scene().sigMouseMoved.disconnect(self.mouse_move_event) + self.glw.scene().sigMouseMoved.disconnect(self.cb_mouse_move) self._mouse_tracking = False self._lb_coords.setText("") @@ -2376,7 +2385,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): (omega, t_omega, 0.01), ] ) - self.escape_goToSampleExchange() + self.cb_esc_sample_exchange() def _OLD_lock_goniometer(self): # tell.set_in_mount_position(True) @@ -3063,7 +3072,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): self.daq_method_prelocated_update_markers() if option(ACTIVATE_PULSE_PICKER) or not option(SKIP_ESCAPE_TRANSITIONS_IF_SAFE): - self.escape_goToSampleAlignment() + self.cb_esc_sample_alignment() sequence = {"delta tau program": shapepath.prg, "points": shapepath.points.tolist(), "timestamp": tdstamp(),} @@ -3111,7 +3120,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): return if option(ACTIVATE_PULSE_PICKER) or not option(SKIP_ESCAPE_TRANSITIONS_IF_SAFE): - self.escape_goToDataCollection() + self.cb_esc_data_collection() folders.make_if_needed() @@ -3260,7 +3269,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): self.re_connect_collect_button() jungfrau_detector.abort() if option(ACTIVATE_PULSE_PICKER) or not option(SKIP_ESCAPE_TRANSITIONS_IF_SAFE): - self.escape_goToSampleAlignment() + self.cb_esc_sample_alignment() self.increaseRunNumberRequest.emit() if option(DELTATAU_SHOW_PLOTS): @@ -3323,15 +3332,15 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow): but = QPushButton("Exchange\nSample") but.setAccessibleName("escape_button_se") but.setObjectName("action_SampleExchange") - but.clicked.connect(self.escape_goToSampleExchange) + but.clicked.connect(self.cb_esc_sample_exchange) layout.addWidget(but) but = QPushButton("Alignment") but.setAccessibleName("escape_button_sa") - but.clicked.connect(self.escape_goToSampleAlignment) + but.clicked.connect(self.cb_esc_sample_alignment) layout.addWidget(but) but = QPushButton("Collection") but.setAccessibleName("escape_button_dc") - but.clicked.connect(self.escape_goToDataCollection) + but.clicked.connect(self.cb_esc_data_collection) layout.addWidget(but) cont.layout().addWidget(w) @@ -3565,7 +3574,7 @@ if __name__=="__main__": startupWin.set(60, f'start main window') - app._mainWnd=wnd=SwissMxWnd() + app._mainWnd=wnd=WndSwissMx() wnd.show() startupWin._wnd.finish(wnd)