source: MML/trunk/mml/doc_html/mml/switch2online.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.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 switch2online</title>
6  <meta name="keywords" content="switch2online">
7  <meta name="description" content="SWITCH2ONLINE - Switch family to online mode">
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; switch2online.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>switch2online
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>SWITCH2ONLINE - Switch family to online mode</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 ErrorFlag = switch2online(Family, DisplayFlag) </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">SWITCH2ONLINE - Switch family to online mode
31                If a SpecialFunction exist, then the mode is set to special.
32                If the family is in manual, then the mode is not changed.
33
34   ErrorFlag = switch2online(Family)
35
36  INPUTS
37  1. Family - Family name string
38            Matrix of family name strings
39            Cell array of family name strings
40            {Default: All families}
41  2. DisplayFlag - 0 No Display
42                   1 Display {default}
43
44  OUTPUTS
45  1. ErrorFlag - Number of errors that occurred
46
47  See Also <a href="switch2sim.html" class="code" title="function ErrorFlag = switch2sim(Family, DisplayFlag)">switch2sim</a>, <a href="switch2manual.html" class="code" title="function ErrorFlag = switch2manual(Family)">switch2manual</a></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="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><li><a href="setfamilydata.html" class="code" title="function setfamilydata(Data, Family, Field1, Field2, DeviceList)">setfamilydata</a>     SETFAMILYDATA - Sets data associated with accelerator control</li></ul>
54This function is called by:
55<ul style="list-style-image:url(../matlabicon.gif)">
56<li><a href="switchmode.html" class="code" title="function Mode = switchmode(varargin)">switchmode</a>  SWITCHMODE - Change the mode field for all families in the MML</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 ErrorFlag = switch2online(Family, DisplayFlag)</a>
620002 <span class="comment">%SWITCH2ONLINE - Switch family to online mode</span>
630003 <span class="comment">%                If a SpecialFunction exist, then the mode is set to special.</span>
640004 <span class="comment">%                If the family is in manual, then the mode is not changed.</span>
650005 <span class="comment">%</span>
660006 <span class="comment">%   ErrorFlag = switch2online(Family)</span>
670007 <span class="comment">%</span>
680008 <span class="comment">%  INPUTS</span>
690009 <span class="comment">%  1. Family - Family name string</span>
700010 <span class="comment">%            Matrix of family name strings</span>
710011 <span class="comment">%            Cell array of family name strings</span>
720012 <span class="comment">%            {Default: All families}</span>
730013 <span class="comment">%  2. DisplayFlag - 0 No Display</span>
740014 <span class="comment">%                   1 Display {default}</span>
750015 <span class="comment">%</span>
760016 <span class="comment">%  OUTPUTS</span>
770017 <span class="comment">%  1. ErrorFlag - Number of errors that occurred</span>
780018 <span class="comment">%</span>
790019 <span class="comment">%  See Also switch2sim, switch2manual</span>
800020
810021 <span class="comment">%</span>
820022 <span class="comment">%   Written by Gregory J. Portmann</span>
830023
840024
850025 ErrorFlag = 0;
860026 SpecialCount = 0;
870027 ManualCount = 0;
880028
890029 <span class="keyword">if</span> nargin == 0
900030     Family = <span class="string">''</span>;
910031 <span class="keyword">end</span>
920032 <span class="keyword">if</span> isempty(Family)
930033     Family = <a href="getfamilylist.html" class="code" title="function  [Families, AO] = getfamilylist(OutputFlag)">getfamilylist</a>;
940034 <span class="keyword">end</span>
950035 <span class="keyword">if</span> nargin &lt; 2
960036     DisplayFlag = 1;
970037 <span class="keyword">end</span>
980038
990039
1000040 <span class="keyword">if</span> ischar(Family)
1010041     <span class="keyword">for</span> i = 1:size(Family,1)
1020042         FamilyNameCell(i) = {deblank(Family(i,:))};
1030043     <span class="keyword">end</span>
1040044 <span class="keyword">elseif</span> iscell(Family)
1050045     FamilyNameCell = Family;
1060046 <span class="keyword">else</span>
1070047     error(<span class="string">'Familyname input must be empty, a string matrix, or a cell array of strings'</span>);
1080048 <span class="keyword">end</span>
1090049
1100050
1110051 <span class="keyword">for</span> i = 1:length(FamilyNameCell)
1120052     AOFamily = <a href="getfamilydata.html" class="code" title="function [Data, ErrorFlag] = getfamilydata(Family, Field1, Field2, DeviceList)">getfamilydata</a>(FamilyNameCell{i});
1130053     ManualFlag = 0;
1140054     SpecialFlag = 0;
1150055     <span class="keyword">try</span>
1160056         AllFields = fieldnames(AOFamily);
1170057         <span class="keyword">for</span> j = 1:length(AllFields)
1180058             <span class="keyword">if</span> isfield(AOFamily.(AllFields{j}),<span class="string">'Mode'</span>)
1190059                 <span class="keyword">if</span> isfield(AOFamily.(AllFields{j}), <span class="string">'SpecialFunction'</span>) <span class="comment">% | isfield(AOFamily.(AllFields{j}), 'SpecialFunctionGet') | isfield(AOFamily.(AllFields{j}), 'SpecialFunctionSet')</span>
1200060                     <a href="setfamilydata.html" class="code" title="function setfamilydata(Data, Family, Field1, Field2, DeviceList)">setfamilydata</a>(<span class="string">'Special'</span>, AOFamily.FamilyName, AllFields{j}, <span class="string">'Mode'</span>);
1210061                     SpecialFlag = SpecialFlag + 1;
1220062                 <span class="keyword">elseif</span> strcmpi(AOFamily.(AllFields{j}).Mode,<span class="string">'Manual'</span>)
1230063                     <span class="comment">% No change</span>
1240064                     ManualFlag = ManualFlag + 1;
1250065                 <span class="keyword">else</span>
1260066                     <a href="setfamilydata.html" class="code" title="function setfamilydata(Data, Family, Field1, Field2, DeviceList)">setfamilydata</a>(<span class="string">'Online'</span>, AOFamily.FamilyName, AllFields{j}, <span class="string">'Mode'</span>);
1270067                 <span class="keyword">end</span>
1280068             <span class="keyword">end</span>
1290069         <span class="keyword">end</span>
1300070     <span class="keyword">catch</span>
1310071         ErrorFlag = ErrorFlag + 1;
1320072         fprintf(<span class="string">'   Error switching %s family to online mode, hence ignored (switch2online)\n'</span>, FamilyNameCell{i});       
1330073     <span class="keyword">end</span>
1340074     <span class="keyword">if</span> SpecialFlag
1350075         SpecialCount = SpecialCount + 1;
1360076     <span class="keyword">end</span>
1370077     <span class="keyword">if</span> ManualFlag
1380078         ManualCount = ManualCount + 1;
1390079     <span class="keyword">end</span>
1400080 <span class="keyword">end</span>
1410081
1420082
1430083 <span class="keyword">if</span> ~ErrorFlag
1440084     <span class="keyword">if</span> length(FamilyNameCell)==1 &amp;&amp; ManualCount==0 &amp;&amp; SpecialCount==0
1450085         <span class="keyword">if</span> DisplayFlag
1460086             fprintf(<span class="string">'   Switched %s family to online mode (%s)\n'</span>, FamilyNameCell{1}, datestr(clock,0));
1470087         <span class="keyword">end</span>
1480088     <span class="keyword">else</span>
1490089         <span class="keyword">if</span> DisplayFlag
1500090             fprintf(<span class="string">'   Switched %d families to online mode (%s)\n'</span>, length(FamilyNameCell)-ErrorFlag-ManualCount-SpecialCount, datestr(clock,0));
1510091         <span class="keyword">end</span>
1520092         <span class="keyword">if</span> SpecialCount == 1
1530093             <span class="keyword">if</span> DisplayFlag
1540094                 fprintf(<span class="string">'   Switched %d family to special mode (%s)\n'</span>, SpecialCount, datestr(clock,0));
1550095             <span class="keyword">end</span>
1560096         <span class="keyword">elseif</span> SpecialCount &gt; 1
1570097             <span class="keyword">if</span> DisplayFlag
1580098                 fprintf(<span class="string">'   Switched %d families to special mode (%s)\n'</span>, SpecialCount, datestr(clock,0));
1590099             <span class="keyword">end</span>
1600100         <span class="keyword">end</span>
1610101         <span class="keyword">if</span> ManualCount == 1
1620102             <span class="keyword">if</span> DisplayFlag
1630103                 fprintf(<span class="string">'   %d family stayed in manual mode (%s)\n'</span>, ManualCount, datestr(clock,0));
1640104             <span class="keyword">end</span>
1650105         <span class="keyword">elseif</span> ManualCount &gt; 1
1660106             <span class="keyword">if</span> DisplayFlag
1670107                 fprintf(<span class="string">'   %d families stayed in manual mode (%s)\n'</span>, ManualCount, datestr(clock,0));
1680108             <span class="keyword">end</span>
1690109         <span class="keyword">end</span>
1700110     <span class="keyword">end</span>
1710111 <span class="keyword">end</span>
1720112
1730113
1740114
1750115 <span class="comment">% % Setup for LabCA only</span>
1760116 <span class="comment">% try</span>
1770117 <span class="comment">%     if exist('lcaSetRetryCount','file')</span>
1780118 <span class="comment">%         % read dummy pv to initialize labca</span>
1790119 <span class="comment">%         % ChannelName = family2channel('BPMx');</span>
1800120 <span class="comment">%         % lcaGet(family2channel(ChannelName(1,:));</span>
1810121 <span class="comment">%</span>
1820122 <span class="comment">%         % Retry count</span>
1830123 <span class="comment">%         RetryCountNew = 599*3;  % Default was 599</span>
1840124 <span class="comment">%         RetryCount = lcaGetRetryCount;</span>
1850125 <span class="comment">%         lcaSetRetryCount(RetryCountNew);</span>
1860126 <span class="comment">%         if RetryCount ~= RetryCountNew</span>
1870127 <span class="comment">%             fprintf('   Setting LabCA retry count to %d (was %d)\n', RetryCountNew, RetryCount);</span>
1880128 <span class="comment">%         end</span>
1890129 <span class="comment">%</span>
1900130 <span class="comment">%         % Timeout</span>
1910131 <span class="comment">%         TimeoutNew = .01;  % Default was .05</span>
1920132 <span class="comment">%         Timeout = lcaGetTimeout;</span>
1930133 <span class="comment">%         lcaSetTimeout(TimeoutNew);</span>
1940134 <span class="comment">%         if abs(Timeout - TimeoutNew) &gt; 1e-5</span>
1950135 <span class="comment">%             fprintf('   Setting LabCA TimeOut to %f (was %f)\n', TimeoutNew, Timeout);</span>
1960136 <span class="comment">%         end</span>
1970137 <span class="comment">%     end</span>
1980138 <span class="comment">% catch</span>
1990139 <span class="comment">%     fprintf('   LabCA Timeout not set, need to run lcaSetRetryCount(1800) lcaSetTimeout(.01).\n');</span>
2000140 <span class="comment">% end</span>
2010141</pre></div>
202<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>
203</body>
204</html>
Note: See TracBrowser for help on using the repository browser.