source: MML/trunk/machine/SOLEIL/doc_html/machine/Soleil/common/family2devcell.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.6 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 family2devcell</title>
6  <meta name="keywords" content="family2devcell">
7  <meta name="description" content="FAMILY2DEVCELL - Returns the device list for a family and a cell">
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; family2devcell.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>family2devcell
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>FAMILY2DEVCELL - Returns the device list for a family and a cell</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 DeviceList = family2devcell(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">FAMILY2DEVCELL - Returns the device list for a family and a cell
31  DeviceList = family2dev(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. CellNumber - Cell number eg. 1, [2 3]
39  3. StatusFlag - 0 return all devices
40                  1 return only devices with good status {Default}
41
42  OUTPUTS
43  1. DeviceList - Device list corresponding to the Family
44                  Empty if not found
45
46  See Also dev2family, family2common, family2dev, family2handle
47          family2status, family2tol, family2units, family2tango</pre></div>
48
49<!-- crossreference -->
50<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
51This function calls:
52<ul style="list-style-image:url(../../../matlabicon.gif)">
53<li><a href="family2devcell.html" class="code" title="function DeviceList = family2devcell(Family, varargin);">family2devcell</a>       FAMILY2DEVCELL - Returns the device list for a family and a cell</li></ul>
54This function is called by:
55<ul style="list-style-image:url(../../../matlabicon.gif)">
56<li><a href="family2devcell.html" class="code" title="function DeviceList = family2devcell(Family, varargin);">family2devcell</a>       FAMILY2DEVCELL - Returns the device list for a family and a cell</li></ul>
57<!-- crossreference -->
58
59
60<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
61<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function DeviceList = family2devcell(Family, varargin);</a>
620002 <span class="comment">%FAMILY2DEVCELL - Returns the device list for a family and a cell</span>
630003 <span class="comment">%  DeviceList = family2dev(FamilyName, StatusFlag)</span>
640004 <span class="comment">%</span>
650005 <span class="comment">%  INPUTS</span>
660006 <span class="comment">%  1. Family = Family name ('BEND', 'Q1', 'S1', 'S2', 'HCOR', 'VCOR', etc.)</span>
670007 <span class="comment">%              Data Structure (only the FamilyName field is used)</span>
680008 <span class="comment">%              Accelerator Object (only the FamilyName field is used)</span>
690009 <span class="comment">%              Cell Array</span>
700010 <span class="comment">%  2. CellNumber - Cell number eg. 1, [2 3]</span>
710011 <span class="comment">%  3. StatusFlag - 0 return all devices</span>
720012 <span class="comment">%                  1 return only devices with good status {Default}</span>
730013 <span class="comment">%</span>
740014 <span class="comment">%  OUTPUTS</span>
750015 <span class="comment">%  1. DeviceList - Device list corresponding to the Family</span>
760016 <span class="comment">%                  Empty if not found</span>
770017 <span class="comment">%</span>
780018 <span class="comment">%  See Also dev2family, family2common, family2dev, family2handle</span>
790019 <span class="comment">%          family2status, family2tol, family2units, family2tango</span>
800020
810021 <span class="comment">%</span>
820022 <span class="comment">%  Written by Laurent S. Nadolski</span>
830023
840024 <span class="keyword">if</span> nargin == 0
850025     error(<span class="string">'Must have at least one input.'</span>);
860026 <span class="keyword">end</span>
870027
880028 <span class="comment">% Status input</span>
890029 <span class="keyword">if</span> nargin &gt;= 2
900030     CellNumber = varargin{1};
910031     <span class="keyword">if</span> nargin &gt;= 3
920032         StatusFlag = varargin{2};
930033     <span class="keyword">else</span>
940034         <span class="comment">% This choice changes the default behavior for the entire middle layer !!!!</span>
950035         StatusFlag = 1;  <span class="comment">% Only return good status devices</span>
960036     <span class="keyword">end</span>
970037 <span class="keyword">else</span>
980038     CellNumber = 1;
990039     StatusFlag = 1;  <span class="comment">% Only return good status devices</span>
1000040 <span class="keyword">end</span>
1010041
1020042 <span class="comment">%%%%%%%%%%%%%%%%%%%%%</span>
1030043 <span class="comment">% Cell Array Inputs %</span>
1040044 <span class="comment">%%%%%%%%%%%%%%%%%%%%%</span>
1050045 <span class="keyword">if</span> iscell(Family)
1060046     <span class="keyword">for</span> i = 1:length(Family)
1070047         <span class="keyword">if</span> iscell(StatusFlag)
1080048             DeviceList{i} = <a href="family2devcell.html" class="code" title="function DeviceList = family2devcell(Family, varargin);">family2devcell</a>(Family{i}, StatusFlag{i});
1090049         <span class="keyword">else</span>
1100050             DeviceList{i} = <a href="family2devcell.html" class="code" title="function DeviceList = family2devcell(Family, varargin);">family2devcell</a>(Family{i}, StatusFlag);
1110051         <span class="keyword">end</span>
1120052     <span class="keyword">end</span>
1130053     <span class="keyword">return</span>   
1140054 <span class="keyword">end</span>
1150055
1160056
1170057 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1180058 <span class="comment">% Family or data structure inputs beyond this point %</span>
1190059 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1200060 <span class="keyword">if</span> isstruct(Family)
1210061     <span class="comment">% Structures can be an accelerator object or a data structure (as returned by getpv)</span>
1220062     <span class="keyword">if</span> isfield(Family, <span class="string">'FamilyName'</span>)
1230063         <span class="comment">% Data structure</span>
1240064         Family = Family.FamilyName;   
1250065     <span class="keyword">else</span>
1260066         error(<span class="string">'Family input of unknown type'</span>);
1270067     <span class="keyword">end</span>
1280068 <span class="keyword">end</span>
1290069
1300070
1310071 [DeviceList, ErrorFlag] = getfamilydata(Family, <span class="string">'DeviceList'</span>);
1320072 <span class="keyword">if</span> isempty(DeviceList)
1330073     error(sprintf(<span class="string">'%s family not found'</span>, Family));
1340074 <span class="keyword">end</span>
1350075
1360076 ind = [];
1370077 <span class="keyword">for</span> k = 1:length(CellNumber)
1380078     ind = [ind; find(DeviceList(:,1) == CellNumber(k))];
1390079 <span class="keyword">end</span>
1400080 DeviceList = DeviceList(ind,:);
1410081
1420082 <span class="keyword">if</span> StatusFlag
1430083     Status = getfamilydata(Family, <span class="string">'Status'</span>, DeviceList);
1440084     <span class="keyword">if</span> isempty(Status)
1450085         fprintf(<span class="string">'   WARNING:  Status field not in the AO, hence ignored.\n'</span>);
1460086     <span class="keyword">else</span>
1470087         DeviceList = DeviceList(find(Status),:);
1480088     <span class="keyword">end</span>
1490089 <span class="keyword">end</span></pre></div>
150<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>
151</body>
152</html>
Note: See TracBrowser for help on using the repository browser.