rework settings, add pyqtUsrObj.py

This commit is contained in:
2022-07-21 17:34:21 +02:00
parent 569ce8a78d
commit c98795a7e0
6 changed files with 287 additions and 250 deletions

View File

@@ -316,7 +316,7 @@ class Main(QMainWindow, Ui_MainWindow):
self._centerpiece_stack.setCurrentIndex(0)
self._centerpiece_stack.currentChanged.connect(self.center_piece_update)
self.init_validators()
self.init_settings_tracker()
#self.init_settings_tracker() ? not needed, was for TELL ?
self.wire_storage()
self.create_helical_widgets() #ZAC: orig. code
@@ -378,7 +378,10 @@ class Main(QMainWindow, Ui_MainWindow):
app = QApplication.instance()
cfg = app._cfg
w, h = cfg.value(AppCfg.BEAM_SIZE)
self._beammark = CstROI.BeamMark([100, 100], (int(w), int(h)), parent=self)
self._beammark = bm = CstROI.BeamMark([100, 100], (int(w), int(h)), parent=self)
tr=QtGui.QTransform() # prepare ImageItem transformation:
tr.rotate(30)
bm.setTransform(tr) # assign transform
self.vb.addItem(self._beammark)
def camera_pause_toggle(self):
@@ -399,14 +402,14 @@ class Main(QMainWindow, Ui_MainWindow):
QtCore.QTimer.singleShot(delay, self.new_frame_sim_cb)
def new_frame_pv_cb(self, **kwargs):
_log.debug('new_frame_pv_cb count {}'.format(kwargs['count']))
app=QApplication.instance()
sz=app._camera._sz
if kwargs['count']==sz[0]*sz[1]:
pic=kwargs['value'].reshape(sz[::-1])
else:
sz=self.update_size()
sz=app._camera.update_size()
pic=kwargs['value'].reshape(sz[::-1])
#_log.debug('new_frame_pv_cb count {}'.format(kwargs['count']))
if pic.dtype==np.int16:
pic.dtype=np.uint16
camera.epics_cam.set_fiducial(pic, 255)
@@ -1509,7 +1512,7 @@ class Main(QMainWindow, Ui_MainWindow):
zoom_base = ("rest://pc12818.psi.ch:9999") # direct connection using fetura.py package
self.zoombox = zoom.Zoom()
self.zoombox.configure()
self.zoombox.init_settings()
self.zoombox.zoomChanged.connect(self.zoom_changed_cb)
self.zoombox.moveBacklight.connect(self.safe_backlight_move)
@@ -3123,28 +3126,28 @@ class Main(QMainWindow, Ui_MainWindow):
#if EXPERIMENT_PGROUP not in keys:
# self.update_user_and_storage()
if "window/geometry" in keys:
self.restoreGeometry(cfg.value("window/geometry", ""))
self.restoreState(cfg.value("window/windowState", ""))
if cfg.WINDOW_GEOMETRY in keys:
self.restoreGeometry(cfg.value(cfg.WINDOW_GEOMETRY, ""))
self.restoreState(cfg.value(cfg.WINDOW_STATE, ""))
if "window/main_splitter" in keys:
sizes = [int(s) for s in cfg.value("window/main_splitter")]
self._main_splitter.setSizes(sizes)
if cfg.WINDOW_SPLITTER in keys:
sz = [int(s) for s in cfg.value(cfg.WINDOW_SPLITTER)]
else:
self._main_splitter.setSizes([500, 1200])
sz=(500, 1200)
self._main_splitter.setSizes(sz)
if AppCfg.BEAM_MARKER_POSITIONS in keys:
self._beam_markers = s.value(AppCfg.BEAM_MARKER_POSITIONS)
self.update_beam_marker_fitters()
_log.info("read beam markers {}".format(self._beam_markers))
#if AppCfg.BEAM_MARKER_POSITIONS in keys:
# self._beam_markers = s.value(AppCfg.BEAM_MARKER_POSITIONS)
# self.update_beam_marker_fitters()
# _log.info("read beam markers {}".format(self._beam_markers))
if AppCfg.CAMERA_TRANSFORMATIONS in keys:
app._camera.set_transformations(s.value(AppCfg.CAMERA_TRANSFORMATIONS))
#if AppCfg.CAMERA_TRANSFORMATIONS in keys:
# app._camera.set_transformations(s.value(AppCfg.CAMERA_TRANSFORMATIONS))
if AppCfg.CAMERA_ZOOM_TO_PPM in keys:
self._zoom_to_ppm = s.value(AppCfg.CAMERA_ZOOM_TO_PPM)
_log.info(f"{AppCfg.CAMERA_ZOOM_TO_PPM} updated: {self._zoom_to_ppm}")
self.update_ppm_fitters()
#if AppCfg.CAMERA_ZOOM_TO_PPM in keys:
# self._zoom_to_ppm = s.value(AppCfg.CAMERA_ZOOM_TO_PPM)
# _log.info(f"{AppCfg.CAMERA_ZOOM_TO_PPM} updated: {self._zoom_to_ppm}")
# self.update_ppm_fitters()
def really_quit(self):
"""called when user Ctrl-Q the app"""
@@ -3164,10 +3167,10 @@ class Main(QMainWindow, Ui_MainWindow):
_log.warning('disconnect PV callback failed.')
_log.info('disconnect PV callback')
cfg.setValue("window/geometry", self.saveGeometry())
cfg.setValue("window/windowState", self.saveState())
cfg.setValue("window/main_splitter", self._main_splitter.sizes())
cfg.setValue("last_active", time.time())
cfg.setValue(cfg.WINDOW_GEOMETRY, self.saveGeometry())
cfg.setValue(cfg.WINDOW_STATE, self.saveState())
cfg.setValue(cfg.WINDOW_SPLITTER, self._main_splitter.sizes())
cfg.setValue('last_active', time.time())
_log.info('save settings')
#QMainWindow.closeEvent(self, event)
_log.info('closeEvent done')
@@ -3269,9 +3272,76 @@ def main():
app._args=args
startupWin.set(5, f'load settings')
app._cfg=AppCfg()
app._cfg=cfg=AppCfg()
#Dump config to debug
#for k in cfg.allKeys():
# print(k, cfg.value(k))
app._geometry=geometry.geometry()
# pix2pos_measure={
# 1:[(-3.0, -7.6, 116.99110193046, 632.5463827525),
# (-2.0, -7.6, 934.07501517856, 600.7926167715),
# (-2.0, -7.1, 916.54131238102, 191.0366615002),
# (-3.0, -7.1, 103.74668003329, 226.2150231456)],
# 200:[(-3.1, -7.3, 113.66321353086, 824.9041423107),
# (-2.3, -7.3, 1065.97386092697, 792.2851118419),
# (-2.3, -6.7, 1033.68452410347, 74.0336610693),
# (-3.1, -6.7, 84.62681572700, 116.6832971512)],
# 400:[(-3.4, -6.7, 155.00053674203, 601.3838942136),
# (-3.0, -6.7, 957.95919656052, 573.0827012272),
# (-3.2, -6.5, 541.08684037200, 187.9171307943),
# (-3.2, -6.8, 564.32152887203, 789.1146957326)],
# 600:[(-3.3, -6.8, 328.27244399903, 509.5061192017),
# (-3.1, -6.8, 992.78996735279, 488.0323963092),
# (-3.2, -6.9, 672.03111567934, 832.4122409755),
# (-3.2, -6.7, 645.70960116180, 164.2534779331)],
# 800:[(-3.2, -6.7, 639.52253576449, 53.4455632943),
# (-3.2, -6.85, 671.47023245203, 882.6335091391),
# (-3.3, -6.75, 105.12470026379, 361.3051859197),
# (-3.1, -6.75, 1195.96864609255, 313.1068618673)],
# 1000:[(-3.25, -6.75, 195.05641095116, 353.3492286375),
# (-3.15, -6.75, 1117.27204644084, 314.9636405871),
# (-3.2, -6.8, 675.10991143017, 790.3040145281),
# (-3.2, -6.72, 638.98580653116, 59.3803912957)]}
#
# opt_ctr_meas={ # x,y = 0.02, -4.89
# 1000:[(1057.4251530483375, 116.10122290395591),
# (117.84916300310408, 190.27827474963223),
# (184.2181041281829, 963.2812360887852),
# (1092.5616512910262, 899.514998537239)],
# 800:[(888.2494207687248, 203.2917926172947),
# (329.96950424600305, 248.83910515411347),
# (372.9141132092893, 708.2162858826),
# (906.4683457834523, 675.6824912134438)],
# 600:[(781.5385742538922, 251.44180872764602),
# (447.09116505496564, 264.4553265953085),
# (471.81684900352445, 554.6567750441825),
# (798.4561474818535, 535.1364982426887)],
# 400:[(722.9777438494109, 286.5783069703348),
# (525.1722722609408, 295.68776947769857),
# (535.5830865550707, 462.26079818377866),
# (729.4845027832422, 450.5486321028824)],
# 200:[(689.1425973934884, 308.70128734536104),
# (565.5141776506945, 307.39993555859473),
# (574.6236401580583, 406.30267135282986),
# (693.0466527537872, 399.79591241899857)],
# 1:[(673.5263759522934, 307.39993555859473),
# (591.5412133860195, 308.70128734536104),
# (595.4452687463182, 376.3715802572061),
# (672.2250241655271, 373.7688766836736)]}
#
# app._geometry.update_pix2pos(pix2pos_measure)
# app._geometry.update_optical_center(opt_ctr_meas)
#
# app._cfg.setValue('geometry/pix2pos',app._geometry._lut_pix2pos)
# app._cfg.setValue('geometry/opt_ctr',app._geometry._opt_ctr)
# app._cfg.sync()
app._geometry._lut_pix2pos=cfg.value(cfg.GEO_OPT_CTR)
app._geometry._opt_ctr=cfg.value(cfg.GEO_OPT_CTR)
startupWin.set(15, f'connect backlight')
if args.sim&0x01:
app._backlight = backlight.Backlight(None)
@@ -3309,5 +3379,6 @@ def main():
if __name__ == "__main__":
os.environ['EPICS_CA_ADDR_LIST'] ='129.129.244.255 sf-saresc-cagw.psi.ch:5062 sf-saresc-cagw.psi.ch:5066'
#os.environ['EPICS_CA_ADDR_LIST'] ='129.129.244.255 sf-saresc-cagw.psi.ch:5062 sf-saresc-cagw.psi.ch:5066'
os.environ['EPICS_CA_ADDR_LIST']='localhost'
main()