1 | function [MachineName, SubMachineName, LinkFlag, MMLROOT] = setpathals(varargin) |
---|
2 | %SETPATHALS - Initializes the Matlab Middle Layer (MML) for ALS |
---|
3 | % [MachineName, SubMachineName, OnlineLinkMethod, MMLROOT] = setpathals(SubMachineName, OnlineLinkMethod) |
---|
4 | % |
---|
5 | % INPUTS |
---|
6 | % 1. SubMachineName - 'StorageRing', 'Booster', 'BTS', 'LTB' |
---|
7 | % 2. OnlineLinkMethod - 'MCA', 'LabCA', 'SCA' |
---|
8 | % |
---|
9 | % Written by Greg Portmann |
---|
10 | |
---|
11 | |
---|
12 | Machine = 'ALS'; |
---|
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 | if findstr(computer, 'GLNX') |
---|
50 | LinkFlag = 'LABCA'; |
---|
51 | else |
---|
52 | LinkFlag = 'SCA'; |
---|
53 | %LinkFlag = 'LABCA'; |
---|
54 | end |
---|
55 | else |
---|
56 | LinkFlag = 'LABCA'; |
---|
57 | end |
---|
58 | end |
---|
59 | |
---|
60 | |
---|
61 | % Get the submachine name |
---|
62 | if length(varargin) >= 1 |
---|
63 | SubMachineName = varargin{1}; |
---|
64 | else |
---|
65 | SubMachineName = 'StorageRing'; |
---|
66 | end |
---|
67 | |
---|
68 | if isempty(SubMachineName) |
---|
69 | SubMachineNameCell = {'Storage Ring', 'Booster', 'LTB', 'BTS'}; |
---|
70 | [i, ok] = listdlg('PromptString', 'Select an accelerator:',... |
---|
71 | 'SelectionMode', 'Single',... |
---|
72 | 'Name', 'ALS', ... |
---|
73 | 'ListString', SubMachineNameCell); |
---|
74 | if ok |
---|
75 | SubMachineName = SubMachineNameCell{i}; |
---|
76 | else |
---|
77 | fprintf('Initialization cancelled (no path change).\n'); |
---|
78 | return; |
---|
79 | end |
---|
80 | end |
---|
81 | |
---|
82 | if any(strcmpi(SubMachineName, {'Storage Ring','Ring'})) |
---|
83 | SubMachineName = 'StorageRing'; |
---|
84 | end |
---|
85 | |
---|
86 | |
---|
87 | if strcmpi(SubMachineName,'StorageRing') |
---|
88 | [MachineName, SubMachineName, LinkFlag, MMLROOT] = setpathmml(Machine, 'StorageRing', 'StorageRing', LinkFlag); |
---|
89 | elseif strcmpi(SubMachineName,'Booster') |
---|
90 | [MachineName, SubMachineName, LinkFlag, MMLROOT] = setpathmml(Machine, 'Booster', 'Booster', LinkFlag); |
---|
91 | elseif strcmpi(SubMachineName,'LTB') |
---|
92 | [MachineName, SubMachineName, LinkFlag, MMLROOT] = setpathmml(Machine, 'LTB', 'Transport', LinkFlag); |
---|
93 | elseif strcmpi(SubMachineName,'BTS') |
---|
94 | [MachineName, SubMachineName, LinkFlag, MMLROOT] = setpathmml(Machine, 'BTS', 'Transport', LinkFlag); |
---|
95 | end |
---|
96 | |
---|