source: MML/trunk/mml/doc_html/mml/getroll.html @ 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: 15.4 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2                "http://www.w3.org/TR/REC-html40/loose.dtd">
3<html>
4<head>
5  <title>Description of getroll</title>
6  <meta name="keywords" content="getroll">
7  <meta name="description" content="GETROLL - Returns the roll values for a family (radians)">
8  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
9  <meta name="generator" content="m2html &copy; 2003 Guillaume Flandin">
10  <meta name="robots" content="index, follow">
11  <link type="text/css" rel="stylesheet" href="../m2html.css">
12</head>
13<body>
14<a name="_top"></a>
15<div><a href="../index.html">Home</a> &gt;  <a href="index.html">mml</a> &gt; getroll.m</div>
16
17<!--<table width="100%"><tr><td align="left"><a href="../index.html"><img alt="<" border="0" src="../left.png">&nbsp;Master index</a></td>
18<td align="right"><a href="index.html">Index for mml&nbsp;<img alt=">" border="0" src="../right.png"></a></td></tr></table>-->
19
20<h1>getroll
21</h1>
22
23<h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
24<div class="box"><strong>GETROLL - Returns the roll values for a family (radians)</strong></div>
25
26<h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
27<div class="box"><strong>function Data = getroll(varargin) </strong></div>
28
29<h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
30<div class="fragment"><pre class="comment">GETROLL - Returns the roll values for a family (radians)
31  Roll = getroll(Family, Field, DeviceList)
32  Roll = getroll(Family, DeviceList)
33  Roll = getroll(Family)
34
35  INPUTS
36  1. Family - Family Name
37              Data Structure
38              Accelerator Object
39  2. Field - Accelerator Object field name ('Monitor', 'Setpoint', etc) {Default: 'Monitor' for BPM, 'Setpoint' for magnet}
40  3. DeviceList ([Sector Device #] or [element #]) {Default: whole family}
41  4. 'Physics' or 'Hardware' inputs are ignored
42  5. 'Numeric' - Numeric output {Default}
43     'Struct'  - Data structure output
44
45  OUTPUTS
46  1. Roll - Roll value for the family [radians] {Default: 0}
47 
48  NOTES
49  1. If Family is a cell array, then DeviceList can also be a cell arrays
50
51  See also: <a href="getgain.html" class="code" title="function Data = getgain(varargin)">getgain</a>, <a href="getcrunch.html" class="code" title="function Data = getcrunch(varargin)">getcrunch</a>, <a href="getfamilydata.html" class="code" title="function [Data, ErrorFlag] = getfamilydata(Family, Field1, Field2, DeviceList)">getfamilydata</a>, <a href="getgolden.html" class="code" title="function Data = getgolden(varargin)">getgolden</a>, <a href="raw2real.html" class="code" title="function DataOut = raw2real(varargin)">raw2real</a>, <a href="real2raw.html" class="code" title="function DataOut = real2raw(varargin)">real2raw</a></pre></div>
52
53<!-- crossreference -->
54<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
55This function calls:
56<ul style="list-style-image:url(../matlabicon.gif)">
57<li><a href="family2datastruct.html" class="code" title="function [DataStruct, ErrorFlag] = family2datastruct(varargin)">family2datastruct</a>  FAMILY2DATASTRUCTURE - Returns a datastructure corresponding to a Family</li><li><a href="getfamilydata.html" class="code" title="function [Data, ErrorFlag] = getfamilydata(Family, Field1, Field2, DeviceList)">getfamilydata</a>     GETFAMILYDATA - Gets data associated with the accelerator control</li><li><a href="getphysdata.html" class="code" title="function [Data, iNotFound] = getphysdata(Family, Field, DeviceList)">getphysdata</a>   GETPHYSDATA - Gets physics data</li><li><a href="getroll.html" class="code" title="function Data = getroll(varargin)">getroll</a>       GETROLL - Returns the roll values for a family (radians)</li><li><a href="getunits.html" class="code" title="function [Units, UnitsString] = getunits(Family, Field)">getunits</a>      GETUNITS - Return the present family units and units string</li><li><a href="inputparsingffd.html" class="code" title="function [Family, Field, DeviceList, UnitsFlag, ModelFlag] = inputparsingffd(varargin)">inputparsingffd</a>      INPUTPARSINGFFD - Parses the typical input line of Family, Field, DeviceList</li><li><a href="ismemberof.html" class="code" title="function  [IsTest, Index] = ismemberof(FamilyName, Field, MemberString)">ismemberof</a>      ISMEMBEROF - Returns turn if the membership information of a family (cell of strings)</li></ul>
58This function is called by:
59<ul style="list-style-image:url(../matlabicon.gif)">
60<li><a href="getroll.html" class="code" title="function Data = getroll(varargin)">getroll</a>   GETROLL - Returns the roll values for a family (radians)</li><li><a href="quadplot.html" class="code" title="function [QMS, WarningString] = quadplot(Input1, FigureHandle, sigmaBPM)">quadplot</a>     QUADPLOT - Plots quadrupole centering data</li><li><a href="quadplotphysics.html" class="code" title="function [QMS, WarningString] = quadplotphysics(Input1, FigureHandle, sigmaBPM)">quadplotphysics</a>      QUADPLOTPHYSICS - Plots quadrupole centering data in physics units</li></ul>
61<!-- crossreference -->
62
63
64<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
65<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function Data = getroll(varargin)</a>
660002 <span class="comment">%GETROLL - Returns the roll values for a family (radians)</span>
670003 <span class="comment">%  Roll = getroll(Family, Field, DeviceList)</span>
680004 <span class="comment">%  Roll = getroll(Family, DeviceList)</span>
690005 <span class="comment">%  Roll = getroll(Family)</span>
700006 <span class="comment">%</span>
710007 <span class="comment">%  INPUTS</span>
720008 <span class="comment">%  1. Family - Family Name</span>
730009 <span class="comment">%              Data Structure</span>
740010 <span class="comment">%              Accelerator Object</span>
750011 <span class="comment">%  2. Field - Accelerator Object field name ('Monitor', 'Setpoint', etc) {Default: 'Monitor' for BPM, 'Setpoint' for magnet}</span>
760012 <span class="comment">%  3. DeviceList ([Sector Device #] or [element #]) {Default: whole family}</span>
770013 <span class="comment">%  4. 'Physics' or 'Hardware' inputs are ignored</span>
780014 <span class="comment">%  5. 'Numeric' - Numeric output {Default}</span>
790015 <span class="comment">%     'Struct'  - Data structure output</span>
800016 <span class="comment">%</span>
810017 <span class="comment">%  OUTPUTS</span>
820018 <span class="comment">%  1. Roll - Roll value for the family [radians] {Default: 0}</span>
830019 <span class="comment">%</span>
840020 <span class="comment">%  NOTES</span>
850021 <span class="comment">%  1. If Family is a cell array, then DeviceList can also be a cell arrays</span>
860022 <span class="comment">%</span>
870023 <span class="comment">%  See also: getgain, getcrunch, getfamilydata, getgolden, raw2real, real2raw</span>
880024
890025 <span class="comment">%</span>
900026 <span class="comment">%  Written by Gregory Portmann</span>
910027
920028
930029 <span class="comment">%%%%%%%%%%%%%%%%%</span>
940030 <span class="comment">% Input Parsing %</span>
950031 <span class="comment">%%%%%%%%%%%%%%%%%</span>
960032 UnitsFlagCell = {};
970033 StructOutputFlag = 0;
980034 <span class="keyword">for</span> i = length(varargin):-1:1
990035     <span class="keyword">if</span> isstruct(varargin{i})
1000036         <span class="comment">% Ignor structures</span>
1010037     <span class="keyword">elseif</span> iscell(varargin{i})
1020038         <span class="comment">% Ignor cells</span>
1030039     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'struct'</span>)
1040040         StructOutputFlag = 1;
1050041         varargin(i) = [];
1060042     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'numeric'</span>)
1070043         StructOutputFlag = 0;
1080044         varargin(i) = [];
1090045     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'simulator'</span>) || strcmpi(varargin{i},<span class="string">'model'</span>) || strcmpi(varargin{i},<span class="string">'Online'</span>) || strcmpi(varargin{i},<span class="string">'Manual'</span>)
1100046         <span class="comment">% Remove and ignor</span>
1110047         varargin(i) = [];
1120048     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'physics'</span>)
1130049         UnitsFlagCell = {<span class="string">'Physics'</span>};
1140050         varargin(i) = [];
1150051     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'hardware'</span>)
1160052         UnitsFlagCell = {<span class="string">'Hardware'</span>};
1170053         varargin(i) = [];
1180054     <span class="keyword">end</span>
1190055 <span class="keyword">end</span>
1200056
1210057 <span class="keyword">if</span> isempty(varargin)
1220058     error(<span class="string">'Must have at least a family name input'</span>);
1230059 <span class="keyword">end</span>
1240060
1250061
1260062 <span class="comment">%%%%%%%%%%%%%%</span>
1270063 <span class="comment">% Cell input %</span>
1280064 <span class="comment">%%%%%%%%%%%%%%</span>
1290065 <span class="keyword">if</span> iscell(varargin{1})
1300066     <span class="keyword">for</span> i = 1:length(varargin{1})
1310067         <span class="keyword">if</span> length(varargin) &lt; 2
1320068             Data{i} = <a href="getroll.html" class="code" title="function Data = getroll(varargin)">getroll</a>(varargin{1}{i}, UnitsFlagCell{:});
1330069         <span class="keyword">elseif</span> length(varargin) &lt; 3
1340070             <span class="keyword">if</span> iscell(varargin{2})
1350071                 Data{i} = <a href="getroll.html" class="code" title="function Data = getroll(varargin)">getroll</a>(varargin{1}{i}, varargin{2}{i}, UnitsFlagCell{:});
1360072             <span class="keyword">else</span>
1370073                 Data{i} = <a href="getroll.html" class="code" title="function Data = getroll(varargin)">getroll</a>(varargin{1}{i}, varargin{2}, UnitsFlagCell{:});
1380074             <span class="keyword">end</span>
1390075         <span class="keyword">else</span>
1400076             <span class="keyword">if</span> iscell(varargin{3})
1410077                 Data{i} = <a href="getroll.html" class="code" title="function Data = getroll(varargin)">getroll</a>(varargin{1}{i}, varargin{2}{i}, varargin{3}{i}, UnitsFlagCell{:});
1420078             <span class="keyword">else</span>
1430079                 Data{i} = <a href="getroll.html" class="code" title="function Data = getroll(varargin)">getroll</a>(varargin{1}{i}, varargin{2}{i}, varargin{3}, UnitsFlagCell{:});
1440080             <span class="keyword">end</span>
1450081         <span class="keyword">end</span>
1460082     <span class="keyword">end</span>
1470083     <span class="keyword">return</span>
1480084 <span class="keyword">end</span>
1490085
1500086
1510087 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1520088 <span class="comment">% Parse Family, Field, DeviceList %</span>
1530089 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1540090 [Family, Field, DeviceList, UnitsFlag] = <a href="inputparsingffd.html" class="code" title="function [Family, Field, DeviceList, UnitsFlag, ModelFlag] = inputparsingffd(varargin)">inputparsingffd</a>(varargin{:});
1550091
1560092 <span class="comment">% Units flag</span>
1570093 <span class="keyword">if</span> isempty(UnitsFlagCell)
1580094     <span class="comment">% For structure inputs, use the units in the structure (from inputparsingffd)</span>
1590095     <span class="comment">% Else, get the default family value</span>
1600096     <span class="keyword">if</span> isempty(UnitsFlag)
1610097         UnitsFlag = <a href="getunits.html" class="code" title="function [Units, UnitsString] = getunits(Family, Field)">getunits</a>(Family);
1620098     <span class="keyword">end</span>
1630099 <span class="keyword">else</span>
1640100     <span class="comment">% Input override has priority</span>
1650101     UnitsFlag = UnitsFlagCell{1};
1660102 <span class="keyword">end</span>
1670103
1680104
1690105 <span class="comment">% Default field is Monitor for BPMs else Setpoint</span>
1700106 <span class="keyword">if</span> isempty(Field)
1710107     <span class="keyword">if</span> <a href="ismemberof.html" class="code" title="function  [IsTest, Index] = ismemberof(FamilyName, Field, MemberString)">ismemberof</a>(Family,<span class="string">'BPM'</span>)
1720108         Field = <span class="string">'Monitor'</span>;
1730109     <span class="keyword">else</span>
1740110         Field = <span class="string">'Setpoint'</span>;
1750111     <span class="keyword">end</span>
1760112 <span class="keyword">end</span>
1770113
1780114
1790115 <span class="comment">%%%%%%%%%%%%</span>
1800116 <span class="comment">% Get data %</span>
1810117 <span class="comment">%%%%%%%%%%%%</span>
1820118
1830119 <span class="comment">% 1. Try the AO and AD</span>
1840120 Data = <a href="getfamilydata.html" class="code" title="function [Data, ErrorFlag] = getfamilydata(Family, Field1, Field2, DeviceList)">getfamilydata</a>(Family, Field, <span class="string">'Roll'</span>, DeviceList);
1850121 <span class="keyword">if</span> isempty(Data)
1860122     Data = <a href="getfamilydata.html" class="code" title="function [Data, ErrorFlag] = getfamilydata(Family, Field1, Field2, DeviceList)">getfamilydata</a>(Family, <span class="string">'Roll'</span>, DeviceList);
1870123 <span class="keyword">end</span>
1880124
1890125 <span class="comment">% 2. Then look in PhysData</span>
1900126 <span class="keyword">if</span> isempty(Data)
1910127     <span class="keyword">try</span>
1920128         Data = <a href="getphysdata.html" class="code" title="function [Data, iNotFound] = getphysdata(Family, Field, DeviceList)">getphysdata</a>(Family, <span class="string">'Roll'</span>, DeviceList);
1930129     <span class="keyword">catch</span>
1940130         <span class="comment">% Default</span>
1950131         Data = zeros(size(DeviceList,1),1);
1960132     <span class="keyword">end</span>
1970133 <span class="keyword">end</span>
1980134
1990135
2000136
2010137
2020138 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
2030139 <span class="comment">% Change to physics units if requested %</span>
2040140 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
2050141 <span class="comment">%if strcmpi(UnitsFlag,'Physics')</span>
2060142 <span class="comment">%    Data = hw2physics(Family, Field, Data, DeviceList);</span>
2070143 <span class="comment">%end</span>
2080144
2090145
2100146 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
2110147 <span class="comment">% Return a data structure if requested %</span>
2120148 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
2130149 <span class="keyword">if</span> StructOutputFlag
2140150     DataNumeric = Data;
2150151     <span class="keyword">if</span> isempty(UnitsFlag)
2160152         Data = <a href="family2datastruct.html" class="code" title="function [DataStruct, ErrorFlag] = family2datastruct(varargin)">family2datastruct</a>(Family, Field, DeviceList);
2170153     <span class="keyword">else</span>
2180154         Data = <a href="family2datastruct.html" class="code" title="function [DataStruct, ErrorFlag] = family2datastruct(varargin)">family2datastruct</a>(Family, Field, DeviceList, UnitsFlag);
2190155     <span class="keyword">end</span>
2200156     Data.Data = DataNumeric;
2210157     Data.DataDescriptor = sprintf(<span class="string">'%s.%s Roll'</span>, Family, Field);
2220158     Data.CreatedBy = <span class="string">'getroll'</span>;
2230159 <span class="keyword">end</span>
2240160</pre></div>
225<hr><address>Generated on Mon 21-May-2007 15:29:18 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> &copy; 2003</address>
226</body>
227</html>
Note: See TracBrowser for help on using the repository browser.