source: MML/trunk/mml/doc_html/mml/family2tol.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: 14.5 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 family2tol</title>
6  <meta name="keywords" content="family2tol">
7  <meta name="description" content="FAMILY2TOL - Return the (SP-AM) tolerance for a family">
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; family2tol.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>family2tol
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>FAMILY2TOL - Return the (SP-AM) tolerance for a family</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, ErrorFlag] = family2tol(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">FAMILY2TOL - Return the (SP-AM) tolerance for a family
31  [Tol, ErrorFlag] = family2tol(Family, Field, DeviceList)
32  [Tol, ErrorFlag] = family2tol(Family, DeviceList)
33
34  INPUTS
35  1. Family - Family Name
36              Data Structure
37              Accelerator Object
38  2. Field - Accelerator Object field name ('Monitor', 'Setpoint', etc) {Default: 'Setpoint'}
39  3. DeviceList ([Sector Device #] or [element #]) {Default: Entire family}
40  4. 'Physics'  - Use physics  units (optional override of units)
41     'Hardware' - Use hardware units (optional override of units)
42  5. 'Numeric' - Numeric output {Default}
43     'Struct'  - Data structure output
44
45  OUTPUTS
46  1. Tol = Tolerance field corresponding to the Family, Field, and DeviceList
47 
48  NOTES
49  1. If Family is a cell array, then DeviceList and Field can also be a cell arrays
50
51  Written by Greg Portmann</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="family2tol.html" class="code" title="function [Data, ErrorFlag] = family2tol(varargin)">family2tol</a>        FAMILY2TOL - Return the (SP-AM) tolerance for 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="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="hw2physics.html" class="code" title="function S = hw2physics(Family, Field, value, DeviceList, Energy)">hw2physics</a>     HW2PHYSICS - Converts from 'Hardware' units to 'Physics' units</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></ul>
58This function is called by:
59<ul style="list-style-image:url(../matlabicon.gif)">
60<li><a href="family2tol.html" class="code" title="function [Data, ErrorFlag] = family2tol(varargin)">family2tol</a>     FAMILY2TOL - Return the (SP-AM) tolerance for a family</li><li><a href="getrunflag.html" class="code" title="function [RunFlag, Delta, Tol] = getrunflag(varargin)">getrunflag</a>      GETRUNFLAG - Returns position if the device is in the process of changing a setpoint</li><li><a href="gettol.html" class="code" title="function [S, Error] = gettol(varargin)">gettol</a>       GETTOL - Returns the tolerance between the setpoint and monitor</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, ErrorFlag] = family2tol(varargin)</a>
660002 <span class="comment">%FAMILY2TOL - Return the (SP-AM) tolerance for a family</span>
670003 <span class="comment">%  [Tol, ErrorFlag] = family2tol(Family, Field, DeviceList)</span>
680004 <span class="comment">%  [Tol, ErrorFlag] = family2tol(Family, DeviceList)</span>
690005 <span class="comment">%</span>
700006 <span class="comment">%  INPUTS</span>
710007 <span class="comment">%  1. Family - Family Name</span>
720008 <span class="comment">%              Data Structure</span>
730009 <span class="comment">%              Accelerator Object</span>
740010 <span class="comment">%  2. Field - Accelerator Object field name ('Monitor', 'Setpoint', etc) {Default: 'Setpoint'}</span>
750011 <span class="comment">%  3. DeviceList ([Sector Device #] or [element #]) {Default: Entire family}</span>
760012 <span class="comment">%  4. 'Physics'  - Use physics  units (optional override of units)</span>
770013 <span class="comment">%     'Hardware' - Use hardware units (optional override of units)</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. Tol = Tolerance field corresponding to the Family, Field, and DeviceList</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 and Field can also be a cell arrays</span>
860022 <span class="comment">%</span>
870023 <span class="comment">%  Written by Greg Portmann</span>
880024
890025
900026 <span class="comment">%%%%%%%%%%%%%%%%%</span>
910027 <span class="comment">% Input Parsing %</span>
920028 <span class="comment">%%%%%%%%%%%%%%%%%</span>
930029 UnitsFlagCell = {};
940030 StructOutputFlag = 0;
950031 <span class="keyword">for</span> i = length(varargin):-1:1
960032     <span class="keyword">if</span> isstruct(varargin{i})
970033         <span class="comment">% Ignor structures</span>
980034     <span class="keyword">elseif</span> iscell(varargin{i})
990035         <span class="comment">% Ignor cells</span>
1000036     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'struct'</span>)
1010037         StructOutputFlag = 1;
1020038         varargin(i) = [];
1030039     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'numeric'</span>)
1040040         StructOutputFlag = 0;
1050041         varargin(i) = [];
1060042     <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>)
1070043         <span class="comment">% Remove and ignor</span>
1080044         varargin(i) = [];
1090045     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'physics'</span>)
1100046         UnitsFlagCell = {<span class="string">'Physics'</span>};
1110047         varargin(i) = [];
1120048     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'hardware'</span>)
1130049         UnitsFlagCell = {<span class="string">'Hardware'</span>};
1140050         varargin(i) = [];
1150051     <span class="keyword">end</span>
1160052 <span class="keyword">end</span>
1170053
1180054 <span class="keyword">if</span> isempty(varargin)
1190055     error(<span class="string">'Must have at least a family name input'</span>);
1200056 <span class="keyword">end</span>
1210057
1220058
1230059 <span class="comment">%%%%%%%%%%%%%%%%%%%%%</span>
1240060 <span class="comment">% Cell Array Inputs %</span>
1250061 <span class="comment">%%%%%%%%%%%%%%%%%%%%%</span>
1260062 <span class="keyword">if</span> iscell(varargin{1})
1270063     <span class="keyword">for</span> i = 1:length(varargin{1})
1280064         <span class="keyword">if</span> length(varargin) &lt; 2
1290065             [Data{i}, ErrorFlag{i}] = <a href="family2tol.html" class="code" title="function [Data, ErrorFlag] = family2tol(varargin)">family2tol</a>(varargin{1}{i}, UnitsFlagCell{:});
1300066         <span class="keyword">elseif</span> length(varargin) &lt; 3
1310067             <span class="keyword">if</span> iscell(varargin{2})
1320068                 [Data{i}, ErrorFlag{i}] = <a href="family2tol.html" class="code" title="function [Data, ErrorFlag] = family2tol(varargin)">family2tol</a>(varargin{1}{i}, varargin{2}{i}, UnitsFlagCell{:});
1330069             <span class="keyword">else</span>
1340070                 [Data{i}, ErrorFlag{i}] = <a href="family2tol.html" class="code" title="function [Data, ErrorFlag] = family2tol(varargin)">family2tol</a>(varargin{1}{i}, varargin{2}, UnitsFlagCell{:});
1350071             <span class="keyword">end</span>
1360072         <span class="keyword">else</span>
1370073             <span class="keyword">if</span> iscell(varargin{2})
1380074                 <span class="keyword">if</span> iscell(varargin{3})
1390075                     [Data{i}, ErrorFlag{i}] = <a href="family2tol.html" class="code" title="function [Data, ErrorFlag] = family2tol(varargin)">family2tol</a>(varargin{1}{i}, varargin{2}{i}, varargin{3}{i}, UnitsFlagCell{:});
1400076                 <span class="keyword">else</span>
1410077                     [Data{i}, ErrorFlag{i}] = <a href="family2tol.html" class="code" title="function [Data, ErrorFlag] = family2tol(varargin)">family2tol</a>(varargin{1}{i}, varargin{2}{i}, varargin{3}, UnitsFlagCell{:});
1420078                 <span class="keyword">end</span>
1430079             <span class="keyword">else</span>
1440080                 <span class="keyword">if</span> iscell(varargin{3})
1450081                     [Data{i}, ErrorFlag{i}] = <a href="family2tol.html" class="code" title="function [Data, ErrorFlag] = family2tol(varargin)">family2tol</a>(varargin{1}{i}, varargin{2}, varargin{3}{i}, UnitsFlagCell{:});
1460082                 <span class="keyword">else</span>
1470083                     [Data{i}, ErrorFlag{i}] = <a href="family2tol.html" class="code" title="function [Data, ErrorFlag] = family2tol(varargin)">family2tol</a>(varargin{1}{i}, varargin{2}, varargin{3}, UnitsFlagCell{:});
1480084                 <span class="keyword">end</span>
1490085             <span class="keyword">end</span>
1500086         <span class="keyword">end</span>
1510087     <span class="keyword">end</span>
1520088     <span class="keyword">return</span>
1530089 <span class="keyword">end</span>
1540090
1550091
1560092 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1570093 <span class="comment">% Parse Family, Field, DeviceList %</span>
1580094 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1590095 [Family, Field, DeviceList, UnitsFlag] = <a href="inputparsingffd.html" class="code" title="function [Family, Field, DeviceList, UnitsFlag, ModelFlag] = inputparsingffd(varargin)">inputparsingffd</a>(varargin{:});
1600096
1610097
1620098 <span class="comment">% Units flag</span>
1630099 <span class="keyword">if</span> isempty(UnitsFlagCell)
1640100     <span class="comment">% For structure inputs, use the units in the structure (from inputparsingffd)</span>
1650101     <span class="comment">% Else, get the default family value</span>
1660102     <span class="keyword">if</span> isempty(UnitsFlag)
1670103         UnitsFlag = <a href="getunits.html" class="code" title="function [Units, UnitsString] = getunits(Family, Field)">getunits</a>(Family);
1680104     <span class="keyword">end</span>
1690105 <span class="keyword">else</span>
1700106     <span class="comment">% Input override has priority</span>
1710107     UnitsFlag = UnitsFlagCell{1};
1720108 <span class="keyword">end</span>
1730109
1740110
1750111 <span class="comment">% Default field is Setpoint</span>
1760112 <span class="keyword">if</span> isempty(Field)
1770113     Field = <span class="string">'Setpoint'</span>;
1780114 <span class="keyword">end</span>
1790115
1800116
1810117 <span class="comment">%%%%%%%%%%%%</span>
1820118 <span class="comment">% Get data %</span>
1830119 <span class="comment">%%%%%%%%%%%%</span>
1840120 [Data, ErrorFlag] = <a href="getfamilydata.html" class="code" title="function [Data, ErrorFlag] = getfamilydata(Family, Field1, Field2, DeviceList)">getfamilydata</a>(Family, Field, <span class="string">'Tolerance'</span>, DeviceList);
1850121
1860122
1870123
1880124 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1890125 <span class="comment">% Change to physics units if requested %</span>
1900126 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1910127 <span class="keyword">if</span> strcmpi(UnitsFlag,<span class="string">'Physics'</span>)
1920128     Data = <a href="hw2physics.html" class="code" title="function S = hw2physics(Family, Field, value, DeviceList, Energy)">hw2physics</a>(Family, Field, Data, DeviceList);
1930129 <span class="keyword">end</span>
1940130
1950131
1960132 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1970133 <span class="comment">% Return a data structure if requested %</span>
1980134 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1990135 <span class="keyword">if</span> StructOutputFlag
2000136     DataNumeric = Data;
2010137     <span class="keyword">if</span> isempty(UnitsFlag)
2020138         Data = <a href="family2datastruct.html" class="code" title="function [DataStruct, ErrorFlag] = family2datastruct(varargin)">family2datastruct</a>(Family, Field, DeviceList);
2030139     <span class="keyword">else</span>
2040140         Data = <a href="family2datastruct.html" class="code" title="function [DataStruct, ErrorFlag] = family2datastruct(varargin)">family2datastruct</a>(Family, Field, DeviceList, UnitsFlag);
2050141     <span class="keyword">end</span>
2060142     Data.Data = DataNumeric;
2070143     Data.DataDescriptor = sprintf(<span class="string">'%s.%s Tolerance'</span>, Family, Field);
2080144     Data.CreatedBy = <span class="string">'family2tol'</span>;
2090145 <span class="keyword">end</span>
2100146</pre></div>
211<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>
212</body>
213</html>
Note: See TracBrowser for help on using the repository browser.