doc/doxygen/html/timer_8c.html
author etisserant
Mon, 02 Jul 2007 18:22:58 +0200
changeset 236 905677ed00f3
parent 215 f49e5a6b7804
child 240 34654679f262
permissions -rw-r--r--
Full preliminary implementation of TPDO transmit type:
- SYNC (N) (1-240)
- RTR only + SYNC (252)
- RTR only (253)
- EVENT, with timer and inhibit time (254 and 255)

User app have to call sendPDOevent(d) to eventually signal mapped data changes.
Callbacks added to 0x140N, TPDO comm parameters for on the fly timers values change.
TestMasterSlave updated.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>CanFestival: src/timer.c File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.1 -->
<div class="tabs">
  <ul>
    <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
    <li id="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
  </ul></div>
<div class="tabs">
  <ul>
    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    <li><a href="globals.html"><span>Globals</span></a></li>
  </ul></div>
<div class="nav">
<a class="el" href="dir_c0a169d39c08973f879fd54f07b9e9f7.html">src</a></div>
<h1>timer.c File Reference</h1><code>#include &lt;<a class="el" href="win32_2applicfg_8h-source.html">applicfg.h</a>&gt;</code><br>
<code>#include &quot;<a class="el" href="timer_8h-source.html">timer.h</a>&quot;</code><br>

<p>
Include dependency graph for timer.c:<p><center><img src="timer_8c__incl.png" border="0" usemap="#src/timer.c_map" alt=""></center>
<map name="src/timer.c_map">
<area href="win32_2applicfg_8h.html" shape="rect" coords="567,349,655,373" alt="">
<area href="timer_8h.html" shape="rect" coords="147,301,216,325" alt="">
<area href="win32_2timerscfg_8h.html" shape="rect" coords="264,56,363,80" alt="">
<area href="data_8h.html" shape="rect" coords="282,301,346,325" alt="">
<area href="def_8h.html" shape="rect" coords="583,155,639,179" alt="">
<area href="can_8h.html" shape="rect" coords="435,301,494,325" alt="">
<area href="objdictdef_8h.html" shape="rect" coords="414,445,515,469" alt="">
<area href="objacces_8h.html" shape="rect" coords="418,349,511,373" alt="">
<area href="sdo_8h.html" shape="rect" coords="435,56,494,80" alt="">
<area href="pdo_8h.html" shape="rect" coords="435,203,494,227" alt="">
<area href="states_8h.html" shape="rect" coords="427,397,502,421" alt="">
<area href="lifegrd_8h.html" shape="rect" coords="426,541,503,565" alt="">
<area href="sync_8h.html" shape="rect" coords="431,493,498,517" alt="">
<area href="nmtMaster_8h.html" shape="rect" coords="411,155,518,179" alt="">
<area href="config_8h.html" shape="rect" coords="714,155,788,179" alt="">
</map>

<p>
<a href="timer_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="timer_8c.html#8536312cebeeea3a23dc0027800122c9">min_val</a>(a, b)&nbsp;&nbsp;&nbsp;((a&lt;b)?a:b)</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">TIMER_HANDLE&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="timer_8c.html#11c2616d78f06ed9144ef662f757b128">SetAlarm</a> (<a class="el" href="structstruct__CO__Data.html">CO_Data</a> *d, UNS32 id, <a class="el" href="timer_8h.html#f7d102e060339d3730ceae5fea03691b">TimerCallback_t</a> callback, TIMEVAL value, TIMEVAL period)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">TIMER_HANDLE&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="timer_8c.html#991b3cfaac2f201b14d5530f75985c21">DelAlarm</a> (TIMER_HANDLE handle)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="timer_8c.html#fa75192a3238525618f8cb83004930cc">TimeDispatch</a> ()</td></tr>

<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structstruct__s__timer__entry.html">s_timer_entry</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="timer_8c.html#a74e2cf2504bfd18b12f112c7aaad845">timers</a> [MAX_NB_TIMER] = {{TIMER_FREE, NULL, NULL, 0, 0, 0},}</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">TIMEVAL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="timer_8c.html#5e9651eed13d70bcce9bdf3489a72a3d">total_sleep_time</a> = TIMEVAL_MAX</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">TIMER_HANDLE&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="timer_8c.html#1dab7b9a29bdee8b1931f8ea90685c6f">last_timer_raw</a> = -1</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<dl class="author" compact><dt><b>Author:</b></dt><dd>Edouard TISSERANT and Francis DUPIN </dd></dl>
<dl class="date" compact><dt><b>Date:</b></dt><dd>Tue Jun 5 09:32:32 2007 </dd></dl>

