<!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: /home/epimerde/documents/tc11/CanFestival-3/include/sync.h 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 Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul></div>
<h1>/home/epimerde/documents/tc11/CanFestival-3/include/sync.h File Reference</h1>
<p>
<a href="sync_8h-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>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(*) </td><td class="memItemRight" valign="bottom"><a class="el" href="sync_8h.html#8a0b5b8c19b375ef1c985caa120f3274">post_sync_t</a> (void)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(*) </td><td class="memItemRight" valign="bottom"><a class="el" href="sync_8h.html#b9bc4632750ad12f918aa22a1eb7756b">post_TPDO_t</a> (void)</td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="sync_8h.html#2e0bf669f5b40dfbdda0f12a5ae3631a">startSYNC</a> (<a class="el" href="structstruct__CO__Data.html">CO_Data</a> *d)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="sync_8h.html#41c47dbd59d22bf9bab6cd288cf27164">stopSYNC</a> (<a class="el" href="structstruct__CO__Data.html">CO_Data</a> *d)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="sync_8h.html#1da155dcbd7fa1271216d74a15e30490">_post_sync</a> (void)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="sync_8h.html#1fdf94721303f1c60bb2de1a36b13cc4">_post_TPDO</a> (void)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">UNS8 </td><td class="memItemRight" valign="bottom"><a class="el" href="sync_8h.html#0bcc501eb14c12365ffbaa3453905b50">sendSYNC</a> (<a class="el" href="structstruct__CO__Data.html">CO_Data</a> *d, UNS32 cob_id)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">UNS8 </td><td class="memItemRight" valign="bottom"><a class="el" href="sync_8h.html#80cadcba23dc859db8a8d3f52789d6d1">proceedSYNC</a> (<a class="el" href="structstruct__CO__Data.html">CO_Data</a> *d, <a class="el" href="structMessage.html">Message</a> *m)</td></tr>
</table>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="8a0b5b8c19b375ef1c985caa120f3274"></a><!-- doxytag: member="sync.h::post_sync_t" ref="8a0b5b8c19b375ef1c985caa120f3274" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(*) <a class="el" href="sync_8h.html#8a0b5b8c19b375ef1c985caa120f3274">post_sync_t</a>(void) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="sync_8h-source.html#l00030">30</a> of file <a class="el" href="sync_8h-source.html">sync.h</a>.
</div>
</div><p>
<a class="anchor" name="b9bc4632750ad12f918aa22a1eb7756b"></a><!-- doxytag: member="sync.h::post_TPDO_t" ref="b9bc4632750ad12f918aa22a1eb7756b" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(*) <a class="el" href="sync_8h.html#b9bc4632750ad12f918aa22a1eb7756b">post_TPDO_t</a>(void) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="sync_8h-source.html#l00033">33</a> of file <a class="el" href="sync_8h-source.html">sync.h</a>.
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="1da155dcbd7fa1271216d74a15e30490"></a><!-- doxytag: member="sync.h::_post_sync" ref="1da155dcbd7fa1271216d74a15e30490" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _post_sync </td>
<td>(</td>
<td class="paramtype">void </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="sync_8c-source.html#l00245">245</a> of file <a class="el" href="sync_8c-source.html">sync.c</a>.
</div>
</div><p>
<a class="anchor" name="1fdf94721303f1c60bb2de1a36b13cc4"></a><!-- doxytag: member="sync.h::_post_TPDO" ref="1fdf94721303f1c60bb2de1a36b13cc4" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _post_TPDO </td>
<td>(</td>
<td class="paramtype">void </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="sync_8c-source.html#l00246">246</a> of file <a class="el" href="sync_8c-source.html">sync.c</a>.
</div>
</div><p>
<a class="anchor" name="80cadcba23dc859db8a8d3f52789d6d1"></a><!-- doxytag: member="sync.h::proceedSYNC" ref="80cadcba23dc859db8a8d3f52789d6d1" args="(CO_Data *d, Message *m)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">UNS8 proceedSYNC </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structstruct__CO__Data.html">CO_Data</a> * </td>
<td class="paramname"> <em>d</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structMessage.html">Message</a> * </td>
<td class="paramname"> <em>m</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function is called when the node is receiving a SYNC message (cob-id = 0x80). What does the function : check if the node is in OERATIONAL mode. (other mode : return 0 but does nothing). Get the SYNC cobId by reading the dictionary index 1005. (Return -1 if it does not correspond to the cobId received). Scan the dictionary from index 0x1800 to the last PDO defined (dict_cstes.max_count_of_PDO_transmit) for each PDO whose transmission type is on synchro (transmission type < 241) and if the msg must be send at this SYNC. read the COBID. Verify that the nodeId inside the nodeId correspond to bDeviceNodeId. (Assume that the cobId of a PDO Transmit is made with the node id of the node who transmit), get the mapping, launch PDOmGR to send the PDO *m is a pointer to the message received bus_id is hardware dependant return 0 if OK, 0xFF if error
<p>
Definition at line <a class="el" href="sync_8c-source.html#l00093">93</a> of file <a class="el" href="sync_8c-source.html">sync.c</a>.
<p>
References <a class="el" href="objdictdef_8h-source.html#l00108">td_indextable::bSubCount</a>, <a class="el" href="pdo_8c-source.html#l00376">CopyBits()</a>, <a class="el" href="pdo_8h-source.html#l00033">struct_s_process_var::count</a>, <a class="el" href="data_8h-source.html#l00049">struct_CO_Data::count_sync</a>, <a class="el" href="timer_8h-source.html#l00045">struct_s_timer_entry::d</a>, <a class="el" href="pdo_8h-source.html#l00037">struct_s_process_var::data</a>, <a class="el" href="data_8h-source.html#l00050">struct_CO_Data::firstIndex</a>, <a class="el" href="objacces_8c-source.html#l00145">getODentry()</a>, <a class="el" href="data_8h-source.html#l00051">struct_CO_Data::lastIndex</a>, <a class="el" href="hcs12_2applicfg_8h-source.html#l00177">MSG_ERR</a>, <a class="el" href="hcs12_2applicfg_8h-source.html#l00190">MSG_WAR</a>, <a class="el" href="data_8h-source.html#l00061">struct_CO_Data::nodeState</a>, <a class="el" href="data_8h-source.html#l00048">struct_CO_Data::objdict</a>, <a class="el" href="def_8h-source.html#l00031">OD_SUCCESSFUL</a>, <a class="el" href="states_8h.html#3136d2815abe9d284f985e0a7ec68646a80594b1522cb686b981f56bbec45124">Operational</a>, <a class="el" href="objdictdef_8h-source.html#l00120">s_quick_index::PDO_TRS</a>, <a class="el" href="objdictdef_8h-source.html#l00121">s_quick_index::PDO_TRS_MAP</a>, <a class="el" href="pdo_8c-source.html#l00061">PDOmGR()</a>, <a class="el" href="objdictdef_8h-source.html#l00100">td_subindex::pObject</a>, <a class="el" href="data_8h-source.html#l00082">struct_CO_Data::post_sync</a>, <a class="el" href="data_8h-source.html#l00083">struct_CO_Data::post_TPDO</a>, <a class="el" href="data_8h-source.html#l00086">struct_CO_Data::process_var</a>, <a class="el" href="objdictdef_8h-source.html#l00107">td_indextable::pSubindex</a>, <a class="el" href="def_8h-source.html#l00122">state10</a>, <a class="el" href="def_8h-source.html#l00123">state11</a>, <a class="el" href="def_8h-source.html#l00115">state3</a>, <a class="el" href="def_8h-source.html#l00116">state4</a>, <a class="el" href="def_8h-source.html#l00117">state5</a>, <a class="el" href="def_8h-source.html#l00119">state7</a>, <a class="el" href="def_8h-source.html#l00120">state8</a>, <a class="el" href="def_8h-source.html#l00121">state9</a>, <a class="el" href="objdictdef_8h-source.html#l00077">TRANS_SYNC_MAX</a>, <a class="el" href="objdictdef_8h-source.html#l00076">TRANS_SYNC_MIN</a>, <a class="el" href="hcs12_2applicfg_8h-source.html#l00140">UNS16</a>, <a class="el" href="hcs12_2applicfg_8h-source.html#l00141">UNS32</a>, and <a class="el" href="hcs12_2applicfg_8h-source.html#l00139">UNS8</a>.
</div>
</div><p>
<a class="anchor" name="0bcc501eb14c12365ffbaa3453905b50"></a><!-- doxytag: member="sync.h::sendSYNC" ref="0bcc501eb14c12365ffbaa3453905b50" args="(CO_Data *d, UNS32 cob_id)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">UNS8 sendSYNC </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structstruct__CO__Data.html">CO_Data</a> * </td>
<td class="paramname"> <em>d</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">UNS32 </td>
<td class="paramname"> <em>cob_id</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
transmit a SYNC message on the bus number bus_id bus_id is hardware dependant return canSend(bus_id,&m)
<p>
Definition at line <a class="el" href="sync_8c-source.html#l00077">77</a> of file <a class="el" href="sync_8c-source.html">sync.c</a>.
<p>
References <a class="el" href="data_8h-source.html#l00090">struct_CO_Data::canHandle</a>, <a class="el" href="canOpenDriver_8c-source.html#l00505">canSend()</a>, <a class="el" href="can_8h-source.html#l00042">Message::cob_id</a>, <a class="el" href="timer_8h-source.html#l00045">struct_s_timer_entry::d</a>, <a class="el" href="can_8h-source.html#l00045">Message::len</a>, <a class="el" href="hcs12_2applicfg_8h-source.html#l00190">MSG_WAR</a>, <a class="el" href="def_8h-source.html#l00055">NOT_A_REQUEST</a>, <a class="el" href="sync_8c-source.html#l00093">proceedSYNC()</a>, <a class="el" href="can_8h-source.html#l00043">Message::rtr</a>, <a class="el" href="hcs12_2applicfg_8h-source.html#l00139">UNS8</a>, and <a class="el" href="can_8h-source.html#l00036">SHORT_CAN::w</a>.
</div>
</div><p>
<a class="anchor" name="2e0bf669f5b40dfbdda0f12a5ae3631a"></a><!-- doxytag: member="sync.h::startSYNC" ref="2e0bf669f5b40dfbdda0f12a5ae3631a" args="(CO_Data *d)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void startSYNC </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structstruct__CO__Data.html">CO_Data</a> * </td>
<td class="paramname"> <em>d</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="sync_8c-source.html#l00050">50</a> of file <a class="el" href="sync_8c-source.html">sync.c</a>.
<p>
References <a class="el" href="data_8h-source.html#l00079">struct_CO_Data::COB_ID_Sync</a>, <a class="el" href="timer_8h-source.html#l00045">struct_s_timer_entry::d</a>, <a class="el" href="sync_8c-source.html#l00043">OnCOB_ID_SyncUpdate()</a>, <a class="el" href="objacces_8c-source.html#l00297">RegisterSetODentryCallBack()</a>, <a class="el" href="timer_8c-source.html#l00038">SetAlarm()</a>, <a class="el" href="sync_8c-source.html#l00071">stopSYNC()</a>, <a class="el" href="data_8h-source.html#l00080">struct_CO_Data::Sync_Cycle_Period</a>, <a class="el" href="sync_8c-source.html#l00036">SyncAlarm()</a>, <a class="el" href="data_8h-source.html#l00078">struct_CO_Data::syncTimer</a>, and <a class="el" href="hcs12_2applicfg_8h-source.html#l00157">US_TO_TIMEVAL</a>.
</div>
</div><p>
<a class="anchor" name="41c47dbd59d22bf9bab6cd288cf27164"></a><!-- doxytag: member="sync.h::stopSYNC" ref="41c47dbd59d22bf9bab6cd288cf27164" args="(CO_Data *d)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void stopSYNC </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structstruct__CO__Data.html">CO_Data</a> * </td>
<td class="paramname"> <em>d</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="sync_8c-source.html#l00071">71</a> of file <a class="el" href="sync_8c-source.html">sync.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#l00087">DelAlarm()</a>, and <a class="el" href="data_8h-source.html#l00078">struct_CO_Data::syncTimer</a>.
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 4 16:29:07 2007 for CanFestival by
<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>