source: MML/trunk/mml/doc_html/mml/family2handle.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: 11.9 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 family2handle</title>
6  <meta name="keywords" content="family2handle">
7  <meta name="description" content="[Handles, ErrorFlag] = family2handle(Family, Field, DeviceList)">
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; family2handle.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>family2handle
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>[Handles, ErrorFlag] = family2handle(Family, Field, DeviceList)</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 [Handles, ErrorFlag] = family2handle(Family, Field, DeviceList); </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"> [Handles, ErrorFlag] = family2handle(Family, Field, DeviceList)
31
32 Inputs:  Family = Family Name
33                   Data Structure
34                   Accelerator Object
35                   Cell Array
36          Field = Accelerator Object field name ('Monitor', 'Setpoint', etc) {'Monitor'}
37          DeviceList ([Sector Device #] or [element #]) {default: whole family}
38 
39 Note: If Family is a cell array, then DeviceList and Field must also be a cell arrays
40
41 Outputs: Handles = Handles corresponding to the Family, Field, and DeviceList
42
43 Written by Greg Portmann</pre></div>
44
45<!-- crossreference -->
46<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
47This function calls:
48<ul style="list-style-image:url(../matlabicon.gif)">
49<li><a href="common2dev.html" class="code" title="function [DeviceList, FamilyName, ErrorFlag] = common2dev(CommonNames, FamilyList)">common2dev</a>    COMMON2DEV - Converts a common name to a device list</li><li><a href="elem2dev.html" class="code" title="function Output = elem2dev(Family, ElementList)">elem2dev</a>  ELEM2DEV - Converts a device list to an element list</li><li><a href="family2channel.html" class="code" title="function [ChannelNames, ErrorFlag] = family2channel(varargin);">family2channel</a>       FAMILY2CHANNEL - Converts the family name to a channel name</li><li><a href="family2dev.html" class="code" title="function DeviceList = family2dev(Family, varargin);">family2dev</a>   FAMILY2DEV - Return the device list for a family</li><li><a href="family2handle.html" class="code" title="function [Handles, ErrorFlag] = family2handle(Family, Field, DeviceList);">family2handle</a>  [Handles, ErrorFlag] = family2handle(Family, Field, DeviceList)</li></ul>
50This function is called by:
51<ul style="list-style-image:url(../matlabicon.gif)">
52<li><a href="family2handle.html" class="code" title="function [Handles, ErrorFlag] = family2handle(Family, Field, DeviceList);">family2handle</a>       [Handles, ErrorFlag] = family2handle(Family, Field, DeviceList)</li></ul>
53<!-- crossreference -->
54
55
56<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
57<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function [Handles, ErrorFlag] = family2handle(Family, Field, DeviceList);</a>
580002 <span class="comment">% [Handles, ErrorFlag] = family2handle(Family, Field, DeviceList)</span>
590003 <span class="comment">%</span>
600004 <span class="comment">% Inputs:  Family = Family Name</span>
610005 <span class="comment">%                   Data Structure</span>
620006 <span class="comment">%                   Accelerator Object</span>
630007 <span class="comment">%                   Cell Array</span>
640008 <span class="comment">%          Field = Accelerator Object field name ('Monitor', 'Setpoint', etc) {'Monitor'}</span>
650009 <span class="comment">%          DeviceList ([Sector Device #] or [element #]) {default: whole family}</span>
660010 <span class="comment">%</span>
670011 <span class="comment">% Note: If Family is a cell array, then DeviceList and Field must also be a cell arrays</span>
680012 <span class="comment">%</span>
690013 <span class="comment">% Outputs: Handles = Handles corresponding to the Family, Field, and DeviceList</span>
700014 <span class="comment">%</span>
710015 <span class="comment">% Written by Greg Portmann</span>
720016
730017
740018 <span class="keyword">if</span> nargin == 0
750019     error(<span class="string">'Must have at least one input (''Family'')!'</span>);
760020 <span class="keyword">end</span>
770021
780022
790023 <span class="comment">%%%%%%%%%%%%%%%%%%%%%</span>
800024 <span class="comment">% Cell Array Inputs %</span>
810025 <span class="comment">%%%%%%%%%%%%%%%%%%%%%</span>
820026 <span class="keyword">if</span> iscell(Family)
830027     <span class="keyword">if</span> nargin &gt;= 3
840028         <span class="keyword">if</span> ~iscell(DeviceList)
850029             error(<span class="string">'If Family is a cell array, then DeviceList must be a cell array.'</span>);
860030         <span class="keyword">end</span>
870031         <span class="keyword">if</span> length(Family) ~= length(DeviceList)
880032             error(<span class="string">'Family and DeviceList must be the same size cell arrays.'</span>);
890033         <span class="keyword">end</span>
900034     <span class="keyword">end</span>
910035     <span class="keyword">if</span> nargin &gt;= 2
920036         <span class="keyword">if</span> ~iscell(Field)
930037             error(<span class="string">'If Family is a cell array, then Field must be a cell array.'</span>);
940038         <span class="keyword">end</span>
950039         <span class="keyword">if</span> length(Family) ~= length(Field)
960040             error(<span class="string">'If Field is a cell array, then must be the same size as Family.'</span>);
970041         <span class="keyword">end</span>
980042     <span class="keyword">end</span>
990043     
1000044     <span class="keyword">for</span> i = 1:length(Family)
1010045         <span class="keyword">if</span> nargin == 1
1020046             [Handles{i}, ErrorFlag{i}] = <a href="family2handle.html" class="code" title="function [Handles, ErrorFlag] = family2handle(Family, Field, DeviceList);">family2handle</a>(Family{i});
1030047         <span class="keyword">elseif</span> nargin == 2
1040048             [Handles{i}, ErrorFlag{i}] = <a href="family2handle.html" class="code" title="function [Handles, ErrorFlag] = family2handle(Family, Field, DeviceList);">family2handle</a>(Family{i}, Field{i});
1050049         <span class="keyword">else</span>           
1060050             [Handles{i}, ErrorFlag{i}] = <a href="family2handle.html" class="code" title="function [Handles, ErrorFlag] = family2handle(Family, Field, DeviceList);">family2handle</a>(Family{i}, Field{i}, DeviceList{i});
1070051         <span class="keyword">end</span>
1080052     <span class="keyword">end</span>
1090053     <span class="keyword">return</span>   
1100054 <span class="keyword">end</span>
1110055
1120056 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1130057 <span class="comment">% Family or data structure inputs beyond this point %</span>
1140058 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1150059 <span class="keyword">if</span> isstruct(Family)
1160060     <span class="comment">% Data structure inputs</span>
1170061     <span class="keyword">if</span> nargin &lt; 2
1180062         <span class="keyword">if</span> isfield(Family,<span class="string">'Field'</span>)
1190063             Field = Family.Field;
1200064         <span class="keyword">else</span>
1210065             Field = <span class="string">''</span>;
1220066         <span class="keyword">end</span>
1230067     <span class="keyword">end</span>
1240068     <span class="keyword">if</span> nargin &lt; 3
1250069         <span class="keyword">if</span> isfield(Family,<span class="string">'DeviceList'</span>)
1260070             DeviceList = Family.DeviceList;
1270071         <span class="keyword">else</span>
1280072             DeviceList = [];
1290073         <span class="keyword">end</span>
1300074     <span class="keyword">end</span>
1310075     <span class="keyword">if</span> isfield(Family,<span class="string">'FamilyName'</span>)
1320076         Family = Family.FamilyName;
1330077     <span class="keyword">else</span>
1340078         error(<span class="string">'For data structure inputs FamilyName field must exist'</span>)
1350079     <span class="keyword">end</span>
1360080 <span class="keyword">else</span>
1370081     <span class="comment">% Family string input</span>
1380082     <span class="keyword">if</span> nargin &lt; 2
1390083         Field = <span class="string">''</span>;
1400084     <span class="keyword">end</span>
1410085     <span class="keyword">if</span> nargin &lt; 3
1420086         DeviceList = [];
1430087     <span class="keyword">end</span>
1440088 <span class="keyword">end</span>
1450089 <span class="keyword">if</span> isempty(Field)
1460090     Field = <span class="string">'Monitor'</span>;
1470091 <span class="keyword">end</span>
1480092 <span class="keyword">if</span> isnumeric(Field)
1490093      DeviceList = Field;
1500094      Field = <span class="string">'Monitor'</span>;
1510095 <span class="keyword">end</span>
1520096 <span class="keyword">if</span> isempty(DeviceList)
1530097     DeviceList = <a href="family2dev.html" class="code" title="function DeviceList = family2dev(Family, varargin);">family2dev</a>(Family);
1540098 <span class="keyword">end</span>
1550099 <span class="keyword">if</span> (size(DeviceList,2) == 1)
1560100     DeviceList = <a href="elem2dev.html" class="code" title="function Output = elem2dev(Family, ElementList)">elem2dev</a>(Family, DeviceList);
1570101 <span class="keyword">end</span>
1580102
1590103
1600104 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1610105 <span class="comment">% CommonName Input:  Convert common names to a DeviceList %</span>
1620106 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1630107 <span class="keyword">if</span> isstr(DeviceList)
1640108     DeviceList = <a href="common2dev.html" class="code" title="function [DeviceList, FamilyName, ErrorFlag] = common2dev(CommonNames, FamilyList)">common2dev</a>(DeviceList, Family);
1650109     <span class="keyword">if</span> isempty(DeviceList)
1660110         error(<span class="string">'DeviceList was a string but common names could not be found.'</span>);
1670111     <span class="keyword">end</span>
1680112 <span class="keyword">end</span>
1690113
1700114
1710115 <span class="comment">%%%%%%%%%%%%</span>
1720116 <span class="comment">% Get data %</span>
1730117 <span class="comment">%%%%%%%%%%%%</span>
1740118
1750119 <span class="comment">% MCA handles are no longer stored in the AO</span>
1760120 <span class="comment">%[Handles, ErrorFlag] = getfamilydata(Family, Field, 'Handles', DeviceList);</span>
1770121
1780122 [ChannelNames, ErrorFlag] = <a href="family2channel.html" class="code" title="function [ChannelNames, ErrorFlag] = family2channel(varargin);">family2channel</a>(Family, Field, DeviceList);
1790123
1800124 <span class="keyword">for</span> i = 1:size(ChannelNames)
1810125     Handles(i,1) = mcaisopen(deblank(ChannelNames(i,:)));
1820126     <span class="keyword">if</span> Handles(i,1) == 0
1830127         Handles(i,1) = NaN;
1840128     <span class="keyword">end</span>
1850129 <span class="keyword">end</span></pre></div>
186<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>
187</body>
188</html>
Note: See TracBrowser for help on using the repository browser.