source: MML/trunk/machine/SOLEIL/doc_html/machine/Soleil/common/family2elem.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: 8.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 family2elem</title>
6  <meta name="keywords" content="family2elem">
7  <meta name="description" content="FAMILY2elem - Returns the element list 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="#">machine</a> &gt; <a href="#">Soleil</a> &gt; <a href="index.html">common</a> &gt; family2elem.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 machine/Soleil/common&nbsp;<img alt=">" border="0" src="../../../right.png"></a></td></tr></table>-->
19
20<h1>family2elem
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>FAMILY2elem - Returns the element list 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 ElementList = family2elem(Family, 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">FAMILY2elem - Returns the element list for a family
31  ElementList = family2elem(FamilyName, StatusFlag)
32
33  INPUTS
34  1. Family = Family name ('BEND', 'Q1', 'S1', 'S2', 'HCOR', 'VCOR', etc.)
35              Data Structure (only the FamilyName field is used)
36              Accelerator Object (only the FamilyName field is used)
37              Cell Array
38  2. StatusFlag - 0 return all elements
39                  1 return only elements with good status {Default}
40
41  OUTPUTS
42  1. ElementList - Element list corresponding to the Family
43                  Empty if not found
44
45  EXAMPLES
46  1. family2elem('HCOR')
47  2. family2elem({'HCOR','VCOR'})
48
49  See Also dev2family, family2common, family2dev, family2handle
50          family2status, family2tol, family2units, family2tango</pre></div>
51
52<!-- crossreference -->
53<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
54This function calls:
55<ul style="list-style-image:url(../../../matlabicon.gif)">
56<li><a href="family2elem.html" class="code" title="function ElementList = family2elem(Family, varargin);">family2elem</a>       FAMILY2elem - Returns the element list for a family</li></ul>
57This function is called by:
58<ul style="list-style-image:url(../../../matlabicon.gif)">
59<li><a href="family2elem.html" class="code" title="function ElementList = family2elem(Family, varargin);">family2elem</a>       FAMILY2elem - Returns the element list for a family</li></ul>
60<!-- crossreference -->
61
62
63<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
64<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function ElementList = family2elem(Family, varargin);</a>
650002 <span class="comment">%FAMILY2elem - Returns the element list for a family</span>
660003 <span class="comment">%  ElementList = family2elem(FamilyName, StatusFlag)</span>
670004 <span class="comment">%</span>
680005 <span class="comment">%  INPUTS</span>
690006 <span class="comment">%  1. Family = Family name ('BEND', 'Q1', 'S1', 'S2', 'HCOR', 'VCOR', etc.)</span>
700007 <span class="comment">%              Data Structure (only the FamilyName field is used)</span>
710008 <span class="comment">%              Accelerator Object (only the FamilyName field is used)</span>
720009 <span class="comment">%              Cell Array</span>
730010 <span class="comment">%  2. StatusFlag - 0 return all elements</span>
740011 <span class="comment">%                  1 return only elements with good status {Default}</span>
750012 <span class="comment">%</span>
760013 <span class="comment">%  OUTPUTS</span>
770014 <span class="comment">%  1. ElementList - Element list corresponding to the Family</span>
780015 <span class="comment">%                  Empty if not found</span>
790016 <span class="comment">%</span>
800017 <span class="comment">%  EXAMPLES</span>
810018 <span class="comment">%  1. family2elem('HCOR')</span>
820019 <span class="comment">%  2. family2elem({'HCOR','VCOR'})</span>
830020 <span class="comment">%</span>
840021 <span class="comment">%  See Also dev2family, family2common, family2dev, family2handle</span>
850022 <span class="comment">%          family2status, family2tol, family2units, family2tango</span>
860023           
870024 <span class="comment">%</span>
880025 <span class="comment">%  Written by Laurent S. Nadolski</span>
890026
900027 <span class="keyword">if</span> nargin == 0
910028     error(<span class="string">'Must have at least one input.'</span>);
920029 <span class="keyword">end</span>
930030
940031 <span class="comment">% Status input</span>
950032 <span class="keyword">if</span> nargin &gt;= 2
960033     StatusFlag = varargin{1};
970034 <span class="keyword">else</span>
980035     <span class="comment">% This choice changes the default behavior for the entire middle layer !!!!</span>
990036     StatusFlag = 1;  <span class="comment">% Only return good status devices</span>
1000037 <span class="keyword">end</span>
1010038
1020039 <span class="comment">%%%%%%%%%%%%%%%%%%%%%</span>
1030040 <span class="comment">%% Cell Array Inputs %</span>
1040041 <span class="comment">%%%%%%%%%%%%%%%%%%%%%</span>
1050042 <span class="keyword">if</span> iscell(Family)
1060043     <span class="keyword">for</span> i = 1:length(Family)
1070044         <span class="keyword">if</span> iscell(StatusFlag)
1080045             ElementList{i} = <a href="family2elem.html" class="code" title="function ElementList = family2elem(Family, varargin);">family2elem</a>(Family{i}, StatusFlag{i});
1090046         <span class="keyword">else</span>
1100047             ElementList{i} = <a href="family2elem.html" class="code" title="function ElementList = family2elem(Family, varargin);">family2elem</a>(Family{i}, StatusFlag);
1110048         <span class="keyword">end</span>
1120049     <span class="keyword">end</span>
1130050     <span class="keyword">return</span>   
1140051 <span class="keyword">end</span>
1150052
1160053
1170054 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1180055 <span class="comment">%% Family or data structure inputs beyond this point %</span>
1190056 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1200057 <span class="keyword">if</span> isstruct(Family)
1210058     <span class="comment">% Structures can be an accelerator object or a data structure (as returned by getpv)</span>
1220059     <span class="keyword">if</span> isfield(Family, <span class="string">'FamilyName'</span>)
1230060         <span class="comment">% Data structure</span>
1240061         Family = Family.FamilyName;   
1250062     <span class="keyword">else</span>
1260063         error(<span class="string">'Family input of unknown type'</span>);
1270064     <span class="keyword">end</span>
1280065 <span class="keyword">end</span>
1290066
1300067 <span class="comment">% gets device list for Family</span>
1310068 [DeviceList, ErrorFlag] = getfamilydata(Family, <span class="string">'DeviceList'</span>);
1320069 <span class="keyword">if</span> isempty(DeviceList)
1330070     error(sprintf(<span class="string">'%s family not found'</span>, Family));
1340071 <span class="keyword">end</span>
1350072
1360073 <span class="comment">% return all elements whatever status</span>
1370074 ElementList = dev2elem(Family,DeviceList);
1380075
1390076 <span class="comment">% return status 1 elements</span>
1400077 <span class="keyword">if</span> StatusFlag
1410078     Status = getfamilydata(Family, <span class="string">'Status'</span>, DeviceList);
1420079     <span class="keyword">if</span> isempty(Status)
1430080         fprintf(<span class="string">'   WARNING:  Status field not in the AO, hence ignored.\n'</span>);
1440081     <span class="keyword">else</span>
1450082         ElementList = dev2elem(Family,DeviceList(find(Status),:));
1460083     <span class="keyword">end</span>
1470084 <span class="keyword">end</span></pre></div>
148<hr><address>Generated on Mon 21-May-2007 15:35:27 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> &copy; 2003</address>
149</body>
150</html>
Note: See TracBrowser for help on using the repository browser.