have swissmx.py running with some commented modules in ESC network

git dt 98297263 swissmx.py
 git dt 7445a5aa CustomROI.py app_config.py app_utils.py epics_widgets/MotorTweak.py epics_widgets/SmaractMotorTweak.py
This commit is contained in:
2022-07-15 09:41:21 +02:00
parent 7445a5aae6
commit db7e5e537f
6 changed files with 124 additions and 105 deletions

View File

@@ -4,7 +4,7 @@ from PyQt5 import QtGui, QtCore
from PyQt5.QtGui import QColor, QTransform from PyQt5.QtGui import QColor, QTransform
from PyQt5.QtWidgets import QMenu, QAction, QSpinBox, QMenu from PyQt5.QtWidgets import QMenu, QAction, QSpinBox, QMenu
from GenericDialog import GenericDialog #from GenericDialog import GenericDialog #ZAC: orig. code
from pyqtgraph import ROI, Point, RectROI, mkPen from pyqtgraph import ROI, Point, RectROI, mkPen
from pyqtgraph import functions as fn from pyqtgraph import functions as fn

View File

@@ -151,3 +151,7 @@ https://pyepics.github.io/pyepics/arrays.html
EPICS_CA_ADDR_LIST='129.129.244.255 sf-saresc-cagw.psi.ch:5062 sf-saresc-cagw.psi.ch:5066' EPICS_CA_ADDR_LIST='129.129.244.255 sf-saresc-cagw.psi.ch:5062 sf-saresc-cagw.psi.ch:5066'
cd /home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/python/oldRepos/app/src cd /home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/python/oldRepos/app/src
python swissmx.py python swissmx.py
caput SAR-EXPMX:MOT_FX.RBV -2.700
caput SAR-EXPMX:MOT_FY.RBV -7.450
caput SAR-EXPMX:MOT_CZ.RBV 1.509

View File

@@ -24,11 +24,10 @@ Best regards
Helge Helge
""" """
import enum
import logging import logging
_log = logging.getLogger(__name__) _log = logging.getLogger(__name__)
import epics import enum, epics, time
import numpy as np import numpy as np
@@ -226,6 +225,10 @@ class epics_cam(object):
self._sim['imgIdx']=0 self._sim['imgIdx']=0
_log.info('dome') _log.info('dome')
def set_transformations(self,*args):
_log.error('OLD FUNCTION NOT IMPLEMENTED {}'.format(args))
if __name__ == "__main__": if __name__ == "__main__":
import time, os, PIL.Image, platform, subprocess import time, os, PIL.Image, platform, subprocess
import argparse import argparse
@@ -259,6 +262,7 @@ if __name__ == "__main__":
if not args.ui: if not args.ui:
cam = epics_cam(prefix=args.prefix) cam = epics_cam(prefix=args.prefix)
#cam._transformation=np.array(((-1,0),(0,1)),dtype=np.uint8) #ZAC: orig. code
if args.prefix is None: if args.prefix is None:
cam.sim_gen(mode=args.sim) cam.sim_gen(mode=args.sim)

View File

@@ -8,7 +8,7 @@ from PyQt5.uic import loadUiType
from epics import PV from epics import PV
from epics.ca import pend_event from epics.ca import pend_event
from app_utils import assert_tweaker_positions #from app_utils import assert_tweaker_positions #ZAC: orig. code
Ui_MotorTweak, QWidget = loadUiType('epics_widgets/MotorTweak.ui') Ui_MotorTweak, QWidget = loadUiType('epics_widgets/MotorTweak.ui')
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View File

