source: MML/trunk/mml/doc_html/mml/channel2common.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: 12.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 channel2common</title>
6  <meta name="keywords" content="channel2common">
7  <meta name="description" content="CHANNEL2COMMON - Convert a channel name to a common name">
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; channel2common.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>channel2common
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>CHANNEL2COMMON - Convert a channel name to a common name</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 [CommonNames, ErrorFlag] = channel2common(ChannelNames, Field, Family) </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">CHANNEL2COMMON - Convert a channel name to a common name
31  [CommonNames, ErrorFlag] = channel2common(ChannelNames, Field, Family)
32
33  INPUTS
34  1. ChannelNames - List of channel names (string, matrix, cell array)
35  2. Field = Accelerator Object field name ('Monitor', 'Setpoint', etc) {Default: 'Monitor'}
36  3. Family - Family Name
37              Data Structure
38              Accelerator Object
39
40  OUTPUTS
41  1. CommonNames - Common names corresponding to the common name
42                   If the common name cannot be found an empty strings
43                   (or a blank string for matrix inputs) is returned
44  2. ErrorFlag - Number of errors found
45
46  NOTES
47  1. For DataType='vector' only the first common names is returned (DeviceList would be needed as an input)
48
49  Written by Greg Portmann</pre></div>
50
51<!-- crossreference -->
52<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
53This function calls:
54<ul style="list-style-image:url(../matlabicon.gif)">
55<li><a href="channel2common.html" class="code" title="function [CommonNames, ErrorFlag] = channel2common(ChannelNames, Field, Family)">channel2common</a>       CHANNEL2COMMON - Convert a channel name to a common name</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="getfamilylist.html" class="code" title="function  [Families, AO] = getfamilylist(OutputFlag)">getfamilylist</a>      GETFAMILYLIST - Returns a list of all the family names</li></ul>
56This function is called by:
57<ul style="list-style-image:url(../matlabicon.gif)">
58<li><a href="channel2common.html" class="code" title="function [CommonNames, ErrorFlag] = channel2common(ChannelNames, Field, Family)">channel2common</a>       CHANNEL2COMMON - Convert a channel name to a common name</li></ul>
59<!-- crossreference -->
60
61
62<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
63<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function [CommonNames, ErrorFlag] = channel2common(ChannelNames, Field, Family)</a>
640002 <span class="comment">%CHANNEL2COMMON - Convert a channel name to a common name</span>
650003 <span class="comment">%  [CommonNames, ErrorFlag] = channel2common(ChannelNames, Field, Family)</span>
660004 <span class="comment">%</span>
670005 <span class="comment">%  INPUTS</span>
680006 <span class="comment">%  1. ChannelNames - List of channel names (string, matrix, cell array)</span>
690007 <span class="comment">%  2. Field = Accelerator Object field name ('Monitor', 'Setpoint', etc) {Default: 'Monitor'}</span>
700008 <span class="comment">%  3. Family - Family Name</span>
710009 <span class="comment">%              Data Structure</span>
720010 <span class="comment">%              Accelerator Object</span>
730011 <span class="comment">%</span>
740012 <span class="comment">%  OUTPUTS</span>
750013 <span class="comment">%  1. CommonNames - Common names corresponding to the common name</span>
760014 <span class="comment">%                   If the common name cannot be found an empty strings</span>
770015 <span class="comment">%                   (or a blank string for matrix inputs) is returned</span>
780016 <span class="comment">%  2. ErrorFlag - Number of errors found</span>
790017 <span class="comment">%</span>
800018 <span class="comment">%  NOTES</span>
810019 <span class="comment">%  1. For DataType='vector' only the first common names is returned (DeviceList would be needed as an input)</span>
820020 <span class="comment">%</span>
830021 <span class="comment">%  Written by Greg Portmann</span>
840022
850023
860024 <span class="keyword">if</span> nargin &lt; 1
870025     error(<span class="string">'Must have at least 1 input (''CommonNames'')'</span>);
880026 <span class="keyword">end</span>
890027 <span class="keyword">if</span> nargin &lt; 2
900028     Field = <span class="string">''</span>;
910029 <span class="keyword">end</span>
920030 <span class="keyword">if</span> isempty(Field)
930031     Field = <span class="string">'Monitor'</span>;
940032 <span class="keyword">end</span>
950033 <span class="keyword">if</span> nargin &lt; 3
960034     Family = <span class="string">''</span>;
970035 <span class="keyword">end</span>
980036
990037 <span class="comment">% Cell inputs</span>
1000038 <span class="keyword">if</span> iscell(ChannelNames)
1010039     <span class="keyword">if</span> iscell(Family)
1020040         <span class="keyword">if</span> length(Family) ~= length(ChannelNames)
1030041             error(<span class="string">'Family and ChannelNames must be the same size cell arrays.'</span>);
1040042         <span class="keyword">end</span>
1050043     <span class="keyword">end</span>
1060044     <span class="keyword">if</span> iscell(Field)
1070045         <span class="keyword">if</span> length(Field) ~= length(ChannelNames)
1080046             error(<span class="string">'Field and ChannelNames must be the same size cell arrays.'</span>);
1090047         <span class="keyword">end</span>
1100048     <span class="keyword">end</span>
1110049     
1120050     ErrorFlag = 0;
1130051     <span class="keyword">for</span> i = 1:length(ChannelNames)
1140052         <span class="keyword">if</span> iscell(Family)
1150053             <span class="keyword">if</span> iscell(Field)
1160054                 [CommonNames{i}, ErrorTmp] = <a href="channel2common.html" class="code" title="function [CommonNames, ErrorFlag] = channel2common(ChannelNames, Field, Family)">channel2common</a>(ChannelNames{i}, Field{i}, Family{i});
1170055             <span class="keyword">else</span>
1180056                 [CommonNames{i}, ErrorTmp] = <a href="channel2common.html" class="code" title="function [CommonNames, ErrorFlag] = channel2common(ChannelNames, Field, Family)">channel2common</a>(ChannelNames{i}, Field, Family{i});
1190057             <span class="keyword">end</span>
1200058         <span class="keyword">else</span>
1210059             <span class="keyword">if</span> iscell(Field)
1220060                 [CommonNames{i}, ErrorTmp] = <a href="channel2common.html" class="code" title="function [CommonNames, ErrorFlag] = channel2common(ChannelNames, Field, Family)">channel2common</a>(ChannelNames{i}, Field{i}, Family);
1230061             <span class="keyword">else</span>
1240062                 [CommonNames{i}, ErrorTmp] = <a href="channel2common.html" class="code" title="function [CommonNames, ErrorFlag] = channel2common(ChannelNames, Field, Family)">channel2common</a>(ChannelNames{i}, Field, Family);
1250063             <span class="keyword">end</span>
1260064         <span class="keyword">end</span>
1270065         ErrorFlag = ErrorFlag | ErrorTmp;
1280066     <span class="keyword">end</span>
1290067     <span class="keyword">return</span>   
1300068 <span class="keyword">end</span>
1310069 <span class="comment">% End cell input</span>
1320070
1330071
1340072
1350073
1360074 <span class="comment">% Search all families</span>
1370075 <span class="keyword">if</span> isempty(Family)
1380076     CommonNames = [];
1390077     ErrorFlag = 0;
1400078     FamilyList = <a href="getfamilylist.html" class="code" title="function  [Families, AO] = getfamilylist(OutputFlag)">getfamilylist</a>;
1410079     
1420080     <span class="keyword">for</span> i = 1:size(ChannelNames,1)
1430081         Name = deblank(ChannelNames(i,:));
1440082         Found = 0;
1450083         <span class="keyword">for</span> j = 1:size(FamilyList, 1)
1460084             CommonName = <a href="channel2common.html" class="code" title="function [CommonNames, ErrorFlag] = channel2common(ChannelNames, Field, Family)">channel2common</a>(Name, Field, deblank(FamilyList(j,:)));
1470085             <span class="keyword">if</span> ~isempty(CommonName)
1480086                 Found = 1;
1490087                 <span class="keyword">break</span>
1500088             <span class="keyword">end</span>
1510089         <span class="keyword">end</span>
1520090         <span class="keyword">if</span> Found
1530091             NewCommonName = CommonName;
1540092         <span class="keyword">else</span>
1550093             NewCommonName = <span class="string">' '</span>;
1560094             ErrorFlag = ErrorFlag + 1;
1570095         <span class="keyword">end</span>
1580096         CommonNames = strvcat(CommonNames, NewCommonName);
1590097     <span class="keyword">end</span>
1600098     CommonNames = deblank(CommonNames);
1610099     <span class="keyword">return</span>
1620100 <span class="keyword">end</span>
1630101
1640102
1650103 <span class="comment">% CommonNames can be a matrix</span>
1660104 CommonNames = [];
1670105 ErrorFlag = 0;
1680106 <span class="keyword">for</span> i = 1:size(ChannelNames,1)
1690107     Name = deblank(ChannelNames(i,:));
1700108     
1710109     ChannelNamesTotal = <a href="getfamilydata.html" class="code" title="function [Data, ErrorFlag] = getfamilydata(Family, Field1, Field2, DeviceList)">getfamilydata</a>(Family, Field, <span class="string">'ChannelNames'</span>);
1720110     
1730111     [name,j,k] = intersect(Name, ChannelNamesTotal, <span class="string">'rows'</span>);
1740112     
1750113     <span class="keyword">if</span> isempty(name) &amp; length(Name)~=size(ChannelNamesTotal)
1760114         Name = [repmat(<span class="string">' '</span>,size(Name,1),size(ChannelNamesTotal,2)-size(Name,2)) Name];
1770115         [name,j,k] = intersect(Name, ChannelNamesTotal, <span class="string">'rows'</span>);
1780116     <span class="keyword">end</span>
1790117     
1800118     <span class="keyword">if</span> isempty(name)
1810119         Name = deblank(ChannelNames(i,:));
1820120         <span class="keyword">if</span> length(Name)~=size(ChannelNamesTotal)
1830121             Name = [Name repmat(<span class="string">' '</span>,size(Name,1),size(ChannelNamesTotal,2)-size(Name,2))];
1840122             [name,j,k] = intersect(Name, ChannelNamesTotal, <span class="string">'rows'</span>);
1850123         <span class="keyword">end</span>
1860124     <span class="keyword">end</span>
1870125
1880126     <span class="keyword">if</span> ~isempty(k)
1890127         CommonNamesTotal = <a href="getfamilydata.html" class="code" title="function [Data, ErrorFlag] = getfamilydata(Family, Field1, Field2, DeviceList)">getfamilydata</a>(Family, <span class="string">'CommonNames'</span>);
1900128         
1910129         <span class="keyword">if</span> isempty(CommonNamesTotal)
1920130             NewCommonName = <span class="string">' '</span>;
1930131             ErrorFlag = ErrorFlag + 1;
1940132         <span class="keyword">else</span>
1950133             NewCommonName = CommonNamesTotal(k,:);
1960134         <span class="keyword">end</span>
1970135     <span class="keyword">else</span>
1980136         NewCommonName = <span class="string">' '</span>;
1990137         ErrorFlag = ErrorFlag + 1;
2000138     <span class="keyword">end</span>
2010139     CommonNames = strvcat(CommonNames, NewCommonName);
2020140 <span class="keyword">end</span>
2030141
2040142 CommonNames = deblank(CommonNames);</pre></div>
205<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>
206</body>
207</html>
Note: See TracBrowser for help on using the repository browser.