1 | function [libera_RF_offset,block_offset,BBA_offset,survey_offset]=get_bpm_offsets(dev) |
---|
2 | |
---|
3 | X_offset_BBA=0; |
---|
4 | Z_offset_BBA=0; |
---|
5 | libera_RF_offset=0; |
---|
6 | block_offset=0; |
---|
7 | survey_offset=0; |
---|
8 | increment=1; |
---|
9 | Correspondance=tango_get_db_property('BPM','DeviceParameters'); |
---|
10 | block_table=tango_get_db_property('BPM','BlockParameters'); |
---|
11 | libera_table=tango_get_db_property('BPM','HwParameters'); |
---|
12 | for i=1:1:size(Correspondance,2) |
---|
13 | index=regexpi(Correspondance{i},dev); |
---|
14 | if isempty(index)==0 |
---|
15 | separator=regexpi(Correspondance{i},':'); |
---|
16 | BPM_name=Correspondance{i}(1:separator(1)-1); |
---|
17 | block_name=Correspondance{i}(separator(1)+1:separator(2)-1); |
---|
18 | libera_name=Correspondance{i}(separator(2)+1:size(Correspondance{i},2)); |
---|
19 | for j=1:1:size(block_table,2) |
---|
20 | index_block=regexpi(block_table{j},[block_name,':']); |
---|
21 | if isempty(index_block)==0 |
---|
22 | separator=regexpi(block_table{j},':'); |
---|
23 | Block_Ka=str2num(block_table{j}(separator(3)+1:separator(4)-1)); |
---|
24 | Block_Kb=str2num(block_table{j}(separator(4)+1:separator(5)-1)); |
---|
25 | Block_Kc=str2num(block_table{j}(separator(5)+1:separator(6)-1)); |
---|
26 | Block_Kd=str2num(block_table{j}(separator(6)+1:separator(7)-1)); |
---|
27 | |
---|
28 | X_survey_offset=str2num(block_table{j}(separator(7)+1:separator(8)-1)); |
---|
29 | Z_survey_offset=str2num(block_table{j}(separator(9)+1:separator(10)-1)); |
---|
30 | X_offset_BBA=str2num(block_table{j}(separator(8)+1:separator(9)-1)); |
---|
31 | Z_offset_BBA=str2num(block_table{j}(separator(10)+1:separator(11)-1)); |
---|
32 | BPM=BPM_name; |
---|
33 | end |
---|
34 | end |
---|
35 | for j=1:1:size(libera_table,2) |
---|
36 | index_libera=regexpi(libera_table{j},[libera_name,':']); |
---|
37 | if isempty(index_libera)==0 |
---|
38 | separator=regexpi(libera_table{j},':'); |
---|
39 | libera_Ka=str2num(libera_table{j}(separator(2)+1:separator(3)-1)); |
---|
40 | libera_Kb=str2num(libera_table{j}(separator(3)+1:separator(4)-1)); |
---|
41 | libera_Kc=str2num(libera_table{j}(separator(4)+1:separator(5)-1)); |
---|
42 | libera_Kd=str2num(libera_table{j}(separator(5)+1:separator(6)-1)); |
---|
43 | |
---|
44 | end |
---|
45 | end |
---|
46 | end |
---|
47 | end |
---|
48 | K=11.4; |
---|
49 | BBA_offset(1)=X_offset_BBA; |
---|
50 | BBA_offset(2)=Z_offset_BBA; |
---|
51 | survey_offset(1)=X_survey_offset; |
---|
52 | survey_offset(2)=Z_survey_offset; |
---|
53 | block_offset(1)=K*(1/Block_Ka+1/Block_Kd-1/Block_Kb-1/Block_Kc)/(1/Block_Ka+1/Block_Kb+1/Block_Kc+1/Block_Kd); |
---|
54 | block_offset(2)=K*(1/Block_Ka+1/Block_Kb-1/Block_Kc-1/Block_Kd)/(1/Block_Ka+1/Block_Kb+1/Block_Kc+1/Block_Kd); |
---|
55 | block_offset(3)=Block_Ka; |
---|
56 | block_offset(4)=Block_Kb; |
---|
57 | block_offset(5)=Block_Kc; |
---|
58 | block_offset(6)=Block_Kd; |
---|
59 | libera_RF_offset(1)=K*(1/libera_Ka+1/libera_Kd-1/libera_Kb-1/libera_Kc)/(1/libera_Ka+1/libera_Kb+1/libera_Kc+1/libera_Kd); |
---|
60 | libera_RF_offset(2)=K*(1/libera_Ka+1/libera_Kb-1/libera_Kc-1/libera_Kd)/(1/libera_Ka+1/libera_Kb+1/libera_Kc+1/libera_Kd); |
---|
61 | libera_RF_offset(3)=libera_Ka; |
---|
62 | libera_RF_offset(4)=libera_Kb; |
---|
63 | libera_RF_offset(5)=libera_Kc; |
---|
64 | libera_RF_offset(6)=libera_Kd; |
---|
65 | % block_offset(1)=K*(Block_Ka+Block_Kc-Block_Kb-Block_Kd)/(Block_Ka+Block_Kb+Block_Kc+Block_Kd); |
---|
66 | % block_offset(2)=K*(Block_Ka+Block_Kb-Block_Kc-Block_Kd)/(Block_Ka+Block_Kb+Block_Kc+Block_Kd); |
---|
67 | % libera_RF_offset(1)=K*(libera_Ka+libera_Kc-libera_Kb-libera_Kd)/(libera_Ka+libera_Kb+libera_Kc+libera_Kd); |
---|
68 | % libera_RF_offset(2)=K*(libera_Ka+libera_Kb-libera_Kc-libera_Kd)/(libera_Ka+libera_Kb+libera_Kc+libera_Kd); |
---|
69 | %end |
---|
70 | % switch dev |
---|
71 | % case 'all' |
---|
72 | % for i=1:1:size(Correspondance,2) |
---|
73 | % index=regexpi(Correspondance{i},'ANS-C'); |
---|
74 | % if isempty(index)==0 |
---|
75 | % BPM_name=Correspondance{i}(index:index+15); |
---|
76 | % block_name=Correspondance{i}(index+17:index+24); |
---|
77 | % for j=1:1:size(block_table,2) |
---|
78 | % index=regexpi(block_table{j},[block_name,':']); |
---|
79 | % if isempty(index)==0 |
---|
80 | % separator=regexpi(block_table{j},':'); |
---|
81 | % X_offset_BBA(increment)=str2num(block_table{j}(separator(8)+1:separator(9)-1)); |
---|
82 | % Z_offset_BBA(increment)=str2num(block_table{j}(separator(10)+1:separator(11)-1)); |
---|
83 | % BPM(increment,:)=BPM_name; |
---|
84 | % increment=increment+1; |
---|
85 | % end |
---|
86 | % end |
---|
87 | % |
---|
88 | % otherwise |
---|
89 | |
---|
90 | offsets_X = [X_offset_BBA(2:end) X_offset_BBA(1)]'; |
---|
91 | offsets_Z = [Z_offset_BBA(2:end) Z_offset_BBA(1)]'; |
---|
92 | |
---|
93 | |
---|
94 | X_offset=block_offset(1)+BBA_offset(1)+survey_offset(1); |
---|
95 | Z_offset=block_offset(2)+BBA_offset(2)+survey_offset(2); |
---|