add DAQ params, better autofocus
This commit is contained in:
@@ -58,6 +58,14 @@ class AppCfg(QSettings):
|
||||
|
||||
DT_HOST="deltatau/host"
|
||||
DT_MISC="deltatau/miscellaneous"
|
||||
|
||||
DAQ_DET="daq/detector" #json
|
||||
DAQ_LOC="daq/location" #json
|
||||
DAQ_RUN="daq/run" #json
|
||||
DAQ_BS_CH="daq/bs_channels" #list of str
|
||||
DAQ_PV_CH="daq/pv_channels" #list of str
|
||||
|
||||
|
||||
# ---------- OBSOLETE ??? ----------
|
||||
#ZOOM_BUTTONS="sample_viewing/zoom_buttons"
|
||||
#SKIP_ESCAPE_TRANSITIONS_IF_SAFE="escape/skip_transitions_if_safe"
|
||||
@@ -115,6 +123,27 @@ class AppCfg(QSettings):
|
||||
if AppCfg.DT_MISC not in keys:
|
||||
dflt.append((AppCfg.DT_MISC,{'show_plots':True, 'vel_scl':1.0, 'pt2pt_time':10.0, 'sync_mode':1, 'sync_flag':3, 'verbose':0xff}))
|
||||
|
||||
if AppCfg.DAQ_DET not in keys:
|
||||
dflt.append((AppCfg.DAQ_DET, {
|
||||
"name" : "JF17T16V01",
|
||||
"adc_to_energy" : True,
|
||||
"compression" : True,
|
||||
"factor" : 11.33,
|
||||
"geometry" : True,
|
||||
"double_pixel_action" : "mask",
|
||||
"remove_raw_files" : False
|
||||
}))
|
||||
if AppCfg.DAQ_LOC not in keys:
|
||||
dflt.append((AppCfg.DAQ_LOC, {'end_station':"cristallina", 'p_group':"p20516"}))
|
||||
if AppCfg.DAQ_RUN not in keys:
|
||||
dflt.append((AppCfg.DAQ_RUN, {'prefix':'', 'id':0}))
|
||||
if AppCfg.DAQ_BS_CH not in keys:
|
||||
dflt.append((AppCfg.DAQ_BS_CH, ("SARES30-LSCP1-CRISTA1:CH0:1",))) #list of BS channels
|
||||
if AppCfg.DAQ_PV_CH not in keys:
|
||||
dflt.append((AppCfg.DAQ_PV_CH, () )) #list of PVs
|
||||
|
||||
|
||||
|
||||
for k,v in dflt:
|
||||
_log.warning(f'{k} not defined. use default')
|
||||
self.setValue(k,v)
|
||||
@@ -136,7 +165,9 @@ class AppCfg(QSettings):
|
||||
AppCfg.GEO_CAM_PARAM,
|
||||
AppCfg.GEO_FND_FID, AppCfg.GEO_AUTOFOC,
|
||||
AppCfg.DFT_POS_DET,AppCfg.DFT_POS_PST,AppCfg.DFT_POS_COL,AppCfg.DFT_POS_BKLGT,
|
||||
AppCfg.DT_MISC):
|
||||
AppCfg.DT_MISC,
|
||||
AppCfg.DAQ_DET,AppCfg.DAQ_LOC,AppCfg.DAQ_RUN,AppCfg.DAQ_BS_CH,AppCfg.DAQ_PV_CH
|
||||
):
|
||||
val=json.dumps(val, cls=MyJsonEncoder)
|
||||
val=val.replace('"',"'")
|
||||
elif key in (AppCfg.GEO_OPT_CTR,AppCfg.GEO_BEAM_SZ,AppCfg.GEO_BEAM_POS):
|
||||
@@ -144,6 +175,9 @@ class AppCfg(QSettings):
|
||||
val=val.tolist()
|
||||
elif type(val)==tuple:
|
||||
val=list(val)
|
||||
if type(val)==list:
|
||||
if len(val)==1:val=val[0]
|
||||
elif len(val)==0: val=''
|
||||
return super(AppCfg, self).setValue(key,val)
|
||||
|
||||
def value(self,key,*vargs,**kwargs): #overload to debug
|
||||
@@ -158,13 +192,15 @@ class AppCfg(QSettings):
|
||||
AppCfg.GEO_CAM_PARAM,
|
||||
AppCfg.GEO_FND_FID, AppCfg.GEO_AUTOFOC,
|
||||
AppCfg.DFT_POS_DET,AppCfg.DFT_POS_PST,AppCfg.DFT_POS_COL,AppCfg.DFT_POS_BKLGT,
|
||||
AppCfg.DT_MISC):
|
||||
AppCfg.DT_MISC,
|
||||
AppCfg.DAQ_DET,AppCfg.DAQ_LOC,AppCfg.DAQ_RUN,AppCfg.DAQ_BS_CH,AppCfg.DAQ_PV_CH
|
||||
):
|
||||
if val is not None:
|
||||
val=val.replace("'",'"')
|
||||
val=json.loads(val) # , object_hook=MyJsonDecoder)
|
||||
else:
|
||||
val={}
|
||||
elif key in (AppCfg.GEO_BEAM_SZ,AppCfg.GEO_BEAM_POS,AppCfg.GEO_OPT_CTR):
|
||||
elif key in (AppCfg.GEO_BEAM_SZ, AppCfg.GEO_BEAM_POS, AppCfg.GEO_OPT_CTR):
|
||||
val=np.array(tuple(map(float, val)))
|
||||
return val
|
||||
|
||||
@@ -212,6 +248,10 @@ class WndParameter(QMainWindow):
|
||||
dt_host = cfg.value(AppCfg.DT_HOST)
|
||||
dt_misc = cfg.value(AppCfg.DT_MISC)
|
||||
|
||||
daq_det = cfg.value(AppCfg.DAQ_DET)
|
||||
daq_loc = cfg.value(AppCfg.DAQ_LOC)
|
||||
daq_run = cfg.value(AppCfg.DAQ_RUN)
|
||||
|
||||
tip_sync_mode='''\
|
||||
default=2
|
||||
0 : no sync at all
|
||||
@@ -328,6 +368,29 @@ verbose bits:
|
||||
{'name':'verbose', 'value':dt_misc['verbose'], 'type':'int', 'tip':tip_verbose},
|
||||
]},
|
||||
]},
|
||||
|
||||
{'name':'data acquisition', 'type':'group','expanded':False, 'children':[
|
||||
{'name':AppCfg.DAQ_DET, 'title':'detector', 'type':'group', 'children':[
|
||||
{'name':'name', 'value':daq_det['name'], 'type':'str',},
|
||||
{'name':'adc_to_energy', 'value':daq_det['adc_to_energy'], 'type':'bool'},
|
||||
{'name':'compression', 'value':daq_det['compression'], 'type':'bool'},
|
||||
{'name':'factor', 'value':daq_det['factor'], 'type':'float','step':0.01},
|
||||
{'name':'geometry', 'value':daq_det['geometry'], 'type':'bool'},
|
||||
{'name':'double_pixel_action', 'value':daq_det['double_pixel_action'], 'type':'str'},
|
||||
{'name':'remove_raw_files', 'value':daq_det['remove_raw_files'], 'type':'bool'},
|
||||
]},
|
||||
{'name':AppCfg.DAQ_LOC, 'title':'location', 'type':'group', 'children':[
|
||||
{'name':'end_station', 'value':daq_loc['end_station'], 'type':'str',},
|
||||
{'name':'p_group', 'value':daq_loc['p_group'], 'type':'str'},
|
||||
]},
|
||||
{'name':AppCfg.DAQ_RUN, 'title':'location', 'type':'group', 'children':[
|
||||
{'name':'prefix', 'value':daq_run['prefix'], 'type':'str',},
|
||||
{'name':'id', 'value':daq_run['id'], 'type':'int'},
|
||||
]},
|
||||
{'name':AppCfg.DAQ_BS_CH, 'title':'list of beam-sync channels','value':' '.join(cfg.value(AppCfg.DAQ_BS_CH)), 'type':'str'},
|
||||
{'name':AppCfg.DAQ_PV_CH, 'title':'list of PV channels','value':' '.join(cfg.value(AppCfg.DAQ_PV_CH)), 'type':'str'},
|
||||
]}
|
||||
|
||||
#{'name':'Save/Restore functionality', 'type':'group','expanded':False, 'children':[
|
||||
# {'name':'Save State', 'type':'action'},
|
||||
# {'name':'Restore State', 'type':'action', 'children':[
|
||||
@@ -430,6 +493,10 @@ verbose bits:
|
||||
cfg.setValue(par_nm, v)
|
||||
elif nm in (AppCfg.DT_HOST):
|
||||
cfg.setValue(nm, param.value())
|
||||
elif nm in(AppCfg.DAQ_BS_CH,AppCfg.DAQ_PV_CH):
|
||||
s=param.value()
|
||||
lst=s.split(' ') if len(s)>0 else ()
|
||||
cfg.setValue(nm,lst)
|
||||
elif par_nm in (AppCfg.GBL_MISC,AppCfg.DT_MISC,AppCfg.GEO_FND_FID,AppCfg.GEO_AUTOFOC):
|
||||
d=dict(map(lambda x:(x.name(),x.value()), parent.children()))
|
||||
cfg.setValue(par_nm, d)
|
||||
|
||||
Reference in New Issue
Block a user