wip
This commit is contained in:
@@ -272,15 +272,19 @@ bit 1=2 : simulated frame trigger
|
||||
{'name':'in Y downstream' ,'value':dft_pos_pst.get('y_in_ds' ,0),'type':'float','limits':(-45,15),'step':0.1,'decimals':5,'suffix':' mm'},
|
||||
{'name':'out X delta' ,'value':dft_pos_pst.get('x_out_delta',0),'type':'float','limits':(-32,32),'step':0.1,'decimals':5,'suffix':' mm'},
|
||||
{'name':'out Y delta' ,'value':dft_pos_pst.get('y_out_delta',0),'type':'float','limits':(-32,32),'step':0.1,'decimals':5,'suffix':' mm'},
|
||||
{'name':'in Z' ,'value':dft_pos_pst.get('z_in' ,0),'type':'float','limits':(-8 ,1 ),'step':0.1,'decimals':5,'suffix':' mm'},
|
||||
{'name':'out Z' ,'value':dft_pos_pst.get('z_out' ,0),'type':'float','limits':(-8 ,1 ),'step':0.1,'decimals':5,'suffix':' mm'},
|
||||
]},
|
||||
{'name':'in Z' ,'value':dft_pos_pst.get('z_in' ,0),'type':'float','limits':(-8 ,5 ),'step':0.1,'decimals':5,'suffix':' mm'},
|
||||
{'name':'out Z' ,'value':dft_pos_pst.get('z_out' ,0),'type':'float','limits':(-8 ,5 ),'step':0.1,'decimals':5,'suffix':' mm'},
|
||||
{'name':'set_in', 'title':'use current position as "in"', 'type':'action'},
|
||||
{'name':'set_out', 'title':'use current position as "out"', 'type':'action'},
|
||||
]},
|
||||
{'name': AppCfg.DFT_POS_COL, 'title':'collimator reference positions', 'type':'group','expanded':False, 'children':[
|
||||
{'name':'in X', 'value':dft_pos_col.get('x_in',0), 'type':'float', 'limits':(-15.9, 15.9 ),'step':0.1, 'decimals':5, 'suffix':' mm'},
|
||||
{'name':'in Y', 'value':dft_pos_col.get('y_in',0), 'type':'float', 'limits':(-15.9, 15.9 ),'step':0.1, 'decimals':5, 'suffix':' mm'},
|
||||
{'name':'out X', 'value':dft_pos_col.get('x_out',0),'type':'float', 'limits':(-15.9, 15.9 ),'step':0.1, 'decimals':5, 'suffix':' mm'},
|
||||
{'name':'out Y', 'value':dft_pos_col.get('y_out',0),'type':'float', 'limits':(-15.9, 15.9 ),'step':0.1, 'decimals':5, 'suffix':' mm'},
|
||||
]},
|
||||
{'name':'set_in', 'title':'use current position as "in"', 'type':'action'},
|
||||
{'name':'set_out', 'title':'use current position as "out"', 'type':'action'},
|
||||
]},
|
||||
{'name': AppCfg.DFT_POS_BKLGT, 'title':'Back Light reference positions', 'type':'group','expanded':False, 'children':[
|
||||
{'name':'In position', 'value':dft_pos_bklgt.get('pos_in',0), 'type':'float', 'limits':(-30000, 10 ),'step':10, 'decimals':5, 'suffix':'ustep'},
|
||||
{'name':'Out position', 'value':dft_pos_bklgt.get('pos_out',0), 'type':'float', 'limits':(-1000, 10 ),'step':10, 'decimals':5, 'suffix':'ustep'},
|
||||
@@ -288,6 +292,8 @@ bit 1=2 : simulated frame trigger
|
||||
{'name': AppCfg.DFT_POS_DET, 'title':'detector reference positions', 'type':'group','expanded':False, 'children':[
|
||||
{'name':'In position', 'value':dft_pos_det.get('pos_in',0), 'type':'float', 'limits':(-20, 20 ),'step':0.1, 'decimals':5, 'suffix':' mm'},
|
||||
{'name':'Out position', 'value':dft_pos_det.get('pos_out',0), 'type':'float', 'limits':(-20, 20 ),'step':0.1, 'decimals':5, 'suffix':' mm'},
|
||||
{'name':'set_in', 'title':'use current position as "in"', 'type':'action'},
|
||||
{'name':'set_out', 'title':'use current position as "out"', 'type':'action'},
|
||||
]},
|
||||
{'name': AppCfg.GBL_DEV_PREFIX, 'title':'device prefix', 'type':'group','expanded':False, 'children':[
|
||||
{'name':'deltatau motors', 'value':gbl_dev_prefix[0],'type':'str' },
|
||||
@@ -329,6 +335,12 @@ bit 1=2 : simulated frame trigger
|
||||
child.sigValueChanging.connect(lambda a,b: self.cb_valueChanging(a,b))
|
||||
for ch2 in child.children():
|
||||
ch2.sigValueChanging.connect(lambda a,b: self.cb_valueChanging(a,b))
|
||||
p.param(AppCfg.DFT_POS_PST, 'set_in' ).sigActivated.connect(lambda x: self.cb_use_cur_pos_as(AppCfg.DFT_POS_PST, 'in'))
|
||||
p.param(AppCfg.DFT_POS_PST, 'set_out').sigActivated.connect(lambda x: self.cb_use_cur_pos_as(AppCfg.DFT_POS_PST, 'out'))
|
||||
p.param(AppCfg.DFT_POS_COL, 'set_in' ).sigActivated.connect(lambda x: self.cb_use_cur_pos_as(AppCfg.DFT_POS_COL, 'in'))
|
||||
p.param(AppCfg.DFT_POS_COL, 'set_out').sigActivated.connect(lambda x: self.cb_use_cur_pos_as(AppCfg.DFT_POS_COL, 'out'))
|
||||
p.param(AppCfg.DFT_POS_DET, 'set_in' ).sigActivated.connect(lambda x: self.cb_use_cur_pos_as(AppCfg.DFT_POS_DET, 'in'))
|
||||
p.param(AppCfg.DFT_POS_DET, 'set_out').sigActivated.connect(lambda x: self.cb_use_cur_pos_as(AppCfg.DFT_POS_DET, 'out'))
|
||||
#p.param('Save/Restore functionality', 'Save State').sigActivated.connect(self.cb_save)
|
||||
#p.param('Save/Restore functionality', 'Restore State').sigActivated.connect(self.cb_restore)
|
||||
|
||||
@@ -404,6 +416,48 @@ bit 1=2 : simulated frame trigger
|
||||
def cb_valueChanging(self,param, value):
|
||||
_log.debug(f'Value changing (not finalized): {param}, {value}')
|
||||
|
||||
def cb_use_cur_pos_as(self,dev,pos):
|
||||
_log.debug(f'HERE {dev}:{pos}')
|
||||
p=self._p.param(dev)
|
||||
try:
|
||||
twk=self.parent().tweakers
|
||||
except AttributeError as e:
|
||||
_log.warning('can not access tweakers to read values')
|
||||
if pos=='in': #sample: just to test
|
||||
p.children()[0].setValue(12.4)
|
||||
elif pos=='out':
|
||||
p.children()[0].setValue(14.1)
|
||||
return
|
||||
|
||||
#['fast_y', 'fast_x', 'omega', 'base_x', 'base_z',
|
||||
# 'det_z',
|
||||
# 'colli_x', 'colli_y',
|
||||
# 'tube_usx', 'tube_usy', 'tube_dsx', 'tube_dsy', 'tube_z',
|
||||
# 'xeye_x', 'xeye_y'])
|
||||
#p.children()
|
||||
cld=p.children()
|
||||
if dev==AppCfg.DFT_POS_PST:
|
||||
# k=('x_in_us','y_in_us','x_in_ds','y_in_ds','x_out_delta','y_out_delta','z_in','z_out',)
|
||||
if pos=='in':
|
||||
lut=((0,'tube_usx'),(1,'tube_usy'),(2,'tube_dsx'),(3,'tube_dsy'),(6,'tube_z'))
|
||||
elif pos=='out':
|
||||
cld[4].setValue(cld[0].value()-twk['tube_usx'].get_val()) #x_in_us-x_us
|
||||
cld[5].setValue(cld[1].value()-twk['tube_usy'].get_val()) #y_in_us-y_us
|
||||
lut=((7,'tube_z'),)
|
||||
elif dev==AppCfg.DFT_POS_COL:
|
||||
# k=('x_in', 'y_in', 'x_out', 'y_out')
|
||||
if pos=='in':
|
||||
lut=((0,'colli_x'),(1,'colli_y'),)
|
||||
elif pos=='out':
|
||||
lut=((2,'colli_x'),(3,'colli_y'),)
|
||||
elif dev==AppCfg.DFT_POS_DET:
|
||||
if pos=='in':
|
||||
lut=((0,'det_z'),)
|
||||
elif pos=='out':
|
||||
lut=((1,'det_z'),)
|
||||
for i,k in lut:
|
||||
cld[i].setValue(twk[k].get_val())
|
||||
|
||||
#def cb_save(self):
|
||||
# self._state=p.saveState()
|
||||
|
||||
|
||||
@@ -633,6 +633,14 @@ if __name__=='__main__':
|
||||
obj_info(tr)
|
||||
o.setTransform(tr)
|
||||
elif m&Qt.AltModifier:
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
x=np.linspace(0.1, 2*np.pi, 41)
|
||||
y=np.exp(np.sin(x))
|
||||
|
||||
plt.stem(x, y)
|
||||
plt.show()
|
||||
pass
|
||||
else:
|
||||
obj_info(o)
|
||||
|
||||
26
swissmx.py
26
swissmx.py
@@ -105,8 +105,8 @@ from epics_widgets.MotorTweak import MotorTweak
|
||||
from epics_widgets.SmaractMotorTweak import SmaractMotorTweak
|
||||
from epics_widgets.SimMotorTweak import SimMotorTweak
|
||||
ts.log('Import part 5/8:')
|
||||
import matplotlib as mpl
|
||||
import matplotlib.pyplot as plt
|
||||
#import matplotlib as mpl
|
||||
#import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
np.set_printoptions(suppress=True,linewidth=196)
|
||||
import pyqtgraph as pg
|
||||
@@ -1563,11 +1563,21 @@ class WndSwissMx(QMainWindow, Ui_MainWindow):
|
||||
except AttributeError:
|
||||
self._testCode=tc={'idx':0}
|
||||
step=tc['idx']
|
||||
vb=self.vb
|
||||
vb.autoRange(items=(self._goImg,))
|
||||
return
|
||||
|
||||
step=1
|
||||
if step==0:
|
||||
vb=self.vb
|
||||
vb.autoRange(items=(self._goImg,))
|
||||
elif step==1:
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
x=np.linspace(0.1, 2*np.pi, 41)
|
||||
y=np.exp(np.sin(x))
|
||||
|
||||
plt.stem(x, y)
|
||||
plt.show()
|
||||
if step==3:
|
||||
grp=pg.ItemGroup()
|
||||
vb.addItem(grp)
|
||||
obj=UsrGO.Marker((100, 100), (100, 100), mode=1)
|
||||
@@ -1578,7 +1588,7 @@ class WndSwissMx(QMainWindow, Ui_MainWindow):
|
||||
grp.addItem(obj)
|
||||
tc['grp']=grp
|
||||
vb.autoRange(items=(obj,))
|
||||
elif step==1:
|
||||
elif step==4:
|
||||
grp=tc['grp']
|
||||
tr=grp.transform()
|
||||
# UsrGO.obj_info(tr)
|
||||
@@ -2023,7 +2033,6 @@ class WndSwissMx(QMainWindow, Ui_MainWindow):
|
||||
dp.plot_gather(mode=11)
|
||||
plt.show(block=False)
|
||||
#plt.show(block=True)
|
||||
return
|
||||
|
||||
def esc_run_steps(self, steps, title):
|
||||
with pg.ProgressDialog(title, 0, len(steps)) as dlg:
|
||||
@@ -3714,7 +3723,8 @@ class WndSwissMx(QMainWindow, Ui_MainWindow):
|
||||
if __name__=="__main__":
|
||||
def main():
|
||||
from PyQt5.QtCore import QT_VERSION_STR
|
||||
_log.info(f'Version: pyqtgraph:{pg.__version__} matplotlib:{mpl.__version__} numpy:{np.__version__} epics:{epics.__version__} qt:{QT_VERSION_STR}' )
|
||||
#_log.info(f'Version: pyqtgraph:{pg.__version__} matplotlib:{mpl.__version__} numpy:{np.__version__} epics:{epics.__version__} qt:{QT_VERSION_STR}' )
|
||||
_log.info(f'Version: pyqtgraph:{pg.__version__} epics:{epics.__version__} qt:{QT_VERSION_STR}' )
|
||||
import argparse, socket
|
||||
hostname=socket.gethostname()
|
||||
if hostname=='ganymede':
|
||||
|
||||
Reference in New Issue
Block a user