1 | function set_bpm_timephase(timeshift) |
---|
2 | % set_bpm_time_phase - Set bpm time phases from list bpm time phase |
---|
3 | % All BPMs should then trig on the same turn |
---|
4 | % |
---|
5 | % See Also reset_bpm_timephase |
---|
6 | |
---|
7 | % |
---|
8 | % Modified by Laurent S. Nadolski, 6 December 2010 |
---|
9 | |
---|
10 | if nargin < 1 |
---|
11 | timeshift = 0; |
---|
12 | end |
---|
13 | |
---|
14 | %% Open filename |
---|
15 | %file = 'liste_bpm_timephase.txt'; |
---|
16 | file = 'liste_bpm_timephase122BPM.txt'; |
---|
17 | file = [getfamilydata('Directory','DataRoot'), 'KickerEM/',file]; |
---|
18 | |
---|
19 | fid = fopen(file,'r'); |
---|
20 | entete=fscanf(fid, '%s',[5]); |
---|
21 | name=[]; |
---|
22 | |
---|
23 | nBPM = 122; % Total Number of BPM |
---|
24 | |
---|
25 | % Intialization |
---|
26 | timephase = zeros(1,nBPM); |
---|
27 | |
---|
28 | for i=1:nBPM |
---|
29 | text = fscanf(fid, '%s', [3]) ; |
---|
30 | name = [name ; {text(1:16)}]; |
---|
31 | timephase(i) = str2double(text(18:19)); |
---|
32 | end |
---|
33 | fclose(fid); |
---|
34 | timephase = int32(timephase); |
---|
35 | |
---|
36 | %save list_bpm.mat name % To save data |
---|
37 | |
---|
38 | % If need to shift data |
---|
39 | % 128 means 1 ring turn |
---|
40 | % time phase is defined modulo 128 |
---|
41 | timephase = mod(timephase+int32(20),128); |
---|
42 | |
---|
43 | % Write data |
---|
44 | h = waitbar(0,'Time Phase loading, please wait'); |
---|
45 | |
---|
46 | for i=1:nBPM, |
---|
47 | waitbar(i/nBPM,h) |
---|
48 | tango_write_attribute2(name{i},'TimePhase',timephase(i)); pause(0.01) |
---|
49 | tango_command_inout2(name{i},'SetTimeOnNextTrigger'); pause(0.01) |
---|
50 | end |
---|
51 | close(h) |
---|