@@ -8,12 +8,15 @@
''' '''
coordinate systems, optical center, xray axis, pixel sizes etc. coordinate systems, optical center, xray axis, pixel sizes etc.
''' '''
import logging
import numpy as np
_log = logging.getLogger(__name__)
class geometry: class geometry:
def __init__(self): def __init__(self):
pass pass
def find_optical_center(p): def find_optical_center(self,p):
# p is an array of # p is an array of
# at zoom out: (p1x,p1y),(p2x,p2y),(p3x,p3y),... # at zoom out: (p1x,p1y),(p2x,p2y),(p3x,p3y),...
# at zoom in : (p1x,p1y),(p2x,p2y),(p3x,p3y),... # at zoom in : (p1x,p1y),(p2x,p2y),(p3x,p3y),...
@@ -24,7 +27,7 @@ class geometry:
# this coordinate represents also the origin of other coordinates # this coordinate represents also the origin of other coordinates
pass pass
def zoom2pixsz(zoom): def zoom2pixsz(self,zoom):
# this returns the pixel size at a given zoom level # this returns the pixel size at a given zoom level
# the returned value is a 2x2 matrix: # the returned value is a 2x2 matrix:
# [pxx pxy] # [pxx pxy]
@@ -34,7 +37,7 @@ class geometry:
# [pyx pyy]*[ny] results in a vector in meter of a vector [nx,ny] pixels in x and y direction # [pyx pyy]*[ny] results in a vector in meter of a vector [nx,ny] pixels in x and y direction
pass pass
def set_zoom2pixsz(meas): def set_zoom2pixsz(self,meas):
#calculates _lut_z2p out of measurements #calculates _lut_z2p out of measurements
# the _lut_z2p is dictionaty a lookuptable # the _lut_z2p is dictionaty a lookuptable
# zoom {1,200,400,600,800,1000} # zoom {1,200,400,600,800,1000}
@@ -44,23 +47,23 @@ class geometry:
'zoom': np.array((1,200,400,600,800,1000),dtype=np.float32), 'zoom': np.array((1,200,400,600,800,1000),dtype=np.float32),
'pixsz': np.array( 'pixsz': np.array(
#((pxx,pxy),(pyx,pyy)), # zoom n #((pxx,pxy),(pyx,pyy)), # zoom n
(( 1,0),(0, 1)), # zoom 1 ((( 1,0),(0, 1)), # zoom 1
(( 2,0),(0, 2)), # zoom 200 (( 2,0),(0, 2)), # zoom 200
(( 4,0),(0, 4)), # zoom 400 (( 4,0),(0, 4)), # zoom 400
(( 6,0),(0, 6)), # zoom 600 (( 6,0),(0, 6)), # zoom 600
(( 8,0),(0, 8)), # zoom 800 (( 8,0),(0, 8)), # zoom 800
((10,0),(0,10)), # zoom 1000 ((10,0),(0,10))), # zoom 1000
dtype=np.float32)} dtype=np.float32)}
n=len(meas) n=len(meas)
zoom =np.ndarray(shape=n,dtype=np.float32) zoom =np.ndarray(shape=n,dtype=np.float32)
pixsz=np.ndarray(shape=(n,2,2),dtype=np.float32) pixsz=np.ndarray(shape=(n,2,2),dtype=np.float32)
for i,(k,v) in enumerate(meas): for i,(k,v) in enumerate(meas):
pass pass
self._lut_z2p={ 'zoom': zoom, 'pixsz': pixsz} self._lut_z2p={ 'zoom': zoom, 'pixsz': pixsz}
def autofocus(): def autofocus(self):
# cam camera object # cam camera object
# mot motor object # mot motor object
# rng region (min max relative to current position) to seek # rng region (min max relative to current position) to seek
@@ -69,17 +72,17 @@ class geometry:
# mode mode to calculate sharpness (sum/max-min/hist? of edge detection in roi) # mode mode to calculate sharpness (sum/max-min/hist? of edge detection in roi)
pass pass
def pix2pos(p,zoom=None): def pix2pos(self,p,zoom=None):
# returns the position m(x,y) in meter relative to the optical center at a given zoom level of the pixel p(x,y) # returns the position m(x,y) in meter relative to the optical center at a given zoom level of the pixel p(x,y)
# if zoom=None, the last zoom value is used # if zoom=None, the last zoom value is used
pass pass
def pos2pix(p,zoom=None): def pos2pix(self,p,zoom=None):
# returns the pixel p(x,y) of the position m(x,y) in meter relative to the optical center at a given zoom level # returns the pixel p(x,y) of the position m(x,y) in meter relative to the optical center at a given zoom level
# if zoom=None, the last zoom value is used # if zoom=None, the last zoom value is used
pass pass
def optctr2xray(): def optctr2xray(self):
# returns the vector m(x,y) of the optical center to the xray # returns the vector m(x,y) of the optical center to the xray
pass pass

