1 | function res = idUpdateFeedForwardCorTables2D(idName, tabNameDataCHE, tabNameDataCVE, tabNameDataCHS, tabNameDataCVS, vArgVert, vArgHor, updateMode) |
---|
2 | %tabNameDataCHE = {'parallelModeCHE', mCHE} |
---|
3 | %tabNameDataCVE = {'parallelModeCVE', mCVE} |
---|
4 | %vArgVert = [15.5,16,18,...] - gap values |
---|
5 | %vArgHor = [-40,-35,-30,...] - phase values |
---|
6 | %updateMode: |
---|
7 | % 0- set zero in all tables; 1- overwrite values in all tables; 2- add |
---|
8 | % new tables to existing tables |
---|
9 | |
---|
10 | res = 0; |
---|
11 | |
---|
12 | if((length(vArgVert) > 1) && (length(vArgVert) > 1)) %assume tabNameDataCHE{2} etc. is without arguments |
---|
13 | mCHE_with_arg = idAuxMergeCorTableWithArg2D(vArgVert, vArgHor, tabNameDataCHE{2}); |
---|
14 | mCVE_with_arg = idAuxMergeCorTableWithArg2D(vArgVert, vArgHor, tabNameDataCVE{2}); |
---|
15 | mCHS_with_arg = idAuxMergeCorTableWithArg2D(vArgVert, vArgHor, tabNameDataCHS{2}); |
---|
16 | mCVS_with_arg = idAuxMergeCorTableWithArg2D(vArgVert, vArgHor, tabNameDataCVS{2}); |
---|
17 | else %assume tabNameDataCHE{2} etc. is with arguments |
---|
18 | mCHE_with_arg = tabNameDataCHE{2}; |
---|
19 | mCVE_with_arg = tabNameDataCVE{2}; |
---|
20 | mCHS_with_arg = tabNameDataCHS{2}; |
---|
21 | mCVS_with_arg = tabNameDataCVS{2}; |
---|
22 | end |
---|
23 | |
---|
24 | [DServName, StandByStr] = idGetUndDServer(idName); |
---|
25 | |
---|
26 | %Reading previous cor. tables |
---|
27 | rep = tango_read_attribute2(DServName, tabNameDataCHE{1}); |
---|
28 | stOldTablesFF.mCHE_with_arg = rep.value; |
---|
29 | rep = tango_read_attribute2(DServName, tabNameDataCVE{1}); |
---|
30 | stOldTablesFF.mCVE_with_arg = rep.value; |
---|
31 | rep = tango_read_attribute2(DServName, tabNameDataCHS{1}); |
---|
32 | stOldTablesFF.mCHS_with_arg = rep.value; |
---|
33 | rep = tango_read_attribute2(DServName, tabNameDataCVS{1}); |
---|
34 | stOldTablesFF.mCVS_with_arg = rep.value; |
---|
35 | |
---|
36 | numArgVert = length(vArgVert); |
---|
37 | numArgHor = length(vArgHor); |
---|
38 | numArgVert_p_1 = numArgVert; |
---|
39 | numArgHor_p_1 = numArgHor; |
---|
40 | if(updateMode == 0) |
---|
41 | for i = 2:numArgVert_p_1 |
---|
42 | for j = 2:numArgHor_p_1 |
---|
43 | mCHE_with_arg(i,j) = 0; |
---|
44 | mCVE_with_arg(i,j) = 0; |
---|
45 | mCHS_with_arg(i,j) = 0; |
---|
46 | mCVS_with_arg(i,j) = 0; |
---|
47 | end |
---|
48 | end |
---|
49 | end |
---|
50 | |
---|
51 | if(updateMode == 2) |
---|
52 | strIncompatSizes = 'Incompatible dimensions od mesh of existing and new tables. Incremental update can not be performed.'; |
---|
53 | if((size(stOldTablesFF.mCHE_with_arg, 1) ~= numArgVert_p_1) || (size(stOldTablesFF.mCVE_with_arg, 1) ~= numArgVert_p_1) || (size(stOldTablesFF.mCHS_with_arg, 1) ~= numArgVert_p_1) || (size(stOldTablesFF.mCVS_with_arg, 1) ~= numArgVert_p_1)) |
---|
54 | fprintf(strIncompatSizes); |
---|
55 | return; |
---|
56 | end |
---|
57 | if((size(stOldTablesFF.mCHE_with_arg, 2) ~= numArgHor_p_1) || (size(stOldTablesFF.mCVE_with_arg, 2) ~= numArgHor_p_1) || (size(stOldTablesFF.mCHS_with_arg, 2) ~= numArgHor_p_1) || (size(stOldTablesFF.mCVS_with_arg, 2) ~= numArgHor_p_1)) |
---|
58 | fprintf(strIncompatSizes); |
---|
59 | return; |
---|
60 | end |
---|
61 | |
---|
62 | for i = 2:numArgVert_p_1 |
---|
63 | if((mCHE_with_arg(i,1) ~= stOldTablesFF.mCHE_with_arg(i,1)) || (mCVE_with_arg(i,1) ~= stOldTablesFF.mCVE_with_arg(i,1)) || (mCHS_with_arg(i,1) ~= stOldTablesFF.mCHS_with_arg(i,1)) || (mCVS_with_arg(i,1) ~= stOldTablesFF.mCVS_with_arg(i,1))) |
---|
64 | fprintf(strIncompatSizes); |
---|
65 | return; |
---|
66 | end |
---|
67 | end |
---|
68 | for j = 2:numArgHor_p_1 |
---|
69 | if((mCHE_with_arg(1,j) ~= stOldTablesFF.mCHE_with_arg(1,j)) || (mCVE_with_arg(1,j) ~= stOldTablesFF.mCVE_with_arg(1,j)) || (mCHS_with_arg(1,j) ~= stOldTablesFF.mCHS_with_arg(1,j)) || (mCVS_with_arg(1,j) ~= stOldTablesFF.mCVS_with_arg(1,j))) |
---|
70 | fprintf(strIncompatSizes); |
---|
71 | return; |
---|
72 | end |
---|
73 | end |
---|
74 | for i = 2:numArgVert_p_1 |
---|
75 | for j = 2:numArgHor_p_1 |
---|
76 | mCHE_with_arg(i,j) = mCHE_with_arg(i,j) + stOldTablesFF.mCHE_with_arg(i,j); |
---|
77 | mCVE_with_arg(i,j) = mCVE_with_arg(i,j) + stOldTablesFF.mCVE_with_arg(i,j); |
---|
78 | mCHS_with_arg(i,j) = mCHS_with_arg(i,j) + stOldTablesFF.mCHS_with_arg(i,j); |
---|
79 | mCVS_with_arg(i,j) = mCVS_with_arg(i,j) + stOldTablesFF.mCVS_with_arg(i,j); |
---|
80 | end |
---|
81 | end |
---|
82 | end |
---|
83 | |
---|
84 | %saving previous ff tables |
---|
85 | fileNameCoreOldFF = 'old_ff_tab'; |
---|
86 | idSaveStruct(fileNameCoreOldFF, stOldTablesFF, idName, 0); |
---|
87 | |
---|
88 | tango_write_attribute2(DServName, tabNameDataCHE{1}, mCHE_with_arg); |
---|
89 | tango_write_attribute2(DServName, tabNameDataCVE{1}, mCVE_with_arg); |
---|
90 | tango_write_attribute2(DServName, tabNameDataCHS{1}, mCHS_with_arg); |
---|
91 | tango_write_attribute2(DServName, tabNameDataCVS{1}, mCVS_with_arg); |
---|