<p>
Definition in file <a class="el" href="timer_8c-source.html">timer.c</a>.<hr><h2>Define Documentation</h2>
<a class="anchor" name="8536312cebeeea3a23dc0027800122c9"></a><!-- doxytag: member="timer.c::min_val" ref="8536312cebeeea3a23dc0027800122c9" args="(a, b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define min_val          </td>
          <td>(</td>
          <td class="paramtype">a,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">b&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((a&lt;b)?a:b)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="timer_8c-source.html#l00044">44</a> of file <a class="el" href="timer_8c-source.html">timer.c</a>.
<p>
Referenced by <a class="el" href="timer_8c-source.html#l00131">TimeDispatch()</a>.
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="991b3cfaac2f201b14d5530f75985c21"></a><!-- doxytag: member="timer.c::DelAlarm" ref="991b3cfaac2f201b14d5530f75985c21" args="(TIMER_HANDLE handle)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TIMER_HANDLE DelAlarm           </td>
          <td>(</td>
          <td class="paramtype">TIMER_HANDLE&nbsp;</td>
          <td class="paramname"> <em>handle</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
----- Use this to remove an alarm ----<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

<p>
Definition at line <a class="el" href="timer_8c-source.html#l00112">112</a> of file <a class="el" href="timer_8c-source.html">timer.c</a>.
<p>
References <a class="el" href="timer_8c-source.html#l00042">last_timer_raw</a>, <a class="el" href="hcs12_2applicfg_8h-source.html#l00190">MSG_WAR</a>, <a class="el" href="timer_8h-source.html#l00044">struct_s_timer_entry::state</a>, and <a class="el" href="timer_8c-source.html#l00039">timers</a>.
<p>
Referenced by <a class="el" href="lifegrd_8c-source.html#l00236">heartbeatStop()</a>, <a class="el" href="lifegrd_8c-source.html#l00081">proceedNODE_GUARD()</a>, <a class="el" href="lifegrd_8c-source.html#l00161">ProducerHearbeatAlarm()</a>, and <a class="el" href="sync_8c-source.html#l00105">stopSYNC()</a>.
</div>
</div><p>
<a class="anchor" name="11c2616d78f06ed9144ef662f757b128"></a><!-- doxytag: member="timer.c::SetAlarm" ref="11c2616d78f06ed9144ef662f757b128" args="(CO_Data *d, UNS32 id, TimerCallback_t callback, TIMEVAL value, TIMEVAL period)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TIMER_HANDLE SetAlarm           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structstruct__CO__Data.html">CO_Data</a> *&nbsp;</td>
          <td class="paramname"> <em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">UNS32&nbsp;</td>
          <td class="paramname"> <em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="timer_8h.html#f7d102e060339d3730ceae5fea03691b">TimerCallback_t</a>&nbsp;</td>
          <td class="paramname"> <em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">TIMEVAL&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">TIMEVAL&nbsp;</td>
          <td class="paramname"> <em>period</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
------- Use this to declare a new alarm ------<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>d</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>period</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

<p>
Definition at line <a class="el" href="timer_8c-source.html#l00057">57</a> of file <a class="el" href="timer_8c-source.html">timer.c</a>.
<p>
References <a class="el" href="timer_8h-source.html#l00045">struct_s_timer_entry::d</a>, <a class="el" href="timer_8c-source.html#l00042">last_timer_raw</a>, <a class="el" href="config_8h-source.html#l00032">MAX_NB_TIMER</a>, <a class="el" href="timer_8h-source.html#l00029">TIMER_HANDLE</a>, and <a class="el" href="timer_8c-source.html#l00039">timers</a>.
<p>
Referenced by <a class="el" href="lifegrd_8c-source.html#l00206">heartbeatInit()</a>, <a class="el" href="lifegrd_8c-source.html#l00081">proceedNODE_GUARD()</a>, <a class="el" href="sync_8c-source.html#l00080">startSYNC()</a>, and <a class="el" href="timers__unix_8c-source.html#l00062">StartTimerLoop()</a>.
</div>
</div><p>
<a class="anchor" name="fa75192a3238525618f8cb83004930cc"></a><!-- doxytag: member="timer.c::TimeDispatch" ref="fa75192a3238525618f8cb83004930cc" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TimeDispatch           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
------ TimeDispatch is called on each timer expiration ---- 
<p>
Definition at line <a class="el" href="timer_8c-source.html#l00131">131</a> of file <a class="el" href="timer_8c-source.html">timer.c</a>.
<p>
References <a class="el" href="canOpenDriver_8c-source.html#l00066">getElapsedTime()</a>, <a class="el" href="timer_8c-source.html#l00042">last_timer_raw</a>, <a class="el" href="timer_8c-source.html#l00044">min_val</a>, <a class="el" href="timer_8h-source.html#l00029">TIMER_HANDLE</a>, <a class="el" href="timer_8c-source.html#l00039">timers</a>, <a class="el" href="hcs12_2applicfg_8h-source.html#l00150">TIMEVAL</a>, <a class="el" href="hcs12_2applicfg_8h-source.html#l00153">TIMEVAL_MAX</a>, and <a class="el" href="timer_8c-source.html#l00041">total_sleep_time</a>.
<p>
Referenced by <a class="el" href="timers__win32_8cpp-source.html#l00151">class_timers::timer_loop_thread_proc()</a>, <a class="el" href="timers__unix_8c-source.html#l00030">timer_notify()</a>, and <a class="el" href="timers__xeno_8c-source.html#l00045">timerloop_task_proc()</a>.
<p>
Here is the call graph for this function:<p><center><img src="timer_8c_fa75192a3238525618f8cb83004930cc_cgraph.png" border="0" usemap="#timer_8c_fa75192a3238525618f8cb83004930cc_cgraph_map" alt=""></center>
<map name="timer_8c_fa75192a3238525618f8cb83004930cc_cgraph_map">
<area href="canOpenDriver_8c.html#24dbe63e88d184388542037d16a8208d" shape="rect" coords="171,6,302,30" alt="">
</map>

</div>
</div><p>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="1dab7b9a29bdee8b1931f8ea90685c6f"></a><!-- doxytag: member="timer.c::last_timer_raw" ref="1dab7b9a29bdee8b1931f8ea90685c6f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TIMER_HANDLE <a class="el" href="timer_8c.html#1dab7b9a29bdee8b1931f8ea90685c6f">last_timer_raw</a> = -1          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="timer_8c-source.html#l00042">42</a> of file <a class="el" href="timer_8c-source.html">timer.c</a>.
<p>
Referenced by <a class="el" href="timer_8c-source.html#l00112">DelAlarm()</a>, <a class="el" href="timer_8c-source.html#l00057">SetAlarm()</a>, and <a class="el" href="timer_8c-source.html#l00131">TimeDispatch()</a>.
</div>
</div><p>
<a class="anchor" name="a74e2cf2504bfd18b12f112c7aaad845"></a><!-- doxytag: member="timer.c::timers" ref="a74e2cf2504bfd18b12f112c7aaad845" args="[MAX_NB_TIMER]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structstruct__s__timer__entry.html">s_timer_entry</a> <a class="el" href="timer_8c.html#a74e2cf2504bfd18b12f112c7aaad845">timers</a>[MAX_NB_TIMER] = {{TIMER_FREE, NULL, NULL, 0, 0, 0},}          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="timer_8c-source.html#l00039">39</a> of file <a class="el" href="timer_8c-source.html">timer.c</a>.
<p>
Referenced by <a class="el" href="timer_8c-source.html#l00112">DelAlarm()</a>, <a class="el" href="timer_8c-source.html#l00057">SetAlarm()</a>, and <a class="el" href="timer_8c-source.html#l00131">TimeDispatch()</a>.
</div>
</div><p>
<a class="anchor" name="5e9651eed13d70bcce9bdf3489a72a3d"></a><!-- doxytag: member="timer.c::total_sleep_time" ref="5e9651eed13d70bcce9bdf3489a72a3d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TIMEVAL <a class="el" href="timer_8c.html#5e9651eed13d70bcce9bdf3489a72a3d">total_sleep_time</a> = TIMEVAL_MAX          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="timer_8c-source.html#l00041">41</a> of file <a class="el" href="timer_8c-source.html">timer.c</a>.
<p>
Referenced by <a class="el" href="timer_8c-source.html#l00131">TimeDispatch()</a>.
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Fri Jun 8 08:52:17 2007 for CanFestival by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
</body>
</html>