source: MML/trunk/mml/getchro.m @ 4

Last change on this file since 4 was 4, checked in by zhangj, 11 years ago

Initial import--MML version from SOLEIL@2013

File size: 2.7 KB
Line 
1function [Data, FileName] = getchro(varargin)
2%GETCHRO - Return the chromaticity function (from file)
3%  [Data, FileName] = getchro(Plane, FileName)
4%
5%
6%  INPUTS
7%  1. Plane - 'x' or 'Horizontal'
8%             'y' or 'z' or 'Vertical'
9%  2. FileName - {Default start directory: <OpsData><ChroFile>}
10%
11%  Extra Flags:
12%  1. 'Physics'  - For actual chromaticity units {Default}
13%     'Hardware' - For hardware units, usually mm/MHz
14%  2. 'Struct'  - Data structures instead of vectors
15%     'Numeric' - Vector outputs {Default}
16%  3. Optional override of the mode
17%     'Model' or 'Simulator' - Get the model chromaticity directly from AT
18%                              (same as measchro([], Family, DeviceList, 'Model'))
19%
20%  OUTPUTS
21%  1. Data - Chromaticity data
22
23%  See also getrespmat setchro
24%
25%  Written by Greg Portmann
26
27ModelFlag = 0;
28FileName = '';
29
30InputFlags = {};
31for i = length(varargin):-1:1
32    if isstruct(varargin{i})
33        % Ignore structures
34    elseif iscell(varargin{i})
35        % Ignore cells
36    elseif strcmpi(varargin{i},'Struct')
37        InputFlags = [InputFlags varargin(i)];
38        varargin(i) = [];
39    elseif strcmpi(varargin{i},'Numeric')
40        InputFlags = [InputFlags varargin(i)];
41        varargin(i) = [];
42    elseif strcmpi(varargin{i},'Simulator') || strcmpi(varargin{i},'Model')
43        ModelFlag = 1;
44        varargin(i) = [];
45    elseif strcmpi(varargin{i},'Physics')
46        InputFlags = [InputFlags varargin(i)];
47        varargin(i) = [];
48    elseif strcmpi(varargin{i},'Hardware')
49        InputFlags = [InputFlags varargin(i)];
50        varargin(i) = [];
51    elseif strcmpi(varargin{i},'NoDisplay')
52        varargin(i) = [];
53    elseif strcmpi(varargin{i},'Display')
54        varargin(i) = [];
55    elseif ischar(varargin{i}) && ~isfamily(varargin{i})
56        FileName = varargin{i};
57        varargin(i) = [];
58    end
59end
60
61
62% Default units
63if ~any(strcmpi(InputFlags,'Physics')) && ~any(strcmpi(InputFlags,'Hardware'))
64    InputFlags{length(InputFlags)+1} = 'Physics';
65end
66
67
68% Look in the chromaticity file
69if ModelFlag == 1
70    Data = measchro('Model', InputFlags{:});
71    FileName = '';
72else
73    if FileName == -1
74        FileName = getfamilydata('OpsData','ChroFile');
75        DirectoryName = getfamilydata('Directory', 'OpsData');
76        FileName = [DirectoryName FileName];
77    elseif isempty(FileName)
78        [FileName, DirectoryName] = uigetfile('*.mat', 'Select a Chromaticity File?', getfamilydata('Directory','ChroData'));
79        if ~ischar(FileName)
80            return
81        else
82            FileName = [DirectoryName FileName];
83        end
84    end
85    [Data, FileName] = getrespmat('TUNE', [1 1;1 2], 'RF', [], FileName, InputFlags{:});
86    %[Data, FileName] = getdata('Chromaticity',FileName, InputFlags{:});
87end
88
Note: See TracBrowser for help on using the repository browser.