1 | function [MachineName, SubMachineName, LinkFlag, MMLROOT] = setpathasp(varargin) |
---|
2 | %SETPATHASP - Initializes the Matlab Middle Layer (MML) for ASP |
---|
3 | % [MachineName, SubMachineName, OnlineLinkMethod, MMLROOT] = setpathasp(SubMachineName, OnlineLinkMethod) |
---|
4 | % |
---|
5 | % INPUTS |
---|
6 | % 1. SubMachineName - 'StorageRing', 'Booster', 'BTS', 'LTB', 'Injector' |
---|
7 | % 2. OnlineLinkMethod - 'MCA', 'LabCA', 'SCA' |
---|
8 | % |
---|
9 | % Written by Greg Portmann |
---|
10 | |
---|
11 | |
---|
12 | Machine = 'ASP'; |
---|
13 | |
---|
14 | |
---|
15 | %%%%%%%%%%%%%%%%% |
---|
16 | % Input Parsing % |
---|
17 | %%%%%%%%%%%%%%%%% |
---|
18 | |
---|
19 | % First strip-out the link method |
---|
20 | LinkFlag = ''; |
---|
21 | for i = length(varargin):-1:1 |
---|
22 | if ~ischar(varargin{i}) |
---|
23 | % Ignor input |
---|
24 | elseif strcmpi(varargin{i},'LabCA') |
---|
25 | LinkFlag = 'LabCA'; |
---|
26 | varargin(i) = []; |
---|
27 | elseif strcmpi(varargin{i},'MCA') |
---|
28 | LinkFlag = 'MCA'; |
---|
29 | varargin(i) = []; |
---|
30 | elseif strcmpi(varargin{i},'SCA') |
---|
31 | LinkFlag = 'SCA'; |
---|
32 | varargin(i) = []; |
---|
33 | elseif strcmpi(varargin{i},'SLC') |
---|
34 | LinkFlag = 'SLC'; |
---|
35 | varargin(i) = []; |
---|
36 | elseif strcmpi(varargin{i},'Tango') |
---|
37 | LinkFlag = 'Tango'; |
---|
38 | varargin(i) = []; |
---|
39 | elseif strcmpi(varargin{i},'UCODE') |
---|
40 | LinkFlag = 'UCODE'; |
---|
41 | varargin(i) = []; |
---|
42 | end |
---|
43 | end |
---|
44 | |
---|
45 | if isempty(LinkFlag) |
---|
46 | if strncmp(computer,'PC',2) |
---|
47 | LinkFlag = 'MCA'; |
---|
48 | elseif isunix |
---|
49 | LinkFlag = 'LABCA'; |
---|
50 | else |
---|
51 | LinkFlag = 'LABCA'; |
---|
52 | end |
---|
53 | end |
---|
54 | |
---|
55 | |
---|
56 | % Get the submachine name |
---|
57 | if length(varargin) >= 1 |
---|
58 | SubMachineName = varargin{1}; |
---|
59 | else |
---|
60 | SubMachineName = ''; |
---|
61 | end |
---|
62 | |
---|
63 | if isempty(SubMachineName) |
---|
64 | SubMachineNameCell = {'Storage Ring', 'Booster', 'LTB', 'BTS', 'Injector'}; |
---|
65 | [i, ok] = listdlg('PromptString', 'Select an accelerator:',... |
---|
66 | 'SelectionMode', 'Single',... |
---|
67 | 'Name', 'ASP', ... |
---|
68 | 'ListString', SubMachineNameCell); |
---|
69 | if ok |
---|
70 | SubMachineName = SubMachineNameCell{i}; |
---|
71 | else |
---|
72 | fprintf('Initialization cancelled (no path change).\n'); |
---|
73 | return; |
---|
74 | end |
---|
75 | end |
---|
76 | |
---|
77 | if any(strcmpi(SubMachineName, {'Storage Ring','Ring'})) |
---|
78 | SubMachineName = 'StorageRing'; |
---|
79 | end |
---|
80 | |
---|
81 | |
---|
82 | if strcmpi(SubMachineName,'StorageRing') |
---|
83 | [MachineName, SubMachineName, LinkFlag, MMLROOT] = setpathmml(Machine, 'StorageRing', 'StorageRing', LinkFlag); |
---|
84 | elseif strcmpi(SubMachineName,'Booster') |
---|
85 | [MachineName, SubMachineName, LinkFlag, MMLROOT] = setpathmml(Machine, 'Booster', 'Booster', LinkFlag); |
---|
86 | elseif strcmpi(SubMachineName,'LTB') |
---|
87 | [MachineName, SubMachineName, LinkFlag, MMLROOT] = setpathmml(Machine, 'LTB', 'Transport', LinkFlag); |
---|
88 | elseif strcmpi(SubMachineName,'BTS') |
---|
89 | [MachineName, SubMachineName, LinkFlag, MMLROOT] = setpathmml(Machine, 'BTS', 'Transport', LinkFlag); |
---|
90 | elseif strcmpi(SubMachineName,'Injector') |
---|
91 | [MachineName, SubMachineName, LinkFlag, MMLROOT] = setpathmml(Machine, 'Injector', 'Booster', LinkFlag); |
---|
92 | end |
---|