180
swissmx.py Normal file → Executable file
View File

@@ -1,4 +1,5 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import time, os
import json import json
import random import random
import re import re
@@ -8,20 +9,20 @@ import threading
from epics.ca import pend_event from epics.ca import pend_event
from matplotlib import pyplot from matplotlib import pyplot
import Wigis #import Wigis #ZAC: orig. code
import app_utils import app_utils
import jungfrau_widget #import jungfrau_widget #ZAC: orig. code
import bernina_pulse_picker #import bernina_pulse_picker #ZAC: orig. code
import qutilities import qutilities
import storage #import storage #ZAC: orig. code
from app_config import settings, appsconf, option, toggle_option, simulated from app_config import settings, appsconf, option, toggle_option, simulated
# publisher = pubber.Publisher() # publisher = pubber.Publisher()
from zmq_escape import zescape #from zmq_escape import zescape #ZAC: orig. code
from helicalscan import HelicalScanGui #from helicalscan import HelicalScanGui #ZAC: orig. code
SKIP_ESCAPE_TRANSITIONS_IF_SAFE = "escape/skip_transitions_if_safe" SKIP_ESCAPE_TRANSITIONS_IF_SAFE = "escape/skip_transitions_if_safe"
@@ -52,33 +53,32 @@ logging.getLogger("PyQt5.uic").setLevel(logging.CRITICAL)
logging.getLogger("requests").setLevel(logging.CRITICAL) logging.getLogger("requests").setLevel(logging.CRITICAL)
logging.getLogger("urllib3").setLevel(logging.CRITICAL) logging.getLogger("urllib3").setLevel(logging.CRITICAL)
logging.getLogger("paramiko").setLevel(logging.CRITICAL) logging.getLogger("paramiko").setLevel(logging.CRITICAL)
FORMAT = "%(asctime)-15s - %(levelname)s - %(name)s - %(message)s" logging.basicConfig(level=logging.DEBUG, format='%(levelname)s:%(module)s:%(lineno)d:%(funcName)s:%(message)s ')
logging.basicConfig(format=FORMAT, level=logging.DEBUG)
logger = logging.getLogger("swissmx") logger = logging.getLogger("swissmx")
import PrelocatedCoordinatesModel #import PrelocatedCoordinatesModel #ZAC: orig. code
from EmblModule import EmblWidget #from EmblModule import EmblWidget #ZAC: orig. code
from HelicalTable import HelicalTableWidget #from HelicalTable import HelicalTableWidget #ZAC: orig. code
from Wigis import Spinner, Checkbox #from Wigis import Spinner, Checkbox #ZAC: orig. code
import camera import camera
import epics import epics
import numpy as np import numpy as np
from exceptions import * #from exceptions import * #ZAC: orig. code
import qoptic #import qoptic #ZAC: orig. code
from backlight import Backlight from backlight import Backlight
backlight = Backlight() backlight = Backlight()
import mx_swissfel #import mx_swissfel #ZAC: orig. code
swissfel = mx_swissfel.SwissFELMachine() #swissfel = mx_swissfel.SwissFELMachine() #ZAC: orig. code
import qtawesome import qtawesome
from bernina_pulse_picker import pulsePicker #from bernina_pulse_picker import pulsePicker #ZAC: orig. code
from PyQt5 import QtCore, QtGui from PyQt5 import QtCore, QtGui
from PyQt5.QtCore import Qt, pyqtSlot, QSize, QRegExp, pyqtSignal, QObject, QThread from PyQt5.QtCore import Qt, pyqtSlot, QSize, QRegExp, pyqtSignal, QObject, QThread
@@ -109,12 +109,14 @@ from PyQt5.QtWidgets import (
) )
from PyQt5.uic import loadUiType from PyQt5.uic import loadUiType
from CustomROI import BeamMark, Grid, CrystalCircle from CustomROI import BeamMark
from GenericDialog import GenericDialog #from CustomROI import BeamMark, Grid, CrystalCircle #ZAC: orig. code
from dialogs.PreferencesDialog import PreferencesDialog #from GenericDialog import GenericDialog #ZAC: orig. code
from epics_widgets import zoom #from dialogs.PreferencesDialog import PreferencesDialog #ZAC: orig. code
#from epics_widgets import zoom #ZAC: orig. code
from epics_widgets.MotorTweak import MotorTweak from epics_widgets.MotorTweak import MotorTweak
from epics_widgets.SmaractMotorTweak import SmaractMotorTweak from epics_widgets.SmaractMotorTweak import SmaractMotorTweak
import zoom
_URL = "http://PC12288:8080" _URL = "http://PC12288:8080"
@@ -122,31 +124,31 @@ _URL = "http://PC12288:8080"
# tell = TellClient.TellClient(_URL) # tell = TellClient.TellClient(_URL)
import eventer #import eventer #ZAC: orig. code
from detector_control import jungfrau_detector #from detector_control import jungfrau_detector #ZAC: orig. code
from findxtal import findObj #from findxtal import findObj #ZAC: orig. code
import pyqtgraph as pg import pyqtgraph as pg
import pyqtgraph.exporters import pyqtgraph.exporters
if simulated: #if simulated: #ZAC: orig. code #ZAC: orig. code
logger.warning("simulation mode enabled") # logger.warning("simulation mode enabled")
qoptic_zoom = qoptic.FeturaClientBogus() # qoptic_zoom = qoptic.FeturaClientBogus()
else: #else:
qoptic_zoom = qoptic.FeturaClient() # qoptic_zoom = qoptic.FeturaClient()
pg.setConfigOption("antialias", True) pg.setConfigOption("antialias", True)
# from epics_widgets import MotorTweak #from epics_widgets import MotorTweak
Ui_MainWindow, QMainWindow = loadUiType("swissmx.ui") Ui_MainWindow, QMainWindow = loadUiType("swissmx.ui")
user = getpass.getuser() #user = getpass.getuser() #ZAC: orig. code
home = os.path.expanduser("~") #home = os.path.expanduser("~")
just_quit = user in ["e10003", "gac-esbmx"] #just_quit = user in ["e10003", "gac-esbmx"]
folders = storage.Folders() #folders = storage.Folders() #ZAC: orig. code
TASK_JUNGFRAU_SETTINGS = "jungfrau_settings" TASK_JUNGFRAU_SETTINGS = "jungfrau_settings"
TASK_SETUP_PPM_CALIBRATION = "ppm_calibration" TASK_SETUP_PPM_CALIBRATION = "ppm_calibration"
@@ -163,9 +165,9 @@ TASK_HELICAL = "helical"
TASK_EMBL = "embl" TASK_EMBL = "embl"
from deltatau import DeltaTau, shapepath, helical, DebugPlot #from deltatau import DeltaTau, shapepath, helical, DebugPlot #ZAC: orig. code
delta_tau = DeltaTau() #delta_tau = DeltaTau() #ZAC: orig. code
BROKER_SERVER = "127.0.0.1" BROKER_SERVER = "127.0.0.1"
@@ -176,9 +178,14 @@ BROKER_PORT = 61613
logger.info( logger.info(
f"connecting to microscope to camera server: {appsconf['microscope']['sample_camera']['pv_prefix']} " f"connecting to microscope to camera server: {appsconf['microscope']['sample_camera']['pv_prefix']} "
) )
sample_camera = camera.camera_server( #sample_camera = camera.camera_server( #ZAC: orig. code
basename=appsconf["microscope"]["sample_camera"]["pv_prefix"] # basename=appsconf["microscope"]["sample_camera"]["pv_prefix"]
) #)
#sample_camera = camera.epics_cam(appsconf["microscope"]["sample_camera"]["pv_prefix"])
sample_camera = camera.epics_cam(None)
sample_camera.sim_gen(mode=0)
sample_camera.run()
# sample_camera.set_transformations([camera.Transforms.FLIP_LR, camera.Transforms.ROTATE_270]) # sample_camera.set_transformations([camera.Transforms.FLIP_LR, camera.Transforms.ROTATE_270])
@@ -337,7 +344,7 @@ class Main(QMainWindow, Ui_MainWindow):
self._fel_status = QLabel(None) self._fel_status = QLabel(None)
self._fel_status.setAccessibleName("fel_status_statusbar") self._fel_status.setAccessibleName("fel_status_statusbar")
self.statusbar.addPermanentWidget(self._fel_status) self.statusbar.addPermanentWidget(self._fel_status)
swissfel.statusStringUpdated.connect(self._fel_status.setText) #swissfel.statusStringUpdated.connect(self._fel_status.setText) #ZAC: orig. code
self._status_task = QLabel(None) self._status_task = QLabel(None)
self._status_task.setAccessibleName("status_task_label") self._status_task.setAccessibleName("status_task_label")
self.statusbar.addPermanentWidget(self._status_task) self.statusbar.addPermanentWidget(self._status_task)
@@ -357,19 +364,19 @@ class Main(QMainWindow, Ui_MainWindow):
self.prepare_microscope_page() self.prepare_microscope_page()
self.prepare_embl_gui() self.prepare_embl_gui()
self.prepare_left_tabs() self.prepare_left_tabs()
self.update_beam_marker(qoptic_zoom.get_position()) #self.update_beam_marker(qoptic_zoom.get_position()) #ZAC: orig. code
self._centerpiece_stack.setCurrentIndex(0) self._centerpiece_stack.setCurrentIndex(0)
self._centerpiece_stack.currentChanged.connect(self.center_piece_update) self._centerpiece_stack.currentChanged.connect(self.center_piece_update)
self.init_validators() self.init_validators()
self.init_settings_tracker() self.init_settings_tracker()
self.wire_storage() self.wire_storage()
self.create_helical_widgets() #self.create_helical_widgets() #ZAC: orig. code
self.center_piece_update(0) # start camera updater self.center_piece_update(0) # start camera updater
curzoom = qoptic_zoom.get_position(cached=False) #curzoom = qoptic_zoom.get_position(cached=False) #ZAC: orig. code
logger.debug(f"starting app with zoom at {curzoom}") #logger.debug(f"starting app with zoom at {curzoom}")
self.zoom_changed_cb(curzoom) #self.zoom_changed_cb(curzoom)
self._tabs_daq_methods.currentChanged.connect(self.switch_task) self._tabs_daq_methods.currentChanged.connect(self.switch_task)
self.switch_task() self.switch_task()
@@ -428,10 +435,10 @@ class Main(QMainWindow, Ui_MainWindow):
sample_camera.pause() sample_camera.pause()
def updateImage(self, pause=False): def updateImage(self, pause=False):
if not sample_camera.is_paused(): #if not sample_camera.is_paused(): #ZAC: orig. code
img = sample_camera.get_image() img = sample_camera.get_image()
if img is not None: if img is not None:
self.img.setImage(img) self.img.setImage(img)
def init_settings_tracker(self): def init_settings_tracker(self):
logger.info("configuring widget persistence") logger.info("configuring widget persistence")
@@ -472,7 +479,7 @@ class Main(QMainWindow, Ui_MainWindow):
k, func_get() k, func_get()
) )
) )
self.storage_cascade_prefix(None) #self.storage_cascade_prefix(None) #ZAC: orig. code
def init_validators(self): def init_validators(self):
identifier_regex = QRegExp("[a-z-A-Z_0-9%]+") identifier_regex = QRegExp("[a-z-A-Z_0-9%]+")
@@ -578,7 +585,7 @@ class Main(QMainWindow, Ui_MainWindow):
self.timer.timeout.connect(self.check_zescape) self.timer.timeout.connect(self.check_zescape)
self.timer.start(20) self.timer.start(20)
else: else:
zescape.stop_listening() #zescape.stop_listening() #ZAC: orig. code
logger.warning("re-starting timer on camera update") logger.warning("re-starting timer on camera update")
try: try:
self.timer.stop() self.timer.stop()
@@ -716,8 +723,8 @@ class Main(QMainWindow, Ui_MainWindow):
block.setAccessibleName(TASK_JUNGFRAU_SETTINGS) block.setAccessibleName(TASK_JUNGFRAU_SETTINGS)
block.setContentsMargins(0, 0, 0, 0) block.setContentsMargins(0, 0, 0, 0)
block.setLayout(QVBoxLayout()) block.setLayout(QVBoxLayout())
self.jungfrau = jungfrau_widget.JungfrauWidget() #self.jungfrau = jungfrau_widget.JungfrauWidget() #ZAC: orig. code
block.layout().addWidget(self.jungfrau) #block.layout().addWidget(self.jungfrau) #ZAC: orig. code
block.layout().addStretch() block.layout().addStretch()
tbox.addItem(block, "Jungfrau Parameters") tbox.addItem(block, "Jungfrau Parameters")
@@ -743,9 +750,9 @@ class Main(QMainWindow, Ui_MainWindow):
self._button_shutter = but self._button_shutter = but
grp.layout().addWidget(but, 0, 0, 1, 2) grp.layout().addWidget(but, 0, 0, 1, 2)
self._pv_shutter.add_callback(self.update_shutter_label) self._pv_shutter.add_callback(self.update_shutter_label)
else: #else: #ZAC: orig. code
self._picker = bernina_pulse_picker.PickerWidget() # self._picker = bernina_pulse_picker.PickerWidget()
grp.layout().addWidget(self._picker, 0, 0, 1, 2) # grp.layout().addWidget(self._picker, 0, 0, 1, 2)
but = QPushButton("clear beam markers") but = QPushButton("clear beam markers")
but.clicked.connect(self.remove_beam_markers) but.clicked.connect(self.remove_beam_markers)
grp.layout().addWidget(but, 1, 1) grp.layout().addWidget(but, 1, 1)
@@ -796,38 +803,38 @@ class Main(QMainWindow, Ui_MainWindow):
but.clicked.connect(lambda bogus: self.modify_camera_transform("undo_last")) but.clicked.connect(lambda bogus: self.modify_camera_transform("undo_last"))
grp.layout().addWidget(but, 0, 1) grp.layout().addWidget(but, 0, 1)
but = QPushButton("Turn 90 CCW") but = QPushButton("Turn 90 CCW")
but.clicked.connect( #but.clicked.connect(
lambda bogus, n=camera.Transforms.ROTATE_90: self.modify_camera_transform(n) # lambda bogus, n=camera.Transforms.ROTATE_90: self.modify_camera_transform(n)
) #) #ZAC: orig. code
grp.layout().addWidget(but, 1, 0) grp.layout().addWidget(but, 1, 0)
but = QPushButton("Turn 90 CW") but = QPushButton("Turn 90 CW")
but.clicked.connect( #but.clicked.connect(
lambda bogus, n=camera.Transforms.ROTATE_270: self.modify_camera_transform( # lambda bogus, n=camera.Transforms.ROTATE_270: self.modify_camera_transform(
n # n
) # )
) #) #ZAC: orig. code
grp.layout().addWidget(but) grp.layout().addWidget(but)
but = QPushButton("Turn 180 CCW") but = QPushButton("Turn 180 CCW")
but.clicked.connect( #but.clicked.connect(
lambda bogus, n=camera.Transforms.ROTATE_180: self.modify_camera_transform( # lambda bogus, n=camera.Transforms.ROTATE_180: self.modify_camera_transform(
n # n
) # )
) #) #ZAC: orig. code
grp.layout().addWidget(but) grp.layout().addWidget(but)
but = QPushButton("Transpose") but = QPushButton("Transpose")
but.clicked.connect( #but.clicked.connect(
lambda bogus, n=camera.Transforms.TRANSPOSE: self.modify_camera_transform(n) # lambda bogus, n=camera.Transforms.TRANSPOSE: self.modify_camera_transform(n)
) #) #ZAC: orig. code
grp.layout().addWidget(but) grp.layout().addWidget(but)
but = QPushButton("Flip L/R") but = QPushButton("Flip L/R")
but.clicked.connect( #but.clicked.connect(
lambda bogus, n=camera.Transforms.FLIP_LR: self.modify_camera_transform(n) # lambda bogus, n=camera.Transforms.FLIP_LR: self.modify_camera_transform(n)
) #) #ZAC: orig. code
grp.layout().addWidget(but) grp.layout().addWidget(but)
but = QPushButton("Flip U/D") but = QPushButton("Flip U/D")
but.clicked.connect( #but.clicked.connect(
lambda bogus, n=camera.Transforms.FLIP_UD: self.modify_camera_transform(n) # lambda bogus, n=camera.Transforms.FLIP_UD: self.modify_camera_transform(n)
) #) #ZAC: orig. code
grp.layout().addWidget(but) grp.layout().addWidget(but)
row = grp.layout().rowCount() row = grp.layout().rowCount()
self._label_transforms = QLabel() self._label_transforms = QLabel()
@@ -885,7 +892,7 @@ class Main(QMainWindow, Ui_MainWindow):
exp_tab.layout().addStretch() exp_tab.layout().addStretch()
# DAQ Methods Tabs # DAQ Methods Tabs
self.build_daq_methods_prelocated_tab() #self.build_daq_methods_prelocated_tab() #ZAC: orig. code
self.build_daq_methods_grid_tab() self.build_daq_methods_grid_tab()
self.build_sample_selection_tab() self.build_sample_selection_tab()
@@ -931,14 +938,14 @@ class Main(QMainWindow, Ui_MainWindow):
sample_camera.set_transformations([]) sample_camera.set_transformations([])
elif t == "undo_last": elif t == "undo_last":
sample_camera._transformations.pop() sample_camera._transformations.pop()
elif type(t) ==type(camera.Transforms): #elif type(t) ==type(camera.Transforms): #ZAC: orig. code
sample_camera.append_transform(t) # sample_camera.append_transform(t)
try: try:
label = ", ".join([t.name for t in sample_camera._transformations]) label = ", ".join([t.name for t in sample_camera._transformations])
except: except:
label = "" label = ""
self._label_transforms.setText(label) self._label_transforms.setText(label)
settings.setValue(CAMERA_TRANSFORMATIONS, sample_camera._transformations) #settings.setValue(CAMERA_TRANSFORMATIONS, sample_camera._transformations) #ZAC: orig. code
def roi_add_line(self): def roi_add_line(self):
roi = pg.LineSegmentROI( roi = pg.LineSegmentROI(
@@ -978,9 +985,9 @@ class Main(QMainWindow, Ui_MainWindow):
self._tab_daq_method_embl.setLayout(QVBoxLayout()) self._tab_daq_method_embl.setLayout(QVBoxLayout())
layout = self._tab_daq_method_embl.layout() layout = self._tab_daq_method_embl.layout()
motors = self.get_gonio_motors() motors = self.get_gonio_motors()
self._embl_module = EmblWidget(self) #self._embl_module = EmblWidget(self) #ZAC: orig. code
self._embl_module.configure(motors, sample_camera, qoptic_zoom) #self._embl_module.configure(motors, sample_camera, qoptic_zoom)
layout.addWidget(self._embl_module) #layout.addWidget(self._embl_module)
def prepare_microscope_page(self): def prepare_microscope_page(self):
layout = self.microscope_page.layout() layout = self.microscope_page.layout()
@@ -3639,10 +3646,11 @@ def main():
main = Main() main = Main()
main.show() main.show()
splash.finish(main) splash.finish(main)
main.update_user_and_storage() #main.update_user_and_storage() #ZAC: orig. code
sys.exit(app.exec_()) sys.exit(app.exec_())
if __name__ == "__main__": if __name__ == "__main__":
app = None app = None
os.environ['EPICS_CA_ADDR_LIST'] ='129.129.244.255 sf-saresc-cagw.psi.ch:5062 sf-saresc-cagw.psi.ch:5066'
main() main()