source: epicsdf/doc/build/html/src/epicsdf.html @ 603

Last change on this file since 603 was 603, checked in by jemian, 12 years ago

revise the documentation further and test that it comes up correctly from the SVN repo

  • Property svn:executable set to *
  • Property svn:mime-type set to text/html
File size: 26.2 KB
Line 
1
2
3<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
6<html xmlns="http://www.w3.org/1999/xhtml">
7  <head>
8    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9   
10    <title>epicsdf: EPICS diskfree, in python &mdash; epicsdf v1.0 documentation</title>
11    <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" />
12    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
13    <script type="text/javascript">
14      var DOCUMENTATION_OPTIONS = {
15        URL_ROOT:    '../',
16        VERSION:     '1.0',
17        COLLAPSE_INDEX: false,
18        FILE_SUFFIX: '.html',
19        HAS_SOURCE:  true
20      };
21    </script>
22    <script type="text/javascript" src="../_static/jquery.js"></script>
23    <script type="text/javascript" src="../_static/underscore.js"></script>
24    <script type="text/javascript" src="../_static/doctools.js"></script>
25    <link rel="top" title="epicsdf v1.0 documentation" href="../index.html" />
26    <link rel="up" title="Source code documentation" href="index.html" />
27    <link rel="prev" title="Source code documentation" href="index.html" /> 
28  </head>
29  <body>
30    <div class="related">
31      <h3>Navigation</h3>
32      <ul>
33        <li class="right" style="margin-right: 10px">
34          <a href="../genindex.html" title="General Index"
35             accesskey="I">index</a></li>
36        <li class="right" >
37          <a href="../py-modindex.html" title="Python Module Index"
38             >modules</a> |</li>
39        <li class="right" >
40          <a href="index.html" title="Source code documentation"
41             accesskey="P">previous</a> |</li>
42        <li><a href="../index.html">epicsdf v1.0 documentation</a> &raquo;</li>
43          <li><a href="../contents.html" >Contents</a> &raquo;</li>
44          <li><a href="index.html" accesskey="U">Source code documentation</a> &raquo;</li> 
45      </ul>
46    </div>
47      <div class="sphinxsidebar">
48        <div class="sphinxsidebarwrapper">
49  <h4>Previous topic</h4>
50  <p class="topless"><a href="index.html"
51                        title="previous chapter">Source code documentation</a></p>
52  <h3>This Page</h3>
53  <ul class="this-page-menu">
54    <li><a href="../_sources/src/epicsdf.txt"
55           rel="nofollow">Show Source</a></li>
56  </ul>
57<div id="searchbox" style="display: none">
58  <h3>Quick search</h3>
59    <form class="search" action="../search.html" method="get">
60      <input type="text" name="q" size="18" />
61      <input type="submit" value="Go" />
62      <input type="hidden" name="check_keywords" value="yes" />
63      <input type="hidden" name="area" value="default" />
64    </form>
65    <p class="searchtip" style="font-size: 90%">
66    Enter search terms or a module, class or function name.
67    </p>
68</div>
69<script type="text/javascript">$('#searchbox').show(0);</script>
70        </div>
71      </div>
72
73    <div class="document">
74      <div class="documentwrapper">
75        <div class="bodywrapper">
76          <div class="body">
77           
78  <div class="section" id="epicsdf-epics-diskfree-in-python">
79<h1><a class="reference internal" href="#module-epicsdf" title="epicsdf: diskfree, in python"><tt class="xref py py-mod docutils literal"><span class="pre">epicsdf</span></tt></a>: EPICS diskfree, in python<a class="headerlink" href="#epicsdf-epics-diskfree-in-python" title="Permalink to this headline">¶</a></h1>
80<p>The <a class="reference internal" href="#module-epicsdf" title="epicsdf: diskfree, in python"><tt class="xref py py-mod docutils literal"><span class="pre">epicsdf</span></tt></a> module watches a disk partition and periodically reports
81information to EPICS PVs.
82The <tt class="xref py py-func docutils literal"><span class="pre">epicsdf.run()</span></tt> function is used to run the background job.
83The <tt class="xref py py-func docutils literal"><span class="pre">epicsdf.df_demo()</span></tt> function gives
84a demonstration of one possible, alternative use.</p>
85<span class="target" id="module-epicsdf"></span><p>EPICS client diskfree, in python</p>
86<dl class="class">
87<dt id="epicsdf.epicsdf">
88<em class="property">class </em><tt class="descclassname">epicsdf.</tt><tt class="descname">epicsdf</tt><big>(</big><em>prefix</em><big>)</big><a class="reference internal" href="../_modules/epicsdf.html#epicsdf"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#epicsdf.epicsdf" title="Permalink to this definition">¶</a></dt>
89<dd><p>Connect to a support database of epicsdf and
90watch the indicated disk partition.  Report the values
91to EPICS and watch for an alarm. Send an email when the
92alarm calcout PV changes.</p>
93<table class="docutils field-list" frame="void" rules="none">
94<col class="field-name" />
95<col class="field-body" />
96<tbody valign="top">
97<tr class="field"><th class="field-name">Parameters:</th><td class="field-body"><strong>prefix</strong> (<em>str</em>) &#8211; prefix of EPICS support database instance
98(will not be changed after constructor)</td>
99</tr>
100<tr class="field"><th class="field-name">Note :</th><td class="field-body">Some PV values in the support database are needed
101to construct the text of the email
102or the mailing list.  Since it is not allowed to call caget
103during a camonitor callback, we need to monitor them and
104cache the values for use in the callback.</td>
105</tr>
106</tbody>
107</table>
108<p>Usage:</p>
109<p>There are only three methods in this class that should be called
110from the outside.  All others methods are used internally.</p>
111<p><a class="reference internal" href="#epicsdf.epicsdf.run" title="epicsdf.epicsdf.run"><tt class="xref py py-meth docutils literal"><span class="pre">run()</span></tt></a> for routine use:</p>
112<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">epicsdf</span> <span class="kn">import</span> <span class="n">epicsdf</span>
113<span class="n">df</span> <span class="o">=</span> <span class="n">epicsdf</span><span class="p">(</span><span class="s">&#39;prj:p300:df:&#39;</span><span class="p">)</span>  <span class="c"># construct it</span>
114<span class="n">df</span><span class="o">.</span><span class="n">run</span><span class="p">()</span>                      <span class="c"># run forever</span>
115</pre></div>
116</div>
117<p><a class="reference internal" href="#epicsdf.epicsdf.demo" title="epicsdf.epicsdf.demo"><tt class="xref py py-meth docutils literal"><span class="pre">demo()</span></tt></a> for code development:</p>
118<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">epicsdf</span> <span class="kn">import</span> <span class="n">epicsdf</span>
119<span class="n">df</span> <span class="o">=</span> <span class="n">epicsdf</span><span class="p">(</span><span class="s">&#39;prj:p300:df:&#39;</span><span class="p">)</span>  <span class="c"># construct it</span>
120<span class="n">df</span><span class="o">.</span><span class="n">demo</span><span class="p">()</span>                     <span class="c"># display a list of partitions</span>
121</pre></div>
122</div>
123<p><a class="reference internal" href="#epicsdf.epicsdf.df2epics" title="epicsdf.epicsdf.df2epics"><tt class="xref py py-meth docutils literal"><span class="pre">df2epics()</span></tt></a> could be called for one-off use:</p>
124<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">epicsdf</span> <span class="kn">import</span> <span class="n">epicsdf</span>
125<span class="n">df</span> <span class="o">=</span> <span class="n">epicsdf</span><span class="p">(</span><span class="s">&#39;prj:p300:df:&#39;</span><span class="p">)</span>  <span class="c"># construct it</span>
126<span class="n">df</span><span class="o">.</span><span class="n">df2epics</span><span class="p">()</span>                 <span class="c"># update once</span>
127</pre></div>
128</div>
129<dl class="method">
130<dt id="epicsdf.epicsdf.caget">
131<tt class="descname">caget</tt><big>(</big><em>item</em><big>)</big><a class="reference internal" href="../_modules/epicsdf.html#epicsdf.caget"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#epicsdf.epicsdf.caget" title="Permalink to this definition">¶</a></dt>
132<dd><table class="docutils field-list" frame="void" rules="none">
133<col class="field-name" />
134<col class="field-body" />
135<tbody valign="top">
136<tr class="field"><th class="field-name">Parameters:</th><td class="field-body"><strong>item</strong> (<em>str</em>) &#8211; name of item in support database</td>
137</tr>
138<tr class="field"><th class="field-name">Returns:</th><td class="field-body">value of EPICS PV within our support database</td>
139</tr>
140</tbody>
141</table>
142</dd></dl>
143
144<dl class="method">
145<dt id="epicsdf.epicsdf.caput">
146<tt class="descname">caput</tt><big>(</big><em>item</em>, <em>value</em><big>)</big><a class="reference internal" href="../_modules/epicsdf.html#epicsdf.caput"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#epicsdf.epicsdf.caput" title="Permalink to this definition">¶</a></dt>
147<dd><table class="docutils field-list" frame="void" rules="none">
148<col class="field-name" />
149<col class="field-body" />
150<tbody valign="top">
151<tr class="field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
152<li><strong>item</strong> (<em>str</em>) &#8211; name of item in support database</li>
153<li><strong>value</strong> &#8211; new value of item</li>
154</ul>
155</td>
156</tr>
157</tbody>
158</table>
159</dd></dl>
160
161<dl class="method">
162<dt id="epicsdf.epicsdf.demo">
163<tt class="descname">demo</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/epicsdf.html#epicsdf.demo"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#epicsdf.epicsdf.demo" title="Permalink to this definition">¶</a></dt>
164<dd><p>demonstrate one possible use of this code,
165to replicate the UNIX df command:</p>
166<div class="highlight-python"><pre>[jemian@gov,402,src]$ ./epicsdf.py
167       total         free    available    use%
168214748364800  42878369792  42878369792   80.0% .
169 20803424256  10699845632   9626038272   53.7% /
170   103512064     68733952     63389696   38.8% /boot
171  1936355328   1936334848   1936334848    0.0% /dev/shm
172215406047232 184723456000 173604937728   19.4% /local
173 20803424256  10699845632   9626038272   53.7% /tmp</pre>
174</div>
175</dd></dl>
176
177<dl class="method">
178<dt id="epicsdf.epicsdf.df">
179<tt class="descname">df</tt><big>(</big><em>newdisk=None</em><big>)</big><a class="reference internal" href="../_modules/epicsdf.html#epicsdf.df"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#epicsdf.epicsdf.df" title="Permalink to this definition">¶</a></dt>
180<dd><p>Determine the available space of a (disk) partition,
181Report the results in a dictionary.</p>
182<table class="docutils field-list" frame="void" rules="none">
183<col class="field-name" />
184<col class="field-body" />
185<tbody valign="top">
186<tr class="field"><th class="field-name">Parameters:</th><td class="field-body"><strong>newdisk</strong> (<em>str</em>) &#8211; name of disk to examine (will replace self.disk if not None)</td>
187</tr>
188<tr class="field"><th class="field-name">Returns:</th><td class="field-body">dictionary or None if partition does not exist or zero values</td>
189</tr>
190<tr class="field"><th class="field-name">Return type:</th><td class="field-body">dict</td>
191</tr>
192</tbody>
193</table>
194<table border="1" class="docutils">
195<colgroup>
196<col width="24%" />
197<col width="14%" />
198<col width="62%" />
199</colgroup>
200<thead valign="bottom">
201<tr><th class="head">index</th>
202<th class="head">units</th>
203<th class="head">description</th>
204</tr>
205</thead>
206<tbody valign="top">
207<tr><td>total</td>
208<td>bytes</td>
209<td>total space on the partition</td>
210</tr>
211<tr><td>free</td>
212<td>bytes</td>
213<td>free space</td>
214</tr>
215<tr><td>avail</td>
216<td>bytes</td>
217<td>available space</td>
218</tr>
219<tr><td>used</td>
220<td>bytes</td>
221<td>total - avail</td>
222</tr>
223<tr><td>%free</td>
224<td>%</td>
225<td><img src="../_images\mathmpl/math-e604e1119d.png" style="position: relative; bottom: -8px"/></td>
226</tr>
227<tr><td>%avail</td>
228<td>%</td>
229<td><img src="../_images\mathmpl/math-6e9acb7536.png" style="position: relative; bottom: -8px"/></td>
230</tr>
231<tr><td>%used</td>
232<td>%</td>
233<td><img src="../_images\mathmpl/math-a2c104dbc9.png" style="position: relative; bottom: -4px"/></td>
234</tr>
235</tbody>
236</table>
237</dd></dl>
238
239<dl class="method">
240<dt id="epicsdf.epicsdf.df2epics">
241<tt class="descname">df2epics</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/epicsdf.html#epicsdf.df2epics"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#epicsdf.epicsdf.df2epics" title="Permalink to this definition">¶</a></dt>
242<dd><p>Examine a disk partition and if possible, push its info to EPICS.
243Get the partition name from the EPICS database.</p>
244<table class="docutils field-list" frame="void" rules="none">
245<col class="field-name" />
246<col class="field-body" />
247<tbody valign="top">
248<tr class="field"><th class="field-name">Returns:</th><td class="field-body">dictionary from <a class="reference internal" href="#epicsdf.epicsdf.df" title="epicsdf.epicsdf.df"><tt class="xref py py-meth docutils literal"><span class="pre">df()</span></tt></a> or None</td>
249</tr>
250<tr class="field"><th class="field-name">Return type:</th><td class="field-body">dict</td>
251</tr>
252</tbody>
253</table>
254</dd></dl>
255
256<dl class="method">
257<dt id="epicsdf.epicsdf.doPeriodicUpdate">
258<tt class="descname">doPeriodicUpdate</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/epicsdf.html#epicsdf.doPeriodicUpdate"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#epicsdf.epicsdf.doPeriodicUpdate" title="Permalink to this definition">¶</a></dt>
259<dd><p>Do the work of the periodic update,
260getting the results of <a class="reference internal" href="#epicsdf.epicsdf.df" title="epicsdf.epicsdf.df"><tt class="xref py py-meth docutils literal"><span class="pre">df()</span></tt></a> 
261(with <tt class="docutils literal"><span class="pre">self.disk</span></tt> as the argument)
262and pushing the values up to the EPICS PVs.
263Then, set the time of the next update.</p>
264<table class="docutils field-list" frame="void" rules="none">
265<col class="field-name" />
266<col class="field-body" />
267<tbody valign="top">
268<tr class="field"><th class="field-name">Note :</th><td class="field-body">Several PV changes can force an update to happen.
269See the on... methods (callback handlers) for details.</td>
270</tr>
271</tbody>
272</table>
273</dd></dl>
274
275<dl class="method">
276<dt id="epicsdf.epicsdf.getDisk">
277<tt class="descname">getDisk</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/epicsdf.html#epicsdf.getDisk"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#epicsdf.epicsdf.getDisk" title="Permalink to this definition">¶</a></dt>
278<dd><table class="docutils field-list" frame="void" rules="none">
279<col class="field-name" />
280<col class="field-body" />
281<tbody valign="top">
282<tr class="field"><th class="field-name">Returns:</th><td class="field-body">name of disk partition to be watched</td>
283</tr>
284<tr class="field"><th class="field-name">Return type:</th><td class="field-body">str</td>
285</tr>
286</tbody>
287</table>
288</dd></dl>
289
290<dl class="method">
291<dt id="epicsdf.epicsdf.isValidPeriod">
292<tt class="descname">isValidPeriod</tt><big>(</big><em>value</em><big>)</big><a class="reference internal" href="../_modules/epicsdf.html#epicsdf.isValidPeriod"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#epicsdf.epicsdf.isValidPeriod" title="Permalink to this definition">¶</a></dt>
293<dd><p>check that the given value is valid to be used as a period</p>
294<table class="docutils field-list" frame="void" rules="none">
295<col class="field-name" />
296<col class="field-body" />
297<tbody valign="top">
298<tr class="field"><th class="field-name">Parameters:</th><td class="field-body"><strong>value</strong> (<em>int or float</em>) &#8211; candidate value of period,
299must be 1.0 or greater AND an int or a float</td>
300</tr>
301<tr class="field"><th class="field-name">Return type:</th><td class="field-body">bool</td>
302</tr>
303</tbody>
304</table>
305</dd></dl>
306
307<dl class="method">
308<dt id="epicsdf.epicsdf.logger">
309<tt class="descname">logger</tt><big>(</big><em>message</em><big>)</big><a class="reference internal" href="../_modules/epicsdf.html#epicsdf.logger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#epicsdf.epicsdf.logger" title="Permalink to this definition">¶</a></dt>
310<dd><p>log a report from this class.</p>
311<table class="docutils field-list" frame="void" rules="none">
312<col class="field-name" />
313<col class="field-body" />
314<tbody valign="top">
315<tr class="field"><th class="field-name">Parameters:</th><td class="field-body"><strong>message</strong> (<em>str</em>) &#8211; words to be logged</td>
316</tr>
317</tbody>
318</table>
319</dd></dl>
320
321<dl class="method">
322<dt id="epicsdf.epicsdf.onAlarmPvChange">
323<tt class="descname">onAlarmPvChange</tt><big>(</big><em>pvname=None</em>, <em>value=None</em>, <em>host=None</em>, <em>**kws</em><big>)</big><a class="reference internal" href="../_modules/epicsdf.html#epicsdf.onAlarmPvChange"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#epicsdf.epicsdf.onAlarmPvChange" title="Permalink to this definition">¶</a></dt>
324<dd><p>callback handler:
325Respond to camonitor on the alarm PV.
326Trigger to send an email message.</p>
327<table class="docutils field-list" frame="void" rules="none">
328<col class="field-name" />
329<col class="field-body" />
330<tbody valign="top">
331<tr class="field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
332<li><strong>pvname</strong> (<em>str</em>) &#8211; monitored EPICS process variable name</li>
333<li><strong>value</strong> &#8211; value of EPICS process variable</li>
334<li><strong>host</strong> (<em>str</em>) &#8211; computer host name where the IOC resides</li>
335<li><strong>kws</strong> (<em>dict</em>) &#8211; PyEPICS keyword dictionary for callback functions</li>
336</ul>
337</td>
338</tr>
339</tbody>
340</table>
341</dd></dl>
342
343<dl class="method">
344<dt id="epicsdf.epicsdf.onDiskPvChange">
345<tt class="descname">onDiskPvChange</tt><big>(</big><em>pvname=None</em>, <em>value=None</em>, <em>host=None</em>, <em>**kws</em><big>)</big><a class="reference internal" href="../_modules/epicsdf.html#epicsdf.onDiskPvChange"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#epicsdf.epicsdf.onDiskPvChange" title="Permalink to this definition">¶</a></dt>
346<dd><p>callback handler:
347Respond to camonitor on the disk PV.</p>
348<table class="docutils field-list" frame="void" rules="none">
349<col class="field-name" />
350<col class="field-body" />
351<tbody valign="top">
352<tr class="field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
353<li><strong>pvname</strong> (<em>str</em>) &#8211; monitored EPICS process variable name</li>
354<li><strong>value</strong> &#8211; value of EPICS process variable</li>
355<li><strong>host</strong> (<em>str</em>) &#8211; computer host name where the IOC resides</li>
356<li><strong>kws</strong> (<em>dict</em>) &#8211; PyEPICS keyword dictionary for callback functions</li>
357</ul>
358</td>
359</tr>
360<tr class="field"><th class="field-name">Note :</th><td class="field-body"><p class="first last">An acceptable change of disk partition forces an update.</p>
361</td>
362</tr>
363</tbody>
364</table>
365</dd></dl>
366
367<dl class="method">
368<dt id="epicsdf.epicsdf.onEmailsPvChange">
369<tt class="descname">onEmailsPvChange</tt><big>(</big><em>pvname=None</em>, <em>value=None</em>, <em>host=None</em>, <em>**kws</em><big>)</big><a class="reference internal" href="../_modules/epicsdf.html#epicsdf.onEmailsPvChange"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#epicsdf.epicsdf.onEmailsPvChange" title="Permalink to this definition">¶</a></dt>
370<dd><p>callback handler:
371Respond to camonitor on the email_list PV.</p>
372<table class="docutils field-list" frame="void" rules="none">
373<col class="field-name" />
374<col class="field-body" />
375<tbody valign="top">
376<tr class="field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
377<li><strong>pvname</strong> (<em>str</em>) &#8211; monitored EPICS process variable name</li>
378<li><strong>value</strong> &#8211; value of EPICS process variable</li>
379<li><strong>host</strong> (<em>str</em>) &#8211; computer host name where the IOC resides</li>
380<li><strong>kws</strong> (<em>dict</em>) &#8211; PyEPICS keyword dictionary for callback functions</li>
381</ul>
382</td>
383</tr>
384</tbody>
385</table>
386</dd></dl>
387
388<dl class="method">
389<dt id="epicsdf.epicsdf.onMessagePvChange">
390<tt class="descname">onMessagePvChange</tt><big>(</big><em>pvname=None</em>, <em>value=None</em>, <em>host=None</em>, <em>**kws</em><big>)</big><a class="reference internal" href="../_modules/epicsdf.html#epicsdf.onMessagePvChange"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#epicsdf.epicsdf.onMessagePvChange" title="Permalink to this definition">¶</a></dt>
391<dd><p>callback handler:
392Respond to camonitor on the message PV.</p>
393<table class="docutils field-list" frame="void" rules="none">
394<col class="field-name" />
395<col class="field-body" />
396<tbody valign="top">
397<tr class="field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
398<li><strong>pvname</strong> (<em>str</em>) &#8211; monitored EPICS process variable name</li>
399<li><strong>value</strong> &#8211; value of EPICS process variable</li>
400<li><strong>host</strong> (<em>str</em>) &#8211; computer host name where the IOC resides</li>
401<li><strong>kws</strong> (<em>dict</em>) &#8211; PyEPICS keyword dictionary for callback functions</li>
402</ul>
403</td>
404</tr>
405</tbody>
406</table>
407</dd></dl>
408
409<dl class="method">
410<dt id="epicsdf.epicsdf.onPeriodPvChange">
411<tt class="descname">onPeriodPvChange</tt><big>(</big><em>pvname=None</em>, <em>value=None</em>, <em>host=None</em>, <em>**kws</em><big>)</big><a class="reference internal" href="../_modules/epicsdf.html#epicsdf.onPeriodPvChange"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#epicsdf.epicsdf.onPeriodPvChange" title="Permalink to this definition">¶</a></dt>
412<dd><p>callback handler:
413Respond to camonitor on the period PV.</p>
414<table class="docutils field-list" frame="void" rules="none">
415<col class="field-name" />
416<col class="field-body" />
417<tbody valign="top">
418<tr class="field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
419<li><strong>pvname</strong> (<em>str</em>) &#8211; monitored EPICS process variable name</li>
420<li><strong>value</strong> &#8211; value of EPICS process variable</li>
421<li><strong>host</strong> (<em>str</em>) &#8211; computer host name where the IOC resides</li>
422<li><strong>kws</strong> (<em>dict</em>) &#8211; PyEPICS keyword dictionary for callback functions</li>
423</ul>
424</td>
425</tr>
426<tr class="field"><th class="field-name">Note :</th><td class="field-body"><p class="first last">An acceptable change of period forces an update.</p>
427</td>
428</tr>
429</tbody>
430</table>
431</dd></dl>
432
433<dl class="method">
434<dt id="epicsdf.epicsdf.run">
435<tt class="descname">run</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/epicsdf.html#epicsdf.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#epicsdf.epicsdf.run" title="Permalink to this definition">¶</a></dt>
436<dd><p>Run the job periodically &#8211; forever.</p>
437</dd></dl>
438
439<dl class="method">
440<dt id="epicsdf.epicsdf.sendMail">
441<tt class="descname">sendMail</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/epicsdf.html#epicsdf.sendMail"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#epicsdf.epicsdf.sendMail" title="Permalink to this definition">¶</a></dt>
442<dd><p>send an email message when called</p>
443</dd></dl>
444
445<dl class="method">
446<dt id="epicsdf.epicsdf.setPeriod">
447<tt class="descname">setPeriod</tt><big>(</big><em>value=10.0</em><big>)</big><a class="reference internal" href="../_modules/epicsdf.html#epicsdf.setPeriod"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#epicsdf.epicsdf.setPeriod" title="Permalink to this definition">¶</a></dt>
448<dd><p>define the waiting period between updates (units = seconds)</p>
449<table class="docutils field-list" frame="void" rules="none">
450<col class="field-name" />
451<col class="field-body" />
452<tbody valign="top">
453<tr class="field"><th class="field-name">Parameters:</th><td class="field-body"><strong>value</strong> (<em>int or float</em>) &#8211; candidate value of period (default = 10.0),
454must be 1.0 or greater AND an int or a float</td>
455</tr>
456</tbody>
457</table>
458</dd></dl>
459
460<dl class="method">
461<dt id="epicsdf.epicsdf.wf2str">
462<tt class="descname">wf2str</tt><big>(</big><em>arr</em><big>)</big><a class="reference internal" href="../_modules/epicsdf.html#epicsdf.wf2str"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#epicsdf.epicsdf.wf2str" title="Permalink to this definition">¶</a></dt>
463<dd><p>converts an array of char from an
464EPICS waveform record to a python string</p>
465<table class="docutils field-list" frame="void" rules="none">
466<col class="field-name" />
467<col class="field-body" />
468<tbody valign="top">
469<tr class="field"><th class="field-name">Parameters:</th><td class="field-body"><strong>arr</strong> (<em>numpy.ndarray</em>) &#8211; NumPy array of char from EPICS waveform record</td>
470</tr>
471<tr class="field"><th class="field-name">Returns:</th><td class="field-body">string as represented by arr</td>
472</tr>
473<tr class="field"><th class="field-name">Return type:</th><td class="field-body">str</td>
474</tr>
475</tbody>
476</table>
477</dd></dl>
478
479</dd></dl>
480
481</div>
482
483
484          </div>
485        </div>
486      </div>
487      <div class="clearer"></div>
488    </div>
489    <div class="related">
490      <h3>Navigation</h3>
491      <ul>
492        <li class="right" style="margin-right: 10px">
493          <a href="../genindex.html" title="General Index"
494             >index</a></li>
495        <li class="right" >
496          <a href="../py-modindex.html" title="Python Module Index"
497             >modules</a> |</li>
498        <li class="right" >
499          <a href="index.html" title="Source code documentation"
500             >previous</a> |</li>
501        <li><a href="../index.html">epicsdf v1.0 documentation</a> &raquo;</li>
502          <li><a href="../contents.html" >Contents</a> &raquo;</li>
503          <li><a href="index.html" >Source code documentation</a> &raquo;</li> 
504      </ul>
505    </div>
506    <div class="footer">
507        &copy; Copyright 2011, Pete Jemian.
508      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
509    </div>
510  </body>
511</html>
Note: See TracBrowser for help on using the repository browser.