fix in synchronization, add padding frames for JF

This commit is contained in:
2022-09-28 16:56:32 +02:00
parent a186d256d3
commit 7a67889992
3 changed files with 11 additions and 7 deletions

View File

@@ -121,7 +121,7 @@ class AppCfg(QSettings):
if AppCfg.DT_HOST not in keys: if AppCfg.DT_HOST not in keys:
dflt.append((AppCfg.DT_HOST, 'SAR-CPPM-EXPMX1')) dflt.append((AppCfg.DT_HOST, 'SAR-CPPM-EXPMX1'))
if AppCfg.DT_MISC not in keys: 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})) dflt.append((AppCfg.DT_MISC,{'show_plots':True, 'vel_scl':1.0, 'pt2pt_time':10.0, 'time_ofs':0.0, 'sync_mode':1, 'sync_flag':3, 'verbose':0xff}))
if AppCfg.DAQ_DET not in keys: if AppCfg.DAQ_DET not in keys:
dflt.append((AppCfg.DAQ_DET, { dflt.append((AppCfg.DAQ_DET, {
@@ -136,7 +136,7 @@ class AppCfg(QSettings):
if AppCfg.DAQ_LOC not in keys: if AppCfg.DAQ_LOC not in keys:
dflt.append((AppCfg.DAQ_LOC, {'end_station':"cristallina", 'p_group':"p20516"})) dflt.append((AppCfg.DAQ_LOC, {'end_station':"cristallina", 'p_group':"p20516"}))
if AppCfg.DAQ_RUN not in keys: if AppCfg.DAQ_RUN not in keys:
dflt.append((AppCfg.DAQ_RUN, {'prefix':'', 'id':0})) dflt.append((AppCfg.DAQ_RUN, {'prefix':'jf', 'padding':10}))
if AppCfg.DAQ_BS_CH not in keys: if AppCfg.DAQ_BS_CH not in keys:
dflt.append((AppCfg.DAQ_BS_CH, ("SARES30-LSCP1-CRISTA1:CH0:1",))) #list of BS channels dflt.append((AppCfg.DAQ_BS_CH, ("SARES30-LSCP1-CRISTA1:CH0:1",))) #list of BS channels
if AppCfg.DAQ_PV_CH not in keys: if AppCfg.DAQ_PV_CH not in keys:
@@ -363,6 +363,7 @@ verbose bits:
{'name':'show_plots', 'value':dt_misc['show_plots'], 'type':'bool', 'title':'show plots after collection'}, {'name':'show_plots', 'value':dt_misc['show_plots'], 'type':'bool', 'title':'show plots after collection'},
{'name':'vel_scl', 'value':dt_misc['vel_scl'], 'type':'float', 'limits':(0, 1), 'step':0.1, 'title':'velocity_scale', 'tip':"scale between smooth(1.0) and stop and go(0.0)"}, {'name':'vel_scl', 'value':dt_misc['vel_scl'], 'type':'float', 'limits':(0, 1), 'step':0.1, 'title':'velocity_scale', 'tip':"scale between smooth(1.0) and stop and go(0.0)"},
{'name':'pt2pt_time', 'value':dt_misc['pt2pt_time'], 'type':'float', 'step':0.1,'tip':"time in ms from point to point"}, {'name':'pt2pt_time', 'value':dt_misc['pt2pt_time'], 'type':'float', 'step':0.1,'tip':"time in ms from point to point"},
{'name':'time_ofs', 'value':dt_misc['time_ofs'], 'type':'float', 'step':0.01,'tip':"time osset of trigger to at position ???"},
{'name':'sync_mode', 'value':dt_misc['sync_mode'], 'type':'int', 'tip':tip_sync_mode}, {'name':'sync_mode', 'value':dt_misc['sync_mode'], 'type':'int', 'tip':tip_sync_mode},
{'name':'sync_flag', 'value':dt_misc['sync_flag'], 'type':'int', 'tip':tip_sync_flag}, {'name':'sync_flag', 'value':dt_misc['sync_flag'], 'type':'int', 'tip':tip_sync_flag},
{'name':'verbose', 'value':dt_misc['verbose'], 'type':'int', 'tip':tip_verbose}, {'name':'verbose', 'value':dt_misc['verbose'], 'type':'int', 'tip':tip_verbose},
@@ -385,7 +386,7 @@ verbose bits:
]}, ]},
{'name':AppCfg.DAQ_RUN, 'title':'location', 'type':'group', 'children':[ {'name':AppCfg.DAQ_RUN, 'title':'location', 'type':'group', 'children':[
{'name':'prefix', 'value':daq_run['prefix'], 'type':'str',}, {'name':'prefix', 'value':daq_run['prefix'], 'type':'str',},
{'name':'id', 'value':daq_run['id'], 'type':'int'}, {'name':'padding','value':daq_run['padding'], '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_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':AppCfg.DAQ_PV_CH, 'title':'list of PV channels','value':' '.join(cfg.value(AppCfg.DAQ_PV_CH)), 'type':'str'},

View File

@@ -84,9 +84,9 @@ class Jungfrau:
run=cfg.value(AppCfg.DAQ_RUN) run=cfg.value(AppCfg.DAQ_RUN)
self._pulse_id_start=int(self._pv_pulse_id.value) self._pulse_id_start=int(self._pv_pulse_id.value)
if self._daq is not None: if self._daq is not None:
self._daq.acquire(run['prefix'], n_pulses=n_pulses, wait=False) self._daq.acquire(run['prefix'], n_pulses=n_pulses+run['padding'], wait=False)
pass pass
run['id']+=1 #run['id']+=1
cfg.setValue(AppCfg.DAQ_RUN,run) cfg.setValue(AppCfg.DAQ_RUN,run)
def gather_upload(self): def gather_upload(self):

View File

@@ -2114,6 +2114,9 @@ Author Thierry Zamofing (thierry.zamofing@psi.ch)
sp.verbose=dt_misc['verbose'] sp.verbose=dt_misc['verbose']
sp.points=kwargs['points'] sp.points=kwargs['points']
sp.meta['pt2pt_time']=dt_misc['pt2pt_time'] sp.meta['pt2pt_time']=dt_misc['pt2pt_time']
sp.meta['sync_mode']=dt_misc['sync_mode']
sp.meta['sync_flag']=dt_misc['sync_flag']
with pg.ProgressDialog('Progress', 0, 100) as dlg: with pg.ProgressDialog('Progress', 0, 100) as dlg:
dlg.setWindowModality(Qt.WindowModal) dlg.setWindowModality(Qt.WindowModal)
#dlg.setRange(0, 0) #dlg.setRange(0, 0)
@@ -2124,7 +2127,7 @@ Author Thierry Zamofing (thierry.zamofing@psi.ch)
dlg.setLabelText("Setup Gather/Sync");dlg+=5 dlg.setLabelText("Setup Gather/Sync");dlg+=5
sp.setup_gather() sp.setup_gather()
sp.setup_sync(verbose=sp.verbose&0x40, timeOfs=0.05) sp.setup_sync(verbose=sp.verbose&0x40, timeOfs=dt_misc['time_ofs'])
try: try:
p=geo._fitPlane p=geo._fitPlane
#X has inverted sign ! #X has inverted sign !
@@ -2151,8 +2154,8 @@ Author Thierry Zamofing (thierry.zamofing@psi.ch)
sp.run() # start motion program sp.run() # start motion program
sp.wait_armed() # wait until motors are at first position sp.wait_armed() # wait until motors are at first position
sp.trigger(0.5) # send a start trigger (if needed) after given time
jf.acquire(sp.points.shape[0]) jf.acquire(sp.points.shape[0])
sp.trigger(0.0) # send a start trigger (if needed) after given time
if not dt._comm is None: if not dt._comm is None:
dlg.setLabelText("run motion/acquisition") dlg.setLabelText("run motion/acquisition")
dlg.setMaximum(sp.points.shape[0]) dlg.setMaximum(sp.points.shape[0])