1 | function varargout = CORInit_Orb(varargin) |
---|
2 | % CORINIT_ORB - Initializes COR structure for SPEAR ORBIT program |
---|
3 | %COR=CORInit_Orb(COR); |
---|
4 | |
---|
5 | % |
---|
6 | % Written by William J. Corbett |
---|
7 | % Adapted by Laurent S. Nadolski |
---|
8 | |
---|
9 | HCORFamily = 'HCOR'; |
---|
10 | VCORFamily = 'VCOR'; |
---|
11 | |
---|
12 | AO = getao; |
---|
13 | |
---|
14 | %horizontal |
---|
15 | COR(1).name = AO.(HCORFamily).CommonNames; |
---|
16 | COR(1).s = AO.(HCORFamily).Position; |
---|
17 | COR(1).AOFamily = HCORFamily; |
---|
18 | good = AO.(HCORFamily).Status; |
---|
19 | ntcor = size(COR(1).name,1); |
---|
20 | COR(1).ntcor = ntcor; |
---|
21 | COR(1).mode = 0; %...display to show name, toggle for cor.ifit |
---|
22 | COR(1).wt = ones(ntcor,1); %...fitting weights |
---|
23 | COR(1).fit = zeros(ntcor,1); %...result of fitting |
---|
24 | % COR(1).knob = zeros(ntcor,1); %...for corrector knob |
---|
25 | % COR(1).iknob = zeros(ntcor,1); %...knob indices |
---|
26 | % COR(1).knobflag = 0; %...knob not saved |
---|
27 | COR(1).save = zeros(ntcor,1); %...for corrector restore |
---|
28 | COR(1).saveflag = 0; %...correctors not saved |
---|
29 | COR(1).fract = 1.0; %...fraction of correction |
---|
30 | COR(1).id = 1; %...initialize cor selection |
---|
31 | COR(1).scalemode= 1; %...0=manual mode, 1=autoscale |
---|
32 | COR(1).ylim = 10.0; %...10 amp vertical axis scale |
---|
33 | COR(1).status = (1:ntcor)'.*good; %...initial status vector |
---|
34 | COR(1).avail = COR(1).status; %...initial availability vector (in response matrix) |
---|
35 | COR(1).ifit = COR(1).status; %...initial fitting index vector |
---|
36 | COR(1).ibump = []; %...initial corrrector bump index vector |
---|
37 | % COR(1).bumpref = []; %...initial corrrector values for bump |
---|
38 | COR(1).ATindex = AO.(HCORFamily).AT.ATIndex; %load AT indices |
---|
39 | COR(1).act = zeros(ntcor,1); %...actual values |
---|
40 | COR(1).ref = zeros(ntcor,1); %...reference values |
---|
41 | COR(1).des = zeros(ntcor,1); %...desired values |
---|
42 | |
---|
43 | %vertical |
---|
44 | COR(2).AOFamily = VCORFamily; |
---|
45 | COR(2).name = AO.(VCORFamily).CommonNames; |
---|
46 | COR(2).s = AO.(VCORFamily).Position; |
---|
47 | good = AO.(VCORFamily).Status; |
---|
48 | ntcor = size(COR(2).name,1); |
---|
49 | COR(2).ntcor = ntcor; |
---|
50 | COR(2).mode = 0; %...display to show name, toggle for cor.ifit |
---|
51 | COR(2).avail = zeros(ntcor,1); %...available bpm |
---|
52 | COR(2).fit = zeros(ntcor,1); %...result of fitting |
---|
53 | COR(2).wt = ones(ntcor,1); %...weights for fitting |
---|
54 | % COR(2).knob = zeros(ntcor,1); %...forcorrector knob |
---|
55 | % COR(2).iknob = zeros(ntcor,1); %...knob indices |
---|
56 | % COR(2).knobflag = 0; %...knob not saved |
---|
57 | COR(2).save = zeros(ntcor,1); %...for corrector reset |
---|
58 | COR(2).saveflag = 0; %...correctors not saved |
---|
59 | COR(2).fract = 1.0; %...fraction of correction |
---|
60 | COR(2).id = 1; %...initialize corrector selection |
---|
61 | COR(2).scalemode= 1; %...0=manual mode, 1=autoscale |
---|
62 | COR(2).ylim = 10.0; %...10 amp vertical axis scale |
---|
63 | COR(2).status = (1:ntcor)'.*good; %...initial status vector |
---|
64 | COR(2).avail = COR(2).status; %...initial availability vector (in response matrix) |
---|
65 | COR(2).ifit = COR(2).status; %...initial fitting index vector |
---|
66 | COR(2).ibump = []; %...initial corrrector bump index vector |
---|
67 | % COR(2).bumpref = []; %...initial corrrector values for bump |
---|
68 | COR(2).ATindex = AO.(VCORFamily).AT.ATIndex; %load AT indices |
---|
69 | COR(2).act = zeros(ntcor,1); %...actual values |
---|
70 | COR(2).ref = zeros(ntcor,1); %...reference values |
---|
71 | COR(2).des = zeros(ntcor,1); %...desired values |
---|
72 | |
---|
73 | varargout{1} = COR; |
---|