1 | function FFWDTableStructure=idDownloadFFWDTableStructureOfOneCorrectorFromDevice(idName, CorrectorName, idMode) |
---|
2 | %% Written by F. Briquez 30/03/2011 |
---|
3 | % 1) Inputs : idName : such as 'HU36_SIRIUS' |
---|
4 | % : CorrectorName : 'CHE', 'CHS', 'CVE' or 'CVS' |
---|
5 | % : idMode : 'ii', 'x', 'i2' or 'x2' for parallel or anti-parallel normal/advanced modes. |
---|
6 | % (Not case-sensitive) |
---|
7 | % 2) Output : Structure with fields : |
---|
8 | % - vPhases : 1xNphases vector containing phase values |
---|
9 | % - vGaps : 1xNgaps vector containing gap values |
---|
10 | % - Table : NphasesxNgaps matrix containing correction current values |
---|
11 | % - TableWithArgs : (Nphases+1)x(Ngaps+1) matrix containing |
---|
12 | % correction current values, with headers |
---|
13 | % - idName : idName |
---|
14 | % - CorrectorName : CorrectorName |
---|
15 | % - idMode : idMode |
---|
16 | % 3) Returns empty structure (0x0 without field) in case of inexisting file |
---|
17 | % or wrong input. |
---|
18 | |
---|
19 | %% Create empty structure |
---|
20 | FFWDTableStructure=struct; |
---|
21 | |
---|
22 | %% Check the name of ID |
---|
23 | Directory=idGetFFWDTableDirectory(idName); |
---|
24 | if (isempty(Directory)) |
---|
25 | fprintf ('Error in ''idDownloadFFWDTableStructureOfOneCorrectorFromDevice'' : wrong idName ''%s''\n', idName); |
---|
26 | return |
---|
27 | end |
---|
28 | |
---|
29 | %% Check the corrector name |
---|
30 | if (strcmpi(CorrectorName, 'CVE')==0&&strcmpi(CorrectorName, 'CHE')==0&&strcmpi(CorrectorName, 'CVS')==0&&strcmpi(CorrectorName, 'CHS')==0) |
---|
31 | fprintf('Error in ''idDownloadFFWDTableStructureOfOneCorrectorFromDevice'' : Wrong corrector name\n') |
---|
32 | return |
---|
33 | end |
---|
34 | |
---|
35 | %% Check the mode of ID |
---|
36 | if strcmpi(idMode, 'II') |
---|
37 | % idMode='PARALLEL'; |
---|
38 | elseif strcmpi(idMode, 'X') |
---|
39 | % idMode='ANTIPARALLEL'; |
---|
40 | elseif strcmpi(idMode, 'I2') |
---|
41 | % idMode='PARALLEL 2'; |
---|
42 | elseif strcmpi(idMode, 'X2') |
---|
43 | % idMode='ANTIPARALLEL 2'; |
---|
44 | else fprintf('Error in ''idDownloadFFWDTableStructureOfOneCorrectorFromDevice'' : Wrong mode. It should be ''II'', ''X'', ''I2'' or ''X2''\n') |
---|
45 | return |
---|
46 | end |
---|
47 | |
---|
48 | %% Check that FFWD table file exists |
---|
49 | FileFullName=idGetFFWDTableFullFileName(idName, CorrectorName, idMode); |
---|
50 | |
---|
51 | if (exist(FileFullName, 'file')~=2) |
---|
52 | fprintf('Error in ''idDownloadFFWDTableStructureOfOneCorrectorFromDevice'' : could not find table file ''%s''\n', FileFullName); |
---|
53 | return |
---|
54 | end |
---|
55 | |
---|
56 | %% Extracts data from FFWD table file and puts in output structure fields |
---|
57 | FFWDTableWithArgs=load('-ascii', FileFullName); |
---|
58 | |
---|
59 | NumberOfPhaseValues=size(FFWDTableWithArgs, 2); |
---|
60 | NumberOfGapValues=size(FFWDTableWithArgs, 1); |
---|
61 | FFWDTable=FFWDTableWithArgs(2:NumberOfGapValues, 2:NumberOfPhaseValues); |
---|
62 | vPhases=FFWDTableWithArgs(1,2:NumberOfPhaseValues); |
---|
63 | vGaps=FFWDTableWithArgs(2:NumberOfGapValues, 1); |
---|
64 | vPhases=transpose(vPhases); |
---|
65 | |
---|
66 | FFWDTableStructure=idGetFFWDTableStructureFromTable(idName, FFWDTable, vPhases, vGaps, idMode, CorrectorName); |
---|
67 | |
---|
68 | % FFWDTableStructure.vPhases=vPhases; |
---|
69 | % FFWDTableStructure.vGaps=vGaps; |
---|
70 | % FFWDTableStructure.Table=FFWDTable; |
---|
71 | % FFWDTableStructure.TableWithArgs=FFWDTableWithArgs; |
---|
72 | % FFWDTableStructure.idName=idName; |
---|
73 | % FFWDTableStructure.CorrectorName=CorrectorName; |
---|
74 | % FFWDTableStructure.idMode=idMode; |
---|
75 | return |
---|
76 | end |
---|