diff --git a/FofbTool/Operation.py b/FofbTool/Operation.py index 7ee96f744f47a88a649485cd46c66ce0f4807e5c..c1abb47cec0315ee57b0a0bedf2bcda48b543e94 100644 --- a/FofbTool/Operation.py +++ b/FofbTool/Operation.py @@ -556,26 +556,35 @@ def electron_stop_com(bpmlist): # OPERATIONS FOR LBP and Electron SYNCHRONIZATION ################################################################################################### -def sync_bpm(bpmlist, bpmidlist, lbpevrx, tlocal, tcentral): +def sync_bpm(bpmidlist, lbpevrx, timinglocal, timingcentral): """ Synchronize all BPM electronics, Electron and Brillance Plus. This will use the timing system (central and local board). PARAMETERS: ----------- - bpmlist: list - list of Libera Electron tango path - bpmidlist: list - list of ID to put on Libera Electron + bpmidlist: list of tuple + list of tuple (ID, tangopath) to put on Libera Electron lbpevrx: list - list of LBP Evrx tanfo path - tlocal: list - list of Timing local board to set event - tcentral: str + list of LBP Evrx tango path + timinglocal: list + list of Timing local itango path to set event + timingcentral: str Tango path of timing central """ EVN=240 # Event number + bpmlist = [b[1] for b in bpmidlist] + + + tlocal = tango.Group('tlocal') + tlocal.add(timinglocal) + + tcentral = tango.DeviceProxy(timingcentral) + + glbpevrx = tango.Group('lbpevrx') + glbpevrx.add(lbpevrx) + # --------------------------------------------------------------------------------------------------------------- # Init BPMs, stop first and put for each the ID number @@ -600,7 +609,7 @@ def sync_bpm(bpmlist, bpmidlist, lbpevrx, tlocal, tcentral): electron_sync_next_trigger(bpmlist) logger.info("Prepare Libera Brillance Plus to start on next trigger") - r=lbpevrx.write_attribute("synchronize", 0) + r=glbpevrx.write_attribute("synchronize", 0) for _r in r: if _r.has_failed(): logger.error("Failed to write synchronize on LBP EVRX {}".format(_r.dev_name())) diff --git a/FofbTool/Utils.py b/FofbTool/Utils.py index c43e87d2f7b28d16aea9183f908043adbcacb612..1d5b6c9328362a2da839632e522c812f11a55d32 100644 --- a/FofbTool/Utils.py +++ b/FofbTool/Utils.py @@ -460,17 +460,13 @@ def sync_all_bpm(): db = tango.Database() - bpmlist = [n.split(':')[2] for n in db.get_property("FOFB", "bpmlist")['bpmlist'] if ":LIBERA:" in n] bpmidlist = [(int(n.split(':')[0]), n.split(':')[2]) for n in db.get_property("FOFB", "bpmlist")['bpmlist'] if 'LIBERA' in n] - tlocal = tango.Group('tlocal') - tlocal.add([n.split(':')[2] for n in db.get_property("FOFB", 'TimingBoardList')['TimingBoardList'] if "LOCAL" in n]) + tlocal = [n.split(':')[2] for n in db.get_property("FOFB", 'TimingBoardList')['TimingBoardList'] if "LOCAL" in n] - # Set a group of Libera Brillance Plus EVRX board, from FofbTool configuration - lbpevrx = tango.Group('lbpevrx') - lbpevrx.add(config["tangopath"]["lbpevrx"].split()) + lbpevrx = config["tangopath"]["lbpevrx"].split() - tcentral = tango.DeviceProxy(config["tangopath"]["timing-central"]) + tcentral = config["tangopath"]["timing-central"] - FofbTool.Operation.sync_bpm(bpmlist, bpmidlist, lbpevrx, tlocal, tcentral) + FofbTool.Operation.sync_bpm(bpmidlist, lbpevrx, tlocal, tcentral)