0001 function varargout = configgui(action, varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 h = findobj(0,'Tag','cnffig');
0013 if ~isempty(h) cnfdata=getappdata(h,'configguidata'); end
0014
0015
0016
0017
0018 if nargin == 0
0019
0020 if isempty(getao)
0021 disp('Warning: Load ring AcceleratorObjects first');
0022 return
0023 else
0024 Machine = getfamilydata('SubMachine');
0025 switch Machine
0026 case {'StorageRing', 'LT1', 'LT2', 'Booster'}
0027
0028 otherwise
0029 disp('Warning: Machine not recognized!');
0030 return
0031 end
0032 end
0033
0034
0035 if ~isempty(h) delete(h); end
0036
0037
0038 cnfdata.field='setpoint';
0039 cnfdata.SetpointData=[];
0040 cnfdata.MonitorData=[];
0041
0042
0043 cnfdata.handles.figure=configgui('CNFFig',Machine);
0044 setappdata(cnfdata.handles.figure,'configguidata',cnfdata);
0045
0046 configgui('UIControls',Machine);
0047
0048 return
0049 end
0050
0051 switch action
0052
0053 case 'CNFFig'
0054
0055
0056
0057 [screen_wide, screen_high]=screensizecm;
0058
0059 fig_start = [0.13*screen_wide 0.16*screen_high];
0060
0061 Machine = varargin{1};
0062
0063 switch Machine
0064 case {'LT1', 'Booster', 'LT2'}
0065 fig_size = [0.45*screen_wide 0.5*screen_high];
0066 case 'StorageRing'
0067 fig_size = [0.6*screen_wide 0.5*screen_high];
0068 otherwise
0069 error(['Wrong Machine: ' Machine]);
0070 end
0071
0072 h = figure('Visible','off',...
0073 'units','centimeters','Resize','off',...
0074 'tag','cnffig',...
0075 'NumberTitle','off',...
0076 'Doublebuffer','on',...
0077 'Name',[Machine ': Setpoint file manager (Fichiers de consignes)'],...
0078 'PaperPositionMode','Auto');
0079 set(h,'MenuBar','None');
0080 set(h,'Position',[fig_start fig_size],'Visible','on');
0081
0082 varargout{1}=h;
0083
0084
0085 case 'UIControls'
0086
0087
0088
0089 Machine = varargin{1};
0090
0091 switch Machine
0092 case {'LT1', 'LT2'}
0093
0094 [screen_wide, screen_high]=screensizecm;
0095 x0=0.01*screen_wide ; dx=0.04*screen_wide; y0=0.48*screen_high; dy=0.04*screen_high; dely=0.03*screen_high;
0096
0097 col1_families={'BEND'; 'QP'; 'CH' ; 'CV'};
0098
0099 families=[col1_families(:)];
0100 cnfdata.families=families;
0101
0102
0103 for k=1:length(col1_families)
0104 cnfdata.handles.([col1_families{k} 'chk'])=uicontrol('Style','checkbox','units', 'centimeters','FontWeight','demi', ...
0105 'ToolTipString','Check to include in configuration load',...
0106 'Position',[x0+0.5*dx,y0-(k-0.33)*dely,1.8*dx,dy/2],'HorizontalAlignment','center','String',col1_families{k},...
0107 'callback','configgui(''CheckValid'')');
0108 cnfdata.handles.([col1_families{k} 'flag'])=uicontrol('Style','text','units', 'centimeters', ...
0109 'Position',[x0+0.22*dx,y0-(k-0.51)*dely,dx/5,dy/4],'HorizontalAlignment','center','String',' ','BackGroundColor','r','Userdata',0);
0110 end
0111
0112
0113
0114 x1 = 5.5;
0115
0116 uicontrol('Style','pushbutton','units', 'centimeters','FontWeight','demi', ...
0117 'ToolTipString','Select all families to include in configuration load',...
0118 'Callback','configgui(''SelectAll'')',...
0119 'Position',[x0+x1*dx,y0-1*dely,2*dx,dy/2],'HorizontalAlignment','center','String','Select All');
0120
0121
0122 uicontrol('Style','pushbutton','units', 'centimeters','FontWeight','demi', ...
0123 'ToolTipString','Select no families to include in configuration load',...
0124 'Callback','configgui(''SelectNone'')',...
0125 'Position',[x0+x1*dx,y0-2*dely,2*dx,dy/2],'HorizontalAlignment','center','String','Select None');
0126
0127
0128 uicontrol('Style','pushbutton','units', 'centimeters','FontWeight','demi', ...
0129 'ToolTipString','Print configuration data to screen',...
0130 'Callback','configgui(''ShowMainConfiguration'')',...
0131 'Position',[x0+x1*dx,y0-3*dely,3.5*dx,dy/2],'HorizontalAlignment','center','String','Display Main Configuration');
0132
0133
0134 uicontrol('Style','pushbutton','units', 'centimeters','FontWeight','demi', ...
0135 'ToolTipString','Print configuration data to screen',...
0136 'Callback','configgui(''ShowConfiguration'')',...
0137 'Position',[x0+x1*dx,y0-4*dely,3.5*dx,dy/2],'HorizontalAlignment','center','String','Display Full Configuration');
0138
0139
0140 setappdata(gcf,'cycling',0);
0141 uicontrol('Style','checkbox','units', 'centimeters','FontWeight','demi', ...
0142 'ToolTipString','Cycle magnet when applying to machine',...
0143 'Callback','setappdata(gcf,''cycling'',get(gcbo,''Value''));',...
0144 'Position',[x0+x1*dx,y0-5.5*dely,2*dx,dy/2],'HorizontalAlignment','center','String','Cycling');
0145
0146
0147 ts = ['Program Start-Up: ' datestr(now,0)];
0148 cnfdata.handles.listbox=uicontrol('Style','list','Units','centimeters','Position',[x0+0.5*dx y0-15.8*dely 10*dx 2*dy],'String',{ts});
0149
0150
0151 cnfdata.handles.configname=uicontrol('Style','text','units', 'centimeters', ...
0152 'Position',[x0+0.5*dx y0-13*dely 8*dx dy/2],'HorizontalAlignment','left','String',' ');
0153
0154
0155 x1 = 0.5; x2 = x1 + 1.5;
0156 uicontrol('Style','text','units', 'centimeters','FontWeight','demi', ...
0157 'Position',[x0+x1*dx,y0-7*dely,3.5*dx,dy/2],'HorizontalAlignment','left',...
0158 'String','Get Configuration from: ');
0159
0160 cnfdata.handles.GetMachine=uicontrol('Style','PushButton','units', 'centimeters', ...
0161 'ToolTipString','Acquire configuration from Machine','BackGroundColor',[1 1 1],...
0162 'Position',[x0+x1*dx,y0-7.8*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Machine',...
0163 'Callback','configgui(''GetMachineConfig'')');
0164 cnfdata.handles.GetMachineTime=uicontrol('Style','text','units', 'centimeters', ...
0165 'Position',[x0+x2*dx,y0-7.8*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0166
0167
0168 cnfdata.handles.GetDesired=uicontrol('Style','PushButton','units', 'centimeters', ...
0169 'ToolTipString','Acquire configuration from Desired Setpoints ','BackGroundColor',[1 1 1],...
0170 'Position',[x0+x1*dx,y0-8.6*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Desired',...
0171 'Callback','configgui(''GetDesiredConfig'')');
0172 cnfdata.handles.GetDesiredTime=uicontrol('Style','text','units', 'centimeters', ...
0173 'Position',[x0+x2*dx,y0-8.6*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0174
0175
0176 cnfdata.handles.GetFile=uicontrol('Style','PushButton','units', 'centimeters', ...
0177 'ToolTipString','Read configuration from file','BackGroundColor',[1 1 1],...
0178 'Position',[x0+x1*dx,y0-9.4*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','File',...
0179 'Callback','configgui(''GetFileConfig'')');
0180 cnfdata.handles.GetFileTime=uicontrol('Style','text','units', 'centimeters', ...
0181 'Position',[x0+x2*dx,y0-9.4*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0182
0183 cnfdata.handles.GetGolden=uicontrol('Style','PushButton','units', 'centimeters', ...
0184 'ToolTipString','Read configuration from Golden','BackGroundColor',[1 1 1],...
0185 'Position',[x0+x1*dx,y0-10.2*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Golden',...
0186 'Callback','configgui(''GetGoldenConfig'')');
0187 cnfdata.handles.GetGoldenTime=uicontrol('Style','text','units', 'centimeters', ...
0188 'Position',[x0+x2*dx,y0-10.2*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0189
0190 cnfdata.handles.GetSimulator=uicontrol('Style','PushButton','units', 'centimeters', ...
0191 'ToolTipString','Acquire configuration from Simulator','BackGroundColor',[1 1 1],...
0192 'Position',[x0+x1*dx,y0-11*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Simulator',...
0193 'Callback','configgui(''GetSimulatorConfig'')');
0194 cnfdata.handles.GetSimulatorTime=uicontrol('Style','text','units', 'centimeters', ...
0195 'Position',[x0+x2*dx,y0-11*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0196
0197
0198 cnfdata.handles.GetWorkspace=uicontrol('Style','PushButton','units', 'centimeters', ...
0199 'ToolTipString','Acquire configuration from WorkSpace','BackGroundColor',[1 1 1],...
0200 'Position',[x0+x1*dx,y0-11.8*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Workspace',...
0201 'Callback','configgui(''GetWorkspaceConfig'')');
0202 cnfdata.handles.GetWorkspaceTime=uicontrol('Style','text','units', 'centimeters', ...
0203 'Position',[x0+x2*dx,y0-11.8*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0204
0205
0206 x1 = 5.5; x2= x1+1.5;
0207 uicontrol('Style','text','units', 'centimeters','FontWeight','demi', ...
0208 'Position',[x0+x1*dx,y0-7*dely,3*dx,dy/2],'HorizontalAlignment','left','String','Set Configuration to: ');
0209
0210 uicontrol('Style','PushButton','units', 'centimeters', ...
0211 'ToolTipString','Load configuration to Machine (only selected families)','BackGroundColor',[1 1 1],...
0212 'Position',[x0+x1*dx,y0-7.8*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Machine',...
0213 'Callback','configgui(''SetMachineConfig'')');
0214 cnfdata.handles.LoadMachineTime=uicontrol('Style','text','units', 'centimeters', ...
0215 'Position',[x0+x2*dx,y0-7.8*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0216
0217
0218 uicontrol('Style','PushButton','units', 'centimeters', ...
0219 'ToolTipString','Load configuration to Desired Setpoints (only selected families)','BackGroundColor',[1 1 1],...
0220 'Position',[x0+x1*dx,y0-8.6*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Desired',...
0221 'Callback','configgui(''SetDesiredConfig'')');
0222 cnfdata.handles.LoadDesiredTime=uicontrol('Style','text','units', 'centimeters', ...
0223 'Position',[x0+x2*dx,y0-8.6*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0224
0225
0226 uicontrol('Style','PushButton','units', 'centimeters', ...
0227 'ToolTipString','Write configuration to file (all families)','BackGroundColor',[1 1 1],...
0228 'Position',[x0+x1*dx,y0-9.4*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','File',...
0229 'Callback','configgui(''SetFileConfig'')');
0230 cnfdata.handles.LoadFileTime=uicontrol('Style','text','units', 'centimeters', ...
0231 'Position',[x0+x2*dx,y0-9.4*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0232
0233 uicontrol('Style','PushButton','units', 'centimeters', ...
0234 'ToolTipString','Write configuration to Golden (all families)','BackGroundColor',[1 1 1],...
0235 'Position',[x0+x1*dx,y0-10.2*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Golden',...
0236 'Callback','configgui(''SetGoldenConfig'')');
0237 cnfdata.handles.LoadGoldenTime=uicontrol('Style','text','units', 'centimeters', ...
0238 'Position',[x0+x2*dx,y0-10.2*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0239
0240 uicontrol('Style','PushButton','units', 'centimeters', ...
0241 'ToolTipString','Load configuration to Simulator (only selected families)','BackGroundColor',[1 1 1],...
0242 'Position',[x0+x1*dx,y0-11*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Simulator',...
0243 'Callback','configgui(''SetSimulatorConfig'')');
0244 cnfdata.handles.LoadSimulatorTime=uicontrol('Style','text','units', 'centimeters', ...
0245 'Position',[x0+x2*dx,y0-11*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0246
0247
0248 uicontrol('Style','PushButton','units', 'centimeters', ...
0249 'ToolTipString','Load configuration to Workspace (only selected families)','BackGroundColor',[1 1 1],...
0250 'Position',[x0+x1*dx,y0-11.8*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Workspace',...
0251 'Callback','configgui(''SetWorkspaceConfig'')');
0252 cnfdata.handles.LoadWorkspaceTime=uicontrol('Style','text','units', 'centimeters', ...
0253 'Position',[x0+x2*dx,y0-11.8*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0254
0255 case 'Booster'
0256
0257
0258
0259 [screen_wide, screen_high]=screensizecm;
0260 x0=0.01*screen_wide ; dx=0.04*screen_wide; y0=0.48*screen_high; dy=0.04*screen_high; dely=0.03*screen_high;
0261
0262 col1_families={'BEND'; 'QF'; 'QD'; 'SF'; 'SD'};
0263 col2_families={'HCOR' ; 'VCOR'; 'K_Inj'; 'SEP_Inj'};
0264
0265 families=[col1_families(:); col2_families];
0266 cnfdata.families=families;
0267
0268
0269 for k=1:length(col1_families)
0270 cnfdata.handles.([col1_families{k} 'chk'])=uicontrol('Style','checkbox','units', 'centimeters','FontWeight','demi', ...
0271 'ToolTipString','Check to include in configuration load',...
0272 'Position',[x0+0.5*dx,y0-(k-0.33)*dely,1.8*dx,dy/2],'HorizontalAlignment','center','String',col1_families{k},...
0273 'callback','configgui(''CheckValid'')');
0274 cnfdata.handles.([col1_families{k} 'flag'])=uicontrol('Style','text','units', 'centimeters', ...
0275 'Position',[x0+0.22*dx,y0-(k-0.51)*dely,dx/5,dy/4],'HorizontalAlignment','center','String',' ','BackGroundColor','r','Userdata',0);
0276 end
0277
0278 for k=1:length(col2_families)
0279 cnfdata.handles.([col2_families{k} 'chk'])=uicontrol('Style','checkbox','units', 'centimeters','FontWeight','demi', ...
0280 'ToolTipString','Check to include in configuration load',...
0281 'Position',[x0+3.0*dx,y0-(k-0.33)*dely,1.8*dx,dy/2],'HorizontalAlignment','center','String',col2_families{k},...
0282 'callback','configgui(''CheckValid'')');
0283 cnfdata.handles.([col2_families{k} 'flag'])=uicontrol('Style','text','units', 'centimeters', ...
0284 'Position',[x0+2.7*dx,y0-(k-0.51)*dely,dx/5,dy/4],'HorizontalAlignment','center','String',' ','BackGroundColor','r','Userdata',0);
0285 end
0286
0287 x1 = 5.5;
0288
0289 uicontrol('Style','pushbutton','units', 'centimeters','FontWeight','demi', ...
0290 'ToolTipString','Select all families to include in configuration load',...
0291 'Callback','configgui(''SelectAll'')',...
0292 'Position',[x0+x1*dx,y0-1*dely,2*dx,dy/2],'HorizontalAlignment','center','String','Select All');
0293
0294
0295 uicontrol('Style','pushbutton','units', 'centimeters','FontWeight','demi', ...
0296 'ToolTipString','Select no families to include in configuration load',...
0297 'Callback','configgui(''SelectNone'')',...
0298 'Position',[x0+x1*dx,y0-2*dely,2*dx,dy/2],'HorizontalAlignment','center','String','Select None');
0299
0300
0301 uicontrol('Style','pushbutton','units', 'centimeters','FontWeight','demi', ...
0302 'ToolTipString','Print configuration data to screen',...
0303 'Callback','configgui(''ShowMainConfiguration'')',...
0304 'Position',[x0+x1*dx,y0-3*dely,3.5*dx,dy/2],'HorizontalAlignment','center','String','Display Main Configuration');
0305
0306
0307 uicontrol('Style','pushbutton','units', 'centimeters','FontWeight','demi', ...
0308 'ToolTipString','Print configuration data to screen',...
0309 'Callback','configgui(''ShowConfiguration'')',...
0310 'Position',[x0+x1*dx,y0-4*dely,3.5*dx,dy/2],'HorizontalAlignment','center','String','Display Full Configuration');
0311
0312
0313 setappdata(gcf,'cycling',0);
0314 uicontrol('Style','checkbox','units', 'centimeters','FontWeight','demi', ...
0315 'ToolTipString','Cycle magnet when applying to machine',...
0316 'Callback','setappdata(gcf,''cycling'',get(gcbo,''Value''));',...
0317 'Position',[x0+x1*dx,y0-5.5*dely,2*dx,dy/2],'HorizontalAlignment','center','String','Cycling');
0318
0319
0320 ts = ['Program Start-Up: ' datestr(now,0)];
0321 cnfdata.handles.listbox=uicontrol('Style','list','Units','centimeters','Position',[x0+0.5*dx y0-15.8*dely 10*dx 2*dy],'String',{ts});
0322
0323
0324 cnfdata.handles.configname=uicontrol('Style','text','units', 'centimeters', ...
0325 'Position',[x0+0.5*dx y0-13*dely 8*dx dy/2],'HorizontalAlignment','left','String',' ');
0326
0327
0328 x1 = 0.5; x2 = x1 + 1.5;
0329 uicontrol('Style','text','units', 'centimeters','FontWeight','demi', ...
0330 'Position',[x0+x1*dx,y0-7*dely,3.5*dx,dy/2],'HorizontalAlignment','left',...
0331 'String','Get Configuration from: ');
0332
0333 cnfdata.handles.GetMachine=uicontrol('Style','PushButton','units', 'centimeters', ...
0334 'ToolTipString','Acquire configuration from Machine','BackGroundColor',[1 1 1],...
0335 'Position',[x0+x1*dx,y0-7.8*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Machine',...
0336 'Callback','configgui(''GetMachineConfig'')');
0337 cnfdata.handles.GetMachineTime=uicontrol('Style','text','units', 'centimeters', ...
0338 'Position',[x0+x2*dx,y0-7.8*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0339
0340
0341 cnfdata.handles.GetDesired=uicontrol('Style','PushButton','units', 'centimeters', ...
0342 'ToolTipString','Acquire configuration from Desired Setpoints ','BackGroundColor',[1 1 1],...
0343 'Position',[x0+x1*dx,y0-8.6*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Desired',...
0344 'Callback','configgui(''GetDesiredConfig'')');
0345 cnfdata.handles.GetDesiredTime=uicontrol('Style','text','units', 'centimeters', ...
0346 'Position',[x0+x2*dx,y0-8.6*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0347
0348
0349 cnfdata.handles.GetFile=uicontrol('Style','PushButton','units', 'centimeters', ...
0350 'ToolTipString','Read configuration from file','BackGroundColor',[1 1 1],...
0351 'Position',[x0+x1*dx,y0-9.4*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','File',...
0352 'Callback','configgui(''GetFileConfig'')');
0353 cnfdata.handles.GetFileTime=uicontrol('Style','text','units', 'centimeters', ...
0354 'Position',[x0+x2*dx,y0-9.4*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0355
0356 cnfdata.handles.GetGolden=uicontrol('Style','PushButton','units', 'centimeters', ...
0357 'ToolTipString','Read configuration from Golden','BackGroundColor',[1 1 1],...
0358 'Position',[x0+x1*dx,y0-10.2*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Golden',...
0359 'Callback','configgui(''GetGoldenConfig'')');
0360 cnfdata.handles.GetGoldenTime=uicontrol('Style','text','units', 'centimeters', ...
0361 'Position',[x0+x2*dx,y0-10.2*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0362
0363 cnfdata.handles.GetSimulator=uicontrol('Style','PushButton','units', 'centimeters', ...
0364 'ToolTipString','Acquire configuration from Simulator','BackGroundColor',[1 1 1],...
0365 'Position',[x0+x1*dx,y0-11*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Simulator',...
0366 'Callback','configgui(''GetSimulatorConfig'')');
0367 cnfdata.handles.GetSimulatorTime=uicontrol('Style','text','units', 'centimeters', ...
0368 'Position',[x0+x2*dx,y0-11*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0369
0370
0371 cnfdata.handles.GetWorkspace=uicontrol('Style','PushButton','units', 'centimeters', ...
0372 'ToolTipString','Acquire configuration from WorkSpace','BackGroundColor',[1 1 1],...
0373 'Position',[x0+x1*dx,y0-11.8*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Workspace',...
0374 'Callback','configgui(''GetWorkspaceConfig'')');
0375 cnfdata.handles.GetWorkspaceTime=uicontrol('Style','text','units', 'centimeters', ...
0376 'Position',[x0+x2*dx,y0-11.8*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0377
0378
0379 x1 = 5.5; x2= x1+1.5;
0380 uicontrol('Style','text','units', 'centimeters','FontWeight','demi', ...
0381 'Position',[x0+x1*dx,y0-7*dely,3*dx,dy/2],'HorizontalAlignment','left','String','Set Configuration to: ');
0382
0383 uicontrol('Style','PushButton','units', 'centimeters', ...
0384 'ToolTipString','Load configuration to Machine (only selected families)','BackGroundColor',[1 1 1],...
0385 'Position',[x0+x1*dx,y0-7.8*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Machine',...
0386 'Callback','configgui(''SetMachineConfig'')');
0387 cnfdata.handles.LoadMachineTime=uicontrol('Style','text','units', 'centimeters', ...
0388 'Position',[x0+x2*dx,y0-7.8*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0389
0390
0391 uicontrol('Style','PushButton','units', 'centimeters', ...
0392 'ToolTipString','Load configuration to Desired Setpoints (only selected families)','BackGroundColor',[1 1 1],...
0393 'Position',[x0+x1*dx,y0-8.6*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Desired',...
0394 'Callback','configgui(''SetDesiredConfig'')');
0395 cnfdata.handles.LoadDesiredTime=uicontrol('Style','text','units', 'centimeters', ...
0396 'Position',[x0+x2*dx,y0-8.6*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0397
0398
0399 uicontrol('Style','PushButton','units', 'centimeters', ...
0400 'ToolTipString','Write configuration to file (all families)','BackGroundColor',[1 1 1],...
0401 'Position',[x0+x1*dx,y0-9.4*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','File',...
0402 'Callback','configgui(''SetFileConfig'')');
0403 cnfdata.handles.LoadFileTime=uicontrol('Style','text','units', 'centimeters', ...
0404 'Position',[x0+x2*dx,y0-9.4*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0405
0406 uicontrol('Style','PushButton','units', 'centimeters', ...
0407 'ToolTipString','Write configuration to Golden (all families)','BackGroundColor',[1 1 1],...
0408 'Position',[x0+x1*dx,y0-10.2*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Golden',...
0409 'Callback','configgui(''SetGoldenConfig'')');
0410 cnfdata.handles.LoadGoldenTime=uicontrol('Style','text','units', 'centimeters', ...
0411 'Position',[x0+x2*dx,y0-10.2*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0412
0413 uicontrol('Style','PushButton','units', 'centimeters', ...
0414 'ToolTipString','Load configuration to Simulator (only selected families)','BackGroundColor',[1 1 1],...
0415 'Position',[x0+x1*dx,y0-11*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Simulator',...
0416 'Callback','configgui(''SetSimulatorConfig'')');
0417 cnfdata.handles.LoadSimulatorTime=uicontrol('Style','text','units', 'centimeters', ...
0418 'Position',[x0+x2*dx,y0-11*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0419
0420
0421 uicontrol('Style','PushButton','units', 'centimeters', ...
0422 'ToolTipString','Load configuration to Workspace (only selected families)','BackGroundColor',[1 1 1],...
0423 'Position',[x0+x1*dx,y0-11.8*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Workspace',...
0424 'Callback','configgui(''SetWorkspaceConfig'')');
0425 cnfdata.handles.LoadWorkspaceTime=uicontrol('Style','text','units', 'centimeters', ...
0426 'Position',[x0+x2*dx,y0-11.8*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0427
0428
0429 case 'StorageRing'
0430
0431 [screen_wide, screen_high]=screensizecm;
0432 x0=0.01*screen_wide ; dx=0.04*screen_wide; y0=0.48*screen_high; dy=0.04*screen_high; dely=0.03*screen_high;
0433
0434 col1_families={'BEND'; 'HCOR' ; 'VCOR'; 'QT'};
0435 col2_families={'Q1'; 'Q2'; 'Q3'; 'Q4'; 'Q5'};
0436 col3_families={'Q6'; 'Q7'; 'Q8'; 'Q9'; 'Q10'};
0437 col4_families={'S1'; 'S2'; 'S3'; 'S4'; 'S5'};
0438 col5_families={'S6'; 'S7'; 'S8'; 'S9'; 'S10'};
0439
0440 families=[col1_families(:); col2_families(:); col3_families(:) ; col4_families(:) ; col5_families(:)];
0441 cnfdata.families=families;
0442
0443
0444 for k=1:length(col1_families)
0445 cnfdata.handles.([col1_families{k} 'chk'])=uicontrol('Style','checkbox','units', 'centimeters','FontWeight','demi', ...
0446 'ToolTipString','Check to include in configuration load',...
0447 'Position',[x0+0.5*dx,y0-(k-0.33)*dely,1.8*dx,dy/2],'HorizontalAlignment','center','String',col1_families{k},...
0448 'callback','configgui(''CheckValid'')');
0449 cnfdata.handles.([col1_families{k} 'flag'])=uicontrol('Style','text','units', 'centimeters', ...
0450 'Position',[x0+0.22*dx,y0-(k-0.51)*dely,dx/5,dy/4],'HorizontalAlignment','center','String',' ','BackGroundColor','r','Userdata',0);
0451
0452 end
0453
0454 for k=1:length(col2_families),
0455 cnfdata.handles.([col2_families{k} 'chk'])=uicontrol('Style','checkbox','units', 'centimeters','FontWeight','demi', ...
0456 'ToolTipString','Check to include in configuration load',...
0457 'Position',[x0+3.0*dx,y0-(k-0.33)*dely,1.8*dx,dy/2],'HorizontalAlignment','center','String',col2_families{k},...
0458 'callback','configgui(''CheckValid'')');
0459 cnfdata.handles.([col2_families{k} 'flag'])=uicontrol('Style','text','units', 'centimeters', ...
0460 'Position',[x0+2.7*dx,y0-(k-0.51)*dely,dx/5,dy/4],'HorizontalAlignment','center','String',' ','BackGroundColor','r','Userdata',0);
0461 end
0462
0463 for k=1:length(col3_families),
0464 cnfdata.handles.([col3_families{k} 'chk'])=uicontrol('Style','checkbox','units', 'centimeters','FontWeight','demi', ...
0465 'ToolTipString','Check to include in configuration load',...
0466 'Position',[x0+5.5*dx,y0-(k-0.33)*dely,1.8*dx,dy/2],'HorizontalAlignment','center','String',col3_families{k},...
0467 'callback','configgui(''CheckValid'')');
0468 cnfdata.handles.([col3_families{k} 'flag'])=uicontrol('Style','text','units', 'centimeters', ...
0469 'Position',[x0+5.2*dx,y0-(k-0.51)*dely,dx/5,dy/4],'HorizontalAlignment','center','String',' ','BackGroundColor','r','Userdata',0);
0470 end
0471
0472 for k=1:length(col4_families),
0473 cnfdata.handles.([col4_families{k} 'chk'])=uicontrol('Style','checkbox','units', 'centimeters','FontWeight','demi', ...
0474 'ToolTipString','Check to include in configuration load',...
0475 'Position',[x0+8.0*dx,y0-(k-0.33)*dely,1.8*dx,dy/2],'HorizontalAlignment','center','String',col4_families{k},...
0476 'callback','configgui(''CheckValid'')');
0477 cnfdata.handles.([col4_families{k} 'flag'])=uicontrol('Style','text','units', 'centimeters', ...
0478 'Position',[x0+7.7*dx,y0-(k-0.51)*dely,dx/5,dy/4],'HorizontalAlignment','center','String',' ','BackGroundColor','r','Userdata',0);
0479 end
0480
0481 for k=1:length(col5_families),
0482 cnfdata.handles.([col5_families{k} 'chk'])=uicontrol('Style','checkbox','units', 'centimeters','FontWeight','demi', ...
0483 'ToolTipString','Check to include in configuration load',...
0484 'Position',[x0+10.5*dx,y0-(k-0.33)*dely,1.8*dx,dy/2],'HorizontalAlignment','center','String',col5_families{k},...
0485 'callback','configgui(''CheckValid'')');
0486 cnfdata.handles.([col5_families{k} 'flag'])=uicontrol('Style','text','units', 'centimeters', ...
0487 'Position',[x0+10.2*dx,y0-(k-0.51)*dely,dx/5,dy/4],'HorizontalAlignment','center','String',' ','BackGroundColor','r','Userdata',0);
0488 end
0489
0490
0491 x1 = 10.5;
0492 uicontrol('Style','pushbutton','units', 'centimeters','FontWeight','demi', ...
0493 'ToolTipString','Select all families to include in configuration load',...
0494 'Callback','configgui(''SelectAll'')',...
0495 'Position',[x0+x1*dx,y0-7*dely,2*dx,dy/2],'HorizontalAlignment','center','String','Select All');
0496
0497
0498 x1 = 10.5;
0499 uicontrol('Style','pushbutton','units', 'centimeters','FontWeight','demi', ...
0500 'ToolTipString','Select all families to include in configuration load',...
0501 'Callback','configgui(''SelectAllQuad'')',...
0502 'Position',[x0+x1*dx + 2.1*dx,y0-7*dely,2*dx,dy/2],'HorizontalAlignment','center','String','Select All Quad');
0503
0504
0505 x1 = 10.5;
0506 uicontrol('Style','pushbutton','units', 'centimeters','FontWeight','demi', ...
0507 'ToolTipString','Select all families to include in configuration load',...
0508 'Callback','configgui(''SelectAllSextu'')',...
0509 'Position',[x0+x1*dx + 2.1*dx,y0-8.0*dely,2*dx,dy/2],'HorizontalAlignment','center','String','Select All Sextu');
0510
0511
0512 uicontrol('Style','pushbutton','units', 'centimeters','FontWeight','demi', ...
0513 'ToolTipString','Select no families to include in configuration load',...
0514 'Callback','configgui(''SelectNone'')',...
0515 'Position',[x0+x1*dx,y0-8.0*dely,2*dx,dy/2],'HorizontalAlignment','center','String','Select None');
0516
0517
0518 uicontrol('Style','pushbutton','units', 'centimeters','FontWeight','demi', ...
0519 'ToolTipString','Print configuration data to screen',...
0520 'Callback','configgui(''ShowMainConfiguration'')',...
0521 'Position',[x0+x1*dx,y0-9.0*dely,3.5*dx,dy/2],'HorizontalAlignment','center','String','Display Main Configuration');
0522
0523
0524 uicontrol('Style','pushbutton','units', 'centimeters','FontWeight','demi', ...
0525 'ToolTipString','Print configuration data to screen',...
0526 'Callback','configgui(''ShowConfiguration'')',...
0527 'Position',[x0+x1*dx,y0-10*dely,3.5*dx,dy/2],'HorizontalAlignment','center','String','Display Full Configuration');
0528
0529
0530 ts = ['Program Start-Up: ' datestr(now,0)];
0531 cnfdata.handles.listbox=uicontrol('Style','list','Units','centimeters','Position',[x0+0.5*dx y0-15.8*dely 10*dx 2*dy],'String',{ts});
0532
0533
0534 cnfdata.handles.configname=uicontrol('Style','text','units', 'centimeters', ...
0535 'Position',[x0+0.5*dx y0-13*dely 8*dx dy/2],'HorizontalAlignment','left','String',' ');
0536
0537
0538 x1 = 0.5; x2 = x1 + 1.5;
0539 uicontrol('Style','text','units', 'centimeters','FontWeight','demi', ...
0540 'Position',[x0+x1*dx,y0-7*dely,3.5*dx,dy/2],'HorizontalAlignment','left',...
0541 'String','Get Configuration from: ');
0542
0543 cnfdata.handles.GetMachine=uicontrol('Style','PushButton','units', 'centimeters', ...
0544 'ToolTipString','Acquire configuration from Machine','BackGroundColor',[1 1 1],...
0545 'Position',[x0+x1*dx,y0-7.8*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Machine',...
0546 'Callback','configgui(''GetMachineConfig'')');
0547 cnfdata.handles.GetMachineTime=uicontrol('Style','text','units', 'centimeters', ...
0548 'Position',[x0+x2*dx,y0-7.8*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0549
0550
0551 cnfdata.handles.GetDesired=uicontrol('Style','PushButton','units', 'centimeters', ...
0552 'ToolTipString','Acquire configuration from Desired Setpoints (SPEAR 3)','BackGroundColor',[1 1 1],...
0553 'Position',[x0+x1*dx,y0-8.6*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Desired',...
0554 'Callback','configgui(''GetDesiredConfig'')');
0555 cnfdata.handles.GetDesiredTime=uicontrol('Style','text','units', 'centimeters', ...
0556 'Position',[x0+x2*dx,y0-8.6*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0557
0558
0559 cnfdata.handles.GetFile=uicontrol('Style','PushButton','units', 'centimeters', ...
0560 'ToolTipString','Read configuration from file','BackGroundColor',[1 1 1],...
0561 'Position',[x0+x1*dx,y0-9.4*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','File',...
0562 'Callback','configgui(''GetFileConfig'')');
0563 cnfdata.handles.GetFileTime=uicontrol('Style','text','units', 'centimeters', ...
0564 'Position',[x0+x2*dx,y0-9.4*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0565
0566 cnfdata.handles.GetGolden=uicontrol('Style','PushButton','units', 'centimeters', ...
0567 'ToolTipString','Read configuration from Golden','BackGroundColor',[1 1 1],...
0568 'Position',[x0+x1*dx,y0-10.2*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Golden',...
0569 'Callback','configgui(''GetGoldenConfig'')');
0570 cnfdata.handles.GetGoldenTime=uicontrol('Style','text','units', 'centimeters', ...
0571 'Position',[x0+x2*dx,y0-10.2*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0572
0573 cnfdata.handles.GetSimulator=uicontrol('Style','PushButton','units', 'centimeters', ...
0574 'ToolTipString','Acquire configuration from Simulator','BackGroundColor',[1 1 1],...
0575 'Position',[x0+x1*dx,y0-11*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Simulator',...
0576 'Callback','configgui(''GetSimulatorConfig'')');
0577 cnfdata.handles.GetSimulatorTime=uicontrol('Style','text','units', 'centimeters', ...
0578 'Position',[x0+x2*dx,y0-11*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0579
0580
0581 cnfdata.handles.GetWorkspace=uicontrol('Style','PushButton','units', 'centimeters', ...
0582 'ToolTipString','Acquire configuration from WorkSpace','BackGroundColor',[1 1 1],...
0583 'Position',[x0+x1*dx,y0-11.8*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Workspace',...
0584 'Callback','configgui(''GetWorkspaceConfig'')');
0585 cnfdata.handles.GetWorkspaceTime=uicontrol('Style','text','units', 'centimeters', ...
0586 'Position',[x0+x2*dx,y0-11.8*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0587
0588
0589 x1 = 5.5; x2= x1+1.5;
0590 uicontrol('Style','text','units', 'centimeters','FontWeight','demi', ...
0591 'Position',[x0+x1*dx,y0-7*dely,3*dx,dy/2],'HorizontalAlignment','left','String','Set Configuration to: ');
0592
0593 uicontrol('Style','PushButton','units', 'centimeters', ...
0594 'ToolTipString','Load configuration to Machine (only selected families)','BackGroundColor',[1 1 1],...
0595 'Position',[x0+x1*dx,y0-7.8*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Machine',...
0596 'Callback','configgui(''SetMachineConfig'')');
0597 cnfdata.handles.LoadMachineTime=uicontrol('Style','text','units', 'centimeters', ...
0598 'Position',[x0+x2*dx,y0-7.8*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0599
0600
0601 uicontrol('Style','PushButton','units', 'centimeters', ...
0602 'ToolTipString','Load configuration to Desired Setpoints (SPEAR 3, only selected families)','BackGroundColor',[1 1 1],...
0603 'Position',[x0+x1*dx,y0-8.6*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Desired',...
0604 'Callback','configgui(''SetDesiredConfig'')');
0605 cnfdata.handles.LoadDesiredTime=uicontrol('Style','text','units', 'centimeters', ...
0606 'Position',[x0+x2*dx,y0-8.6*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0607
0608
0609 uicontrol('Style','PushButton','units', 'centimeters', ...
0610 'ToolTipString','Write configuration to file (all families)','BackGroundColor',[1 1 1],...
0611 'Position',[x0+x1*dx,y0-9.4*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','File',...
0612 'Callback','configgui(''SetFileConfig'')');
0613 cnfdata.handles.LoadFileTime=uicontrol('Style','text','units', 'centimeters', ...
0614 'Position',[x0+x2*dx,y0-9.4*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0615
0616 uicontrol('Style','PushButton','units', 'centimeters', ...
0617 'ToolTipString','Write configuration to Golden (all families)','BackGroundColor',[1 1 1],...
0618 'Position',[x0+x1*dx,y0-10.2*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Golden',...
0619 'Callback','configgui(''SetGoldenConfig'')');
0620 cnfdata.handles.LoadGoldenTime=uicontrol('Style','text','units', 'centimeters', ...
0621 'Position',[x0+x2*dx,y0-10.2*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0622
0623 uicontrol('Style','PushButton','units', 'centimeters', ...
0624 'ToolTipString','Load configuration to Simulator (only selected families)','BackGroundColor',[1 1 1],...
0625 'Position',[x0+x1*dx,y0-11*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Simulator',...
0626 'Callback','configgui(''SetSimulatorConfig'')');
0627 cnfdata.handles.LoadSimulatorTime=uicontrol('Style','text','units', 'centimeters', ...
0628 'Position',[x0+x2*dx,y0-11*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0629
0630
0631 uicontrol('Style','PushButton','units', 'centimeters', ...
0632 'ToolTipString','Load configuration to Workspace (only selected families)','BackGroundColor',[1 1 1],...
0633 'Position',[x0+x1*dx,y0-11.8*dely,1.2*dx,dy/2],'HorizontalAlignment','center','String','Workspace',...
0634 'Callback','configgui(''SetWorkspaceConfig'')');
0635 cnfdata.handles.LoadWorkspaceTime=uicontrol('Style','text','units', 'centimeters', ...
0636 'Position',[x0+x2*dx,y0-11.8*dely,3.0*dx,dy/2],'HorizontalAlignment','center','String','');
0637
0638 otherwise
0639 error('wrong Machine');
0640 set(h,'HandleVisibility','off');
0641 end
0642 setappdata(h,'configguidata',cnfdata);
0643
0644
0645 case 'CheckValid'
0646
0647 val=get(gcbo,'Value');
0648 if val==1
0649 family=get(gcbo,'String');
0650 if get(cnfdata.handles.([family 'flag']),'BackGroundColor')==[1 0 0];
0651 set(gcbo,'Value',0);
0652 end
0653 end
0654
0655
0656 case 'GetMachineConfig'
0657
0658
0659
0660 configgui('LBoxWait');
0661 cnfdata.SetpointData=[];
0662 cnfdata.MonitorData=[];
0663
0664
0665 [cnfdata.SetpointData,cnfdata.MonitorData]=getmachineconfig('online');
0666
0667 setappdata(h,'configguidata',cnfdata);
0668
0669 configgui('ShowActiveFamilies');
0670 configgui('ShowLastGet');
0671
0672 set(cnfdata.handles.GetMachineTime,'String',datestr(now,0));
0673 set(cnfdata.handles.configname,'String', 'Machine Configuration');
0674 configgui('LBoxWriteLast',' Get Configuration from Machine ');
0675
0676
0677 case 'GetDesiredConfig'
0678
0679
0680
0681 configgui('LBoxWait');
0682
0683 [cnfdata.SetpointData,cnfdata.MonitorData]=getmachineconfig('online');
0684
0685 ao=getao;
0686 for k=1:length(cnfdata.families)
0687 family=cnfdata.families{k};
0688 if isfield(ao.(family),'Desired');
0689 cnfdata.SetpointData.(family).Data=getpv(family,'Desired',[]);
0690 cnfdata.MonitorData.(family).Data=cnfdata.SetpointData.(family).Data;
0691 end
0692 end
0693
0694 setappdata(h,'configguidata',cnfdata);
0695
0696 configgui('ShowActiveFamilies');
0697 configgui('ShowLastGet');
0698
0699
0700 set(cnfdata.handles.configname,'String', 'Desired Setpoint Configuration');
0701 set(cnfdata.handles.GetDesiredTime,'String',datestr(now,0));
0702 configgui('LBoxWriteLast',' Load Desired Setpoints into Machine Configuration');
0703
0704
0705 case 'GetFileConfig'
0706
0707
0708 configgui('LBoxWait');
0709
0710 DirSpec = getfamilydata('Directory','ConfigData');
0711 FileName = [];
0712 [FileName, DirSpec] = uigetfile('*.mat','Select Configuration File',[DirSpec FileName]);
0713 FileSpec = [DirSpec FileName];
0714
0715 try
0716 cnf=load([DirSpec FileName]);
0717 catch
0718 return
0719 end
0720
0721 cnfdata.SetpointData=[];
0722 cnfdata.MonitorData=[];
0723
0724 cnfdata.SetpointData=cnf.ConfigSetpoint;
0725 cnfdata.MonitorData =cnf.ConfigMonitor;
0726
0727 set(cnfdata.handles.configname,'String', ['File Configuration: ' FileName]);
0728
0729 setappdata(h,'configguidata',cnfdata);
0730
0731 configgui('ShowActiveFamilies');
0732 configgui('ShowLastGet');
0733
0734
0735 set(cnfdata.handles.GetFileTime,'String',datestr(now,0));
0736 configgui('LBoxWriteLast',' Get Configuration from File ');
0737
0738
0739 case 'GetGoldenConfig'
0740
0741
0742 configgui('LBoxWait');
0743 cnfdata.SetpointData=[];
0744 cnfdata.MonitorData=[];
0745
0746 FileName = getfamilydata('OpsData', 'LatticeFile');
0747 DirectoryName = getfamilydata('Directory', 'OpsData');
0748 cnf=load([DirectoryName FileName]);
0749
0750 cnfdata.SetpointData=cnf.ConfigSetpoint;
0751 cnfdata.MonitorData =cnf.ConfigMonitor;
0752
0753 setappdata(h,'configguidata',cnfdata);
0754
0755 configgui('ShowActiveFamilies');
0756 configgui('ShowLastGet');
0757
0758
0759 set(cnfdata.handles.configname,'String', 'File Configuration: Golden');
0760 set(cnfdata.handles.GetGoldenTime,'String',datestr(now,0));
0761 configgui('LBoxWriteLast',' Get Golden Configuration ');
0762
0763
0764 case 'GetSimulatorConfig'
0765
0766
0767 configgui('LBoxWait');
0768 cnfdata.SetpointData=[];
0769 cnfdata.MonitorData=[];
0770 [cnfdata.SetpointData,cnfdata.MonitorData] = getmachineconfig('simulator');
0771
0772 setappdata(h,'configguidata',cnfdata);
0773
0774 configgui('ShowActiveFamilies');
0775 configgui('ShowLastGet');
0776
0777 set(cnfdata.handles.configname,'String', 'Simulator Configuration');
0778 set(cnfdata.handles.GetSimulatorTime,'String',datestr(now,0));
0779 configgui('LBoxWriteLast',' Get Configuration from Simulator ');
0780
0781
0782 case 'GetWorkspaceConfig'
0783
0784
0785 configgui('LBoxWait');
0786
0787
0788 evalin('base',['if exist(''SetpointData'');',...
0789 'h=findobj(0,''Tag'',''cnffig'');',...
0790 'cnfdata=getappdata(h,''configguidata'');',...
0791 'cnfdata.SetpointData=SetpointData;',...
0792 'setappdata(h,''configguidata'',cnfdata);',...
0793 'disp('' Setpoint configuration found in workspace'');',...
0794 'else;',...
0795 'disp('' No Setpoint configuration found in workspace'');',...
0796 'end;']);
0797
0798
0799 evalin('base',['if exist(''MonitorData'');',...
0800 'h=findobj(0,''Tag'',''cnffig'');',...
0801 'cnfdata=getappdata(h,''configguidata'');',...
0802 'cnfdata.MonitorData=MonitorData;',...
0803 'setappdata(h,''configguidata'',cnfdata);',...
0804 'disp('' Monitor configuration found in workspace'');',...
0805 'else;',...
0806 'disp('' No Monitor configuration found in workspace'');',...
0807 'end;']);
0808
0809
0810 configgui('ShowActiveFamilies');
0811 configgui('ShowLastGet');
0812
0813 set(cnfdata.handles.configname,'String', 'Workspace Configuration');
0814 set(cnfdata.handles.GetWorkspaceTime,'String',datestr(now,0));
0815 configgui('LBoxWriteLast',' Get Configuration from Workspace ');
0816
0817
0818
0819 case 'ShowLastGet'
0820
0821
0822
0823
0824 set(cnfdata.handles.GetMachine,'BackGroundColor',[1 1 1]);
0825 set(cnfdata.handles.GetDesired,'BackGroundColor',[1 1 1]);
0826 set(cnfdata.handles.GetFile,'BackGroundColor',[1 1 1]);
0827 set(cnfdata.handles.GetGolden,'BackGroundColor',[1 1 1]);
0828 set(cnfdata.handles.GetSimulator,'BackGroundColor',[1 1 1]);
0829 set(cnfdata.handles.GetWorkspace,'BackGroundColor',[1 1 1]);
0830
0831 set(gcbo,'BackGroundColor','g');
0832
0833
0834 case 'SetMachineConfig'
0835
0836
0837 configgui('LBoxWait');
0838 if strcmpi(cnfdata.field,'setpoint')
0839 cnf=cnfdata.SetpointData;
0840 elseif strcmpi(cnfdata.field,'monitor')
0841 cnf=cnfdata.MonitorData;
0842 end
0843
0844
0845 config=[];
0846 for k=1:length(cnfdata.families)
0847 family=cnfdata.families{k};
0848 if get(cnfdata.handles.([family 'chk']),'Value')==1
0849 config.(family)=cnf.(family);
0850 end
0851 end
0852
0853 if isempty(config)
0854 configgui('LBoxWriteLast',' No families loaded Online ');
0855 return
0856 end
0857
0858 if getappdata(gcf,'cycling')
0859 disp('cycling not implemented yet!!!')
0860 end
0861 setmachineconfig(config,'online');
0862
0863 set(cnfdata.handles.LoadMachineTime,'String',datestr(now,0));
0864 configgui('LBoxWriteLast',' Load Configuration to Machine ');
0865
0866
0867 case 'SetDesiredConfig'
0868
0869
0870 configgui('LBoxWait');
0871 for k=1:length(cnfdata.families)
0872 family=cnfdata.families{k};
0873 if get(cnfdata.handles.([family 'chk']),'Value')==1
0874 if (~strcmpi(family,'HCOR') && ~strcmpi(family,'VCOR') && ~strcmpi(family,'SkewQuad') & ~strcmpi(family,'BEND'))
0875 DeviceList=family2dev(family);
0876 Desired=cnfdata.SetpointData.(family).Data;
0877 setpv(family,'Desired',Desired,DeviceList);
0878 end
0879 end
0880 end
0881
0882 set(cnfdata.handles.LoadDesiredTime,'String',datestr(now,0));
0883 configgui('LBoxWriteLast',' Load Configuration to Desired Setpoints');
0884
0885
0886 case 'SetFileConfig'
0887
0888
0889 configgui('LBoxWait');
0890
0891 FileName = getfamilydata('Default','CNFArchiveFile');
0892 DirectoryName = getfamilydata('Directory','ConfigData');
0893 FileName = appendtimestamp(FileName, clock);
0894 [FileName, DirectoryName] = uiputfile('*.mat','Save Lattice to ...', [DirectoryName FileName]);
0895 if FileName == 0
0896 fprintf(' File not saved (getmachineconfig)\n');
0897 return;
0898 end
0899
0900
0901 DirStart = pwd;
0902 [DirectoryName, DirectoryErrorFlag] = gotodirectory(DirectoryName);
0903 ConfigSetpoint=cnfdata.SetpointData;
0904 ConfigMonitor=cnfdata.MonitorData;
0905 try
0906 save(FileName, 'ConfigSetpoint', 'ConfigMonitor');
0907 catch
0908 cd(DirStart);
0909 return
0910 end
0911 cd(DirStart);
0912
0913 set(cnfdata.handles.LoadFileTime,'String',datestr(now,0));
0914 configgui('LBoxWriteLast',' Write Configuration to File ');
0915
0916
0917 case 'SetGoldenConfig'
0918
0919
0920 configgui('LBoxWait');
0921 FileName = getfamilydata('OpsData','LatticeFile');
0922 DirectoryName = getfamilydata('Directory','OpsData');
0923 AnswerString = questdlg(strvcat('Are you sure you want to overwrite the default lattice file?',sprintf('File: %s',[DirectoryName FileName])),'Default Lattice','Yes','No','No');
0924 if strcmp(AnswerString,'Yes')
0925 [DirectoryName, DirectoryErrorFlag] = gotodirectory(DirectoryName);
0926 FileName = getfamilydata('OpsData', 'LatticeFile');
0927 DirectoryName = getfamilydata('Directory', 'OpsData');
0928 ConfigSetpoint=cnfdata.SetpointData;
0929 ConfigMonitor=cnfdata.MonitorData;
0930 save(FileName, 'ConfigMonitor', 'ConfigSetpoint');
0931 else
0932 fprintf(' File not saved (getmachineconfig)\n');
0933 return;
0934 end
0935
0936 set(cnfdata.handles.LoadGoldenTime,'String',datestr(now,0));
0937 configgui('LBoxWriteLast',' Write Configuration to Golden ');
0938
0939
0940 case 'SetSimulatorConfig'
0941
0942
0943 configgui('LBoxWait');
0944
0945 families=[];
0946 for k=1:length(cnfdata.families)
0947 family=cnfdata.families{k};
0948 if get(cnfdata.handles.([family 'chk']),'Value')==1
0949 families.(['f' num2str(k)])=family;
0950 end
0951 end
0952
0953 if isempty(families)
0954 configgui('LBoxWriteLast',' No families loaded to Simulator ');
0955 return
0956 else
0957 families=struct2cell(families);
0958 end
0959
0960 if strcmpi(cnfdata.field,'setpoint')
0961 config=cnfdata.SetpointData;
0962 elseif strcmpi(cnfdata.field,'monitor')
0963 config=cnfdata.MonitorData;
0964 end
0965
0966 setmachineconfig(families,config,'simulator');
0967
0968 set(cnfdata.handles.LoadSimulatorTime,'String',datestr(now,0));
0969 configgui('LBoxWriteLast',' Load Configuration to Simulator ');
0970
0971
0972 case 'SetWorkspaceConfig'
0973
0974
0975 configgui('LBoxWait');
0976
0977 families=[];
0978 for k=1:length(cnfdata.families)
0979 family=cnfdata.families{k};
0980 if get(cnfdata.handles.([family 'chk']),'Value')==1
0981 families.(['f' num2str(k)])=family;
0982 end
0983 end
0984
0985 if isempty(families)
0986 configgui('LBoxWriteLast',' No families loaded to Workspace ');
0987 return
0988 end
0989
0990 if isfield(cnfdata,'SetpointData')
0991 evalin('base',['h=findobj(0,''Tag'',''cnffig'');',...
0992 'cnfdata=getappdata(h,''configguidata'');',...
0993 'SetpointData=cnfdata.SetpointData;',...
0994 'clear h;', 'clear cnfdata;']);
0995 disp(' Setpoint configuration data loaded to workspace as SetpointData');
0996 else
0997 disp(' No Setpoint data available');
0998 end
0999 if isfield(cnfdata,'MonitorData')
1000 evalin('base',['h=findobj(0,''Tag'',''cnffig'');',...
1001 'cnfdata=getappdata(h,''configguidata'');',...
1002 'MonitorData=cnfdata.MonitorData;',...
1003 'clear h;', 'clear cnfdata;']);
1004 disp(' Monitor configuration data loaded to workspace as MonitorData');
1005 else
1006 disp(' No Monitor data available');
1007 end
1008
1009
1010 set(cnfdata.handles.LoadWorkspaceTime,'String',datestr(now,0));
1011 configgui('LBoxWriteLast',' Load Configuration to Workspace ');
1012
1013
1014 case 'SelectAll'
1015
1016
1017 for k=1:length(cnfdata.families)
1018 if get(cnfdata.handles.([cnfdata.families{k} 'flag']),'Userdata') == 1;
1019 set(cnfdata.handles.([cnfdata.families{k} 'chk']),'Value',1);
1020 end
1021 end
1022
1023
1024 case 'SelectAllQuad'
1025
1026
1027 for k = 1:length(cnfdata.families)
1028 if ~isempty(regexp(cnfdata.families{k},'Q[0-9]'))
1029 if get(cnfdata.handles.([cnfdata.families{k} 'flag']),'Userdata') == 1;
1030 set(cnfdata.handles.([cnfdata.families{k} 'chk']),'Value',1);
1031 end
1032 end
1033 end
1034
1035
1036 case 'SelectAllSextu'
1037
1038
1039 for k=1:length(cnfdata.families)
1040 if ~isempty(regexp(cnfdata.families{k},'S[0-9]'))
1041 if get(cnfdata.handles.([cnfdata.families{k} 'flag']),'Userdata') == 1;
1042 set(cnfdata.handles.([cnfdata.families{k} 'chk']),'Value',1);
1043 end
1044 end
1045 end
1046
1047
1048 case 'SelectNone'
1049
1050
1051 for k=1:length(cnfdata.families)
1052 set(cnfdata.handles.([cnfdata.families{k} 'chk']),'Value',0);
1053 end
1054
1055
1056 case 'ShowActiveFamilies'
1057
1058
1059
1060 for k=1:length(cnfdata.families)
1061 set(cnfdata.handles.([cnfdata.families{k} 'flag']),'BackGroundColor','r','Userdata',0);
1062 end
1063
1064 if strcmpi(cnfdata.field,'setpoint');
1065 if isempty(cnfdata.SetpointData) return; end
1066 familynames=fieldnames(cnfdata.SetpointData);
1067 elseif strcmpi(cnfdata.field,'monitor');
1068 if isempty(cnfdata.MonitorData) return; end
1069 familynames=fieldnames(cnfdata.MonitorData);
1070 end
1071
1072
1073 for k=1:length(cnfdata.families)
1074 for l=1:length(familynames)
1075 if strcmpi(cnfdata.families{k},familynames{l})
1076
1077 set(cnfdata.handles.([familynames{l} 'flag']),'BackGroundColor','g','Userdata',1);
1078 end
1079 end
1080 end
1081
1082
1083 case 'LBoxWriteLast'
1084
1085
1086 comment=varargin{1};
1087 ts = datestr(now,0);
1088 addstr={[ts ': ' comment]};
1089 str=get(cnfdata.handles.listbox,'String');
1090
1091 [ione,itwo]=size(str);
1092 if ione>0
1093 str=[str(1:end-1); addstr];
1094 else
1095 str=addstr;
1096 end
1097 nentry=50;
1098 if ione>=nentry
1099 str=str(ione-nentry+1:ione,1);
1100 [ione,itwo]=size(str);
1101 end
1102 set(cnfdata.handles.listbox,'String',str,'listboxtop',ione);
1103
1104
1105
1106 case 'LBoxWait'
1107
1108
1109
1110 addstr={'... Working ...' };
1111 str=get(cnfdata.handles.listbox,'String');
1112 str=[str; addstr];
1113 [ione,itwo]=size(str);
1114 nentry=50;
1115 if ione>=nentry
1116 str=str(ione-nentry+1:ione,1);
1117 [ione,itwo]=size(str);
1118 end
1119 set(cnfdata.handles.listbox,'String',str,'listboxtop',ione);
1120 sleep(0.01);
1121
1122
1123 case 'ShowConfiguration'
1124
1125
1126
1127 families=cnfdata.families;
1128 filename = tempname;
1129 fid = fopen(filename,'w');
1130
1131 for k=1:length(families)
1132 Family=families{k};
1133 if ~isfield(cnfdata.SetpointData,Family)
1134 disp([' Warning: family not available... ', Family]);
1135 else
1136 DeviceList =family2dev(Family);
1137 Field ='Setpoint';
1138 SetpointPV =getfamilydata(Family,Field,'TangoNames');
1139 SetpointData =cnfdata.SetpointData.(Family).(Field).Data;
1140 PhysicsSetpoint=hw2physics(Family,Field,SetpointData);
1141 Field = 'Monitor';
1142 MonitorPV =getfamilydata(Family,Field,'TangoNames');
1143 MonitorData =cnfdata.MonitorData.(Family).(Field).Data;
1144 PhysicsMonitor =hw2physics(Family,'Monitor', MonitorData);
1145
1146
1147 fprintf(fid,'%s\n',[' Family DeviceList HWSetpoint PhysicsSetpoint HWReadback PhysicsReadback )']);
1148
1149 for jj=1:size(DeviceList,1)
1150 fprintf(fid,'%8s [%2d,%d] %14.5f %14.5f %14.5f %14.5f \n',...
1151 Family,DeviceList(jj,1),DeviceList(jj,2),SetpointData(jj),PhysicsSetpoint(jj),...
1152 MonitorData(jj),PhysicsMonitor(jj));
1153 end
1154 end
1155 end
1156 fclose(fid);
1157 system(['nedit ', filename, ' &']);
1158
1159
1160 case 'ShowMainConfiguration'
1161
1162
1163
1164 families=cnfdata.families;
1165 fprintf('%s\n',[' Family HWSetpoint PhysicsSetpoint']);
1166
1167 for k=1:length(families)
1168 Family=families{k};
1169 if ~isfield(cnfdata.SetpointData,Family)
1170 disp([' Warning: family not available... ', Family]);
1171 else
1172 DeviceList =family2dev(Family);
1173 Field = 'Setpoint';
1174 SetpointPV =getfamilydata(Family,Field,'TangoNames');
1175 SetpointData =cnfdata.SetpointData.(Family).(Field).Data;
1176 PhysicsSetpoint=hw2physics(Family,Field,SetpointData);
1177 Field = 'Monitor';
1178 MonitorPV =getfamilydata(Family,Field,'TangoNames');
1179 MonitorData =cnfdata.MonitorData.(Family).(Field).Data;
1180 PhysicsMonitor =hw2physics(Family,Field, MonitorData);
1181
1182 if ~strcmpi(Family,'HCOR') && ~strcmpi(Family,'VCOR') && ~strcmpi(Family,'SkewQuad')
1183 fprintf('%8s %14.5f %14.5f\n',Family,SetpointData(1),PhysicsSetpoint(1));
1184 end
1185 disp(' ');
1186 end
1187 end
1188 otherwise
1189 disp(['Warning: no CASE found in configgui: ' action]);
1190 disp(action);
1191 end
1192
1193