source: MML/trunk/mml/doc_html/mml/setrf.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: 14.7 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 setrf</title>
6  <meta name="keywords" content="setrf">
7  <meta name="description" content="SETRF - Sets the RF frequency">
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; setrf.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>setrf
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>SETRF - Sets the RF frequency</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 setrf(RF, 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">SETRF - Sets the RF frequency
31  setrf(RF, WaitFlag)
32
33  INPUTS
34  1. RF - RF frequency
35  2. WaitFlag = 0    -&gt; return immediately {SLAC default}
36                &gt; 0  -&gt; wait until ramping is done then adds an extra delay equal to WaitFlag
37                = -1 -&gt; wait until ramping is done
38                = -2 -&gt; wait until ramping is done then adds an extra delay for fresh data
39                        from the BPMs  {ALS default}
40                = -3 -&gt; wait until ramping is done then adds an extra delay for fresh data
41                        from the tune measurement system
42                = -4 -&gt; wait until ramping is done then wait for a carriage return
43  3. 'Physics'  - Use physics  units (optional override of units)
44     'Hardware' - Use hardware units (optional override of units)
45     The actual physics or hardware strings can also be used. 
46     For example, if the physics and hardware modes corresponds
47     to Hz and MHz then strings 'Hz' or 'MHz' can be used to specify units.
48  4. 'Online' - Set data online (optional override of the mode)
49     'Model'  - Set data on the model (optional override of the mode)
50     'Manual' - Set data manually (optional override of the mode)
51
52  setrf converts a string input to a number, hence, setrf 476.3 is the same as setrf(476.3)
53
54  EXAMPES
55  1. setrf(476, 'MHz')  or  setrf 476 MHz  =&gt; sets the RF frequency 476 KHz
56  2. setrf 476000000 Hz                    =&gt; sets the RF frequency 476 KHz
57
58  NOTES
59  1. 'Hardware', 'Physics', 'MHz', 'Hz', 'Numeric', and 'Struct' are not case sensitive
60  2. The length(RFam) will equal the number of cavities in the ring
61
62  Written by Greg Portmann</pre></div>
63
64<!-- crossreference -->
65<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
66This function calls:
67<ul style="list-style-image:url(../matlabicon.gif)">
68<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="setpv.html" class="code" title="function ErrorFlag = setpv(varargin)">setpv</a>      SETPV - Setpoint change of the online system or model</li></ul>
69This function is called by:
70<ul style="list-style-image:url(../matlabicon.gif)">
71<li><a href="findrf1.html" class="code" title="function [DeltaRF, RFnew, frf] = findrf1(DeltaRF, BPMFamily, BPMList, FileName)">findrf1</a>     FINDRF1 - Finds the RF frequency that minimizes the horizonal dispersion</li><li><a href="measchro.html" class="code" title="function [Chromaticity, FileName] = measchro(varargin)">measchro</a>       MEASCHRO -  measures the chromaticity function emperically</li><li><a href="steprf.html" class="code" title="function steprf(varargin)">steprf</a>      STEPRF - Increment change in the RF frequency</li></ul>
72<!-- crossreference -->
73
74
75<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
76<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function setrf(RF, varargin)</a>
770002 <span class="comment">%SETRF - Sets the RF frequency</span>
780003 <span class="comment">%  setrf(RF, WaitFlag)</span>
790004 <span class="comment">%</span>
800005 <span class="comment">%  INPUTS</span>
810006 <span class="comment">%  1. RF - RF frequency</span>
820007 <span class="comment">%  2. WaitFlag = 0    -&gt; return immediately {SLAC default}</span>
830008 <span class="comment">%                &gt; 0  -&gt; wait until ramping is done then adds an extra delay equal to WaitFlag</span>
840009 <span class="comment">%                = -1 -&gt; wait until ramping is done</span>
850010 <span class="comment">%                = -2 -&gt; wait until ramping is done then adds an extra delay for fresh data</span>
860011 <span class="comment">%                        from the BPMs  {ALS default}</span>
870012 <span class="comment">%                = -3 -&gt; wait until ramping is done then adds an extra delay for fresh data</span>
880013 <span class="comment">%                        from the tune measurement system</span>
890014 <span class="comment">%                = -4 -&gt; wait until ramping is done then wait for a carriage return</span>
900015 <span class="comment">%  3. 'Physics'  - Use physics  units (optional override of units)</span>
910016 <span class="comment">%     'Hardware' - Use hardware units (optional override of units)</span>
920017 <span class="comment">%     The actual physics or hardware strings can also be used.</span>
930018 <span class="comment">%     For example, if the physics and hardware modes corresponds</span>
940019 <span class="comment">%     to Hz and MHz then strings 'Hz' or 'MHz' can be used to specify units.</span>
950020 <span class="comment">%  4. 'Online' - Set data online (optional override of the mode)</span>
960021 <span class="comment">%     'Model'  - Set data on the model (optional override of the mode)</span>
970022 <span class="comment">%     'Manual' - Set data manually (optional override of the mode)</span>
980023 <span class="comment">%</span>
990024 <span class="comment">%  setrf converts a string input to a number, hence, setrf 476.3 is the same as setrf(476.3)</span>
1000025 <span class="comment">%</span>
1010026 <span class="comment">%  EXAMPES</span>
1020027 <span class="comment">%  1. setrf(476, 'MHz')  or  setrf 476 MHz  =&gt; sets the RF frequency 476 KHz</span>
1030028 <span class="comment">%  2. setrf 476000000 Hz                    =&gt; sets the RF frequency 476 KHz</span>
1040029 <span class="comment">%</span>
1050030 <span class="comment">%  NOTES</span>
1060031 <span class="comment">%  1. 'Hardware', 'Physics', 'MHz', 'Hz', 'Numeric', and 'Struct' are not case sensitive</span>
1070032 <span class="comment">%  2. The length(RFam) will equal the number of cavities in the ring</span>
1080033 <span class="comment">%</span>
1090034 <span class="comment">%  Written by Greg Portmann</span>
1100035
1110036
1120037 <span class="keyword">if</span> nargin &lt; 1
1130038     error(<span class="string">'No RF frequency input'</span>)
1140039 <span class="keyword">end</span>
1150040 <span class="keyword">if</span> ischar(RF)
1160041     RF = str2num(RF);
1170042 <span class="keyword">end</span>
1180043
1190044 WaitFlag = [];
1200045
1210046
1220047 <span class="comment">% Allow actual units for conversions</span>
1230048 HWUnits      = <a href="getfamilydata.html" class="code" title="function [Data, ErrorFlag] = getfamilydata(Family, Field1, Field2, DeviceList)">getfamilydata</a>(<span class="string">'RF'</span>,<span class="string">'Setpoint'</span>,<span class="string">'HWUnits'</span>);
1240049 PhysicsUnits = <a href="getfamilydata.html" class="code" title="function [Data, ErrorFlag] = getfamilydata(Family, Field1, Field2, DeviceList)">getfamilydata</a>(<span class="string">'RF'</span>,<span class="string">'Setpoint'</span>,<span class="string">'PhysicsUnits'</span>);
1250050
1260051
1270052 <span class="comment">% Input line search</span>
1280053 <span class="keyword">for</span> i = length(varargin):-1:1
1290054     <span class="keyword">if</span> strcmpi(varargin{i}, <span class="string">'Struct'</span>)
1300055         <span class="comment">% Pass input thru to setpv</span>
1310056     <span class="keyword">elseif</span> strcmpi(varargin{i}, <span class="string">'Numeric'</span>)
1320057         <span class="comment">% Pass input thru to setpv</span>
1330058     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'simulator'</span>) || strcmpi(varargin{i},<span class="string">'model'</span>)
1340059         <span class="comment">% Pass input thru to setpv</span>
1350060     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'online'</span>)
1360061         <span class="comment">% Pass input thru to setpv</span>
1370062     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'manual'</span>)
1380063         <span class="comment">% Pass input thru to setpv</span>
1390064     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'Inc'</span>) || strcmpi(varargin{i},<span class="string">'Incremental'</span>)
1400065         <span class="comment">% Pass input thru to setpv</span>
1410066         IncrementalFlag = 1;
1420067     <span class="keyword">elseif</span> strcmpi(varargin{i}, <span class="string">'Physics'</span>) || strcmpi(varargin{i}, PhysicsUnits)
1430068         varargin{i} = <span class="string">'Physics'</span>;
1440069     <span class="keyword">elseif</span> strcmpi(varargin{i}, <span class="string">'Hardware'</span>) || strcmpi(varargin{i}, HWUnits)
1450070         varargin{i} = <span class="string">'Hardware'</span>;
1460071     <span class="keyword">elseif</span> isnumeric(varargin{i})
1470072         WaitFlag = varargin{i};
1480073         varargin(i) = [];
1490074     <span class="keyword">else</span>
1500075         <span class="keyword">if</span> ~isempty(varargin{i})
1510076             <span class="keyword">if</span> ischar(varargin{i})
1520077                 fprintf(<span class="string">'   Input ''%s'' ignored'</span>, varargin{i});
1530078             <span class="keyword">else</span>
1540079                 fprintf(<span class="string">'   Input ''%f'' ignored'</span>, varargin{i});
1550080             <span class="keyword">end</span>
1560081         <span class="keyword">end</span>
1570082         varargin(i) = [];
1580083     <span class="keyword">end</span>
1590084 <span class="keyword">end</span>
1600085
1610086
1620087 <span class="comment">% Set RF</span>
1630088 <span class="keyword">if</span> isstruct(RF)
1640089     <a href="setpv.html" class="code" title="function ErrorFlag = setpv(varargin)">setpv</a>(RF, WaitFlag, varargin{:});
1650090 <span class="keyword">else</span>
1660091     <a href="setpv.html" class="code" title="function ErrorFlag = setpv(varargin)">setpv</a>(<span class="string">'RF'</span>, <span class="string">'Setpoint'</span>, RF, [], WaitFlag, varargin{:});
1670092 <span class="keyword">end</span>
1680093
1690094
1700095
1710096
1720097
1730098 <span class="comment">% % Used for conversions</span>
1740099 <span class="comment">% Units        = getfamilydata('RF','Setpoint','Units');</span>
1750100 <span class="comment">% HWUnits      = getfamilydata('RF','Setpoint','HWUnits');</span>
1760101 <span class="comment">% PhysicsUnits = getfamilydata('RF','Setpoint','PhysicsUnits');</span>
1770102 <span class="comment">%</span>
1780103 <span class="comment">%</span>
1790104 <span class="comment">% % Input line search (if not a data structure)</span>
1800105 <span class="comment">% if isstruct(RF)</span>
1810106 <span class="comment">%     UnitsInput = RF.Units;</span>
1820107 <span class="comment">%     UnitsString = RF.UnitsString;</span>
1830108 <span class="comment">%     RF = RF.Data;</span>
1840109 <span class="comment">% else</span>
1850110 <span class="comment">%     UnitsInput = '';</span>
1860111 <span class="comment">%     for i = length(varargin):-1:1</span>
1870112 <span class="comment">%         if strcmpi(varargin{i}, 'Physics') | strcmpi(varargin{i}, PhysicsUnits)</span>
1880113 <span class="comment">%             UnitsInput = 'Physics';</span>
1890114 <span class="comment">%         elseif strcmpi(varargin{i}, 'Hardware') | strcmpi(varargin{i}, HWUnits)</span>
1900115 <span class="comment">%             UnitsInput = 'Hardware';</span>
1910116 <span class="comment">%         else</span>
1920117 <span class="comment">%             if ~isempty(varargin{i})</span>
1930118 <span class="comment">%                 if ischar(varargin{i})</span>
1940119 <span class="comment">%                     fprintf('   Input %s ignored', varargin{i});</span>
1950120 <span class="comment">%                 else</span>
1960121 <span class="comment">%                     fprintf('   Input %f ignored', varargin{i});</span>
1970122 <span class="comment">%                 end</span>
1980123 <span class="comment">%             end</span>
1990124 <span class="comment">%         end</span>
2000125 <span class="comment">%         varargin(i) = [];</span>
2010126 <span class="comment">%     end</span>
2020127 <span class="comment">% end</span>
2030128 <span class="comment">%</span>
2040129 <span class="comment">% % Convert units if necessary</span>
2050130 <span class="comment">% if ~isempty(UnitsInput)</span>
2060131 <span class="comment">%     % 'Physics', 'Hardware', 'Hz', or 'Mz' was input</span>
2070132 <span class="comment">%     if strcmpi(UnitsInput, 'Physics') &amp; strcmpi(Units, 'Hardware')</span>
2080133 <span class="comment">%         RF = physics2hw('RF', 'Setpoint', RF);</span>
2090134 <span class="comment">%     elseif strcmpi(UnitsInput, 'Physics') &amp; strcmpi(Units, 'Physics')</span>
2100135 <span class="comment">%         % OK as is</span>
2110136 <span class="comment">%     elseif strcmpi(UnitsInput, 'Hardware') &amp; strcmpi(Units, 'Physics')</span>
2120137 <span class="comment">%         RF = hw2physics('RF', 'Setpoint', RF);</span>
2130138 <span class="comment">%     elseif strcmpi(UnitsInput, 'Hardware') &amp; strcmpi(Units, 'Hardware')</span>
2140139 <span class="comment">%         % OK as is</span>
2150140 <span class="comment">%     else</span>
2160141 <span class="comment">%         error(sprintf('&quot;%s&quot; units are an unknown type, hence no change to the RF frequency', UnitsInput));</span>
2170142 <span class="comment">%     end</span>
2180143 <span class="comment">% end</span>
2190144 <span class="comment">%</span>
2200145 <span class="comment">%</span>
2210146 <span class="comment">% setsp('RF', RF);</span></pre></div>
222<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>
223</body>
224</html>
Note: See TracBrowser for help on using the repository browser.