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

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

Initial import--MML version from SOLEIL@2013

File size: 2.3 KB
Line 
1function [AM, tout, DataTime, ErrorFlag] = gety(varargin)
2%GETY - Returns the vertical orbit
3%  [AM, tout, DataTime]  = gety(DeviceList, t, FreshDataFlag, TimeOutPeriod)
4%         or
5%  [AM, tout, DataTime]  = gety(DataStructure, t, FreshDataFlag, TimeOutPeriod)
6%
7%  INPUTS
8%  1. DeviceList or DataStructure  (see help getpv)
9%  2. t  (see help getpv)
10%  3. FreshDataFlag  (see help getpv)
11%  4. TimeOutPeriod  (see help getpv)
12%  5. 'Struct' will return a data structure
13%     'Numeric' will return a vector output {default}
14%  6. 'Archive' will save a BPM data structure to \<DataRoot>\BPM\
15%      with filename BPMy<Date><Time>.mat
16%
17%  OUTPUTS
18%  1. AM = orbit vector or data structure
19%  2. tout  (see help getpv)
20%  3. DataTime
21%
22%  NOTE
23%  1. 'Struct', 'Numeric', and 'Archive' are not case sensitive
24%  2. All inputs are optional
25%
26%  EXAMPLE
27%  1. <a href="matlab: plot(getspos(getvbpmfamily),gety); xlabel('BPM Position [meters]'); ylabel('Vertical Orbit');">plot(gety);</a>
28%
29%  See also getx, getbpm, getam, getpv
30%
31%  Written by Greg Portmann
32
33
34Family = getvbpmfamily;
35
36
37% Get input flags
38StructOutputFlag = 0;
39ArchiveFlag = 0;
40for i = length(varargin):-1:1
41    if isstr(varargin{i})
42        if strcmpi(varargin{i},'struct')
43            StructOutputFlag = 1;
44            %varargin(i) = [];
45        elseif strcmpi(varargin{i},'numeric')
46            StructOutputFlag = 0;
47            %varargin(i) = [];
48        elseif strcmpi(varargin{i},'archive')
49            ArchiveFlag = 1;
50            varargin(i) = [];
51        end
52    end
53end
54
55
56% Get data
57if isempty(varargin)
58    [AM, tout, DataTime, ErrorFlag] = getpv(Family, 'Monitor');
59elseif isstruct(varargin{1})
60    [AM, tout, DataTime, ErrorFlag] = getpv(varargin{:});
61else
62    [AM, tout, DataTime, ErrorFlag] = getpv(Family, 'Monitor', varargin{:});
63end
64
65if StructOutputFlag
66    % Structure output
67    AM.CreatedBy = 'gety';
68    AM.DataDescriptor = 'Vertical Orbit';
69end
70
71
72% Archive data structure
73if ArchiveFlag
74    DirStart = pwd;
75    FileName = appendtimestamp([getfamilydata('Default', 'BPMArchiveFile') 'y'], clock);
76    DirectoryName = getfamilydata('Directory','BPMData');
77    if isempty(DirectoryName)
78        DirectoryName = [getfamilydata('Directory','DataRoot') 'BPM\'];
79    end
80    [DirectoryName, ErrorFlag] = gotodirectory(DirectoryName);
81    BPMyData = gety('struct');
82    save(FileName, 'BPMyData');
83    cd(DirStart);
84end
Note: See TracBrowser for help on using the repository browser.