doc/doxygen/html/objdictdef_8h-source.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: include/objdictdef.h Source File</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_2209bfb26110ae52d50da4cefad5e72f.html">include</a></div>
<h1>objdictdef.h</h1><a href="objdictdef_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment">This file is part of CanFestival, a library implementing CanOpen Stack. </span>
<a name="l00003"></a>00003 <span class="comment"></span>
<a name="l00004"></a>00004 <span class="comment">Copyright (C): Edouard TISSERANT and Francis DUPIN</span>
<a name="l00005"></a>00005 <span class="comment"></span>
<a name="l00006"></a>00006 <span class="comment">See COPYING file for copyrights details.</span>
<a name="l00007"></a>00007 <span class="comment"></span>
<a name="l00008"></a>00008 <span class="comment">This library is free software; you can redistribute it and/or</span>
<a name="l00009"></a>00009 <span class="comment">modify it under the terms of the GNU Lesser General Public</span>
<a name="l00010"></a>00010 <span class="comment">License as published by the Free Software Foundation; either</span>
<a name="l00011"></a>00011 <span class="comment">version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00012"></a>00012 <span class="comment"></span>
<a name="l00013"></a>00013 <span class="comment">This library is distributed in the hope that it will be useful,</span>
<a name="l00014"></a>00014 <span class="comment">but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00015"></a>00015 <span class="comment">MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
<a name="l00016"></a>00016 <span class="comment">Lesser General Public License for more details.</span>
<a name="l00017"></a>00017 <span class="comment"></span>
<a name="l00018"></a>00018 <span class="comment">You should have received a copy of the GNU Lesser General Public</span>
<a name="l00019"></a>00019 <span class="comment">License along with this library; if not, write to the Free Software</span>
<a name="l00020"></a>00020 <span class="comment">Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</span>
<a name="l00021"></a>00021 <span class="comment">*/</span>
<a name="l00022"></a>00022 
<a name="l00023"></a>00023 <span class="preprocessor">#ifndef __objdictdef_h__</span>
<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#define __objdictdef_h__</span>
<a name="l00025"></a>00025 <span class="preprocessor"></span>
<a name="l00026"></a>00026 <span class="comment">/************************* CONSTANTES **********************************/</span>
<a name="l00032"></a><a class="code" href="objdictdef_8h.html#9201c1178e191a87a38dd59c7fc36ff6">00032</a> <span class="preprocessor">#define boolean         0x01</span>
<a name="l00033"></a><a class="code" href="objdictdef_8h.html#05dd69e54275d0ffb23aa062e522f72c">00033</a> <span class="preprocessor"></span><span class="preprocessor">#define int8            0x02</span>
<a name="l00034"></a><a class="code" href="objdictdef_8h.html#09e4d5c13c275d380da6580a03af5e92">00034</a> <span class="preprocessor"></span><span class="preprocessor">#define int16           0x03</span>
<a name="l00035"></a><a class="code" href="objdictdef_8h.html#e5125ea470cb5e419d49e07ad57eeba2">00035</a> <span class="preprocessor"></span><span class="preprocessor">#define int32           0x04</span>
<a name="l00036"></a><a class="code" href="objdictdef_8h.html#2d25bcd37166cc98f0d823cdb8c553ef">00036</a> <span class="preprocessor"></span><span class="preprocessor">#define uint8           0x05</span>
<a name="l00037"></a><a class="code" href="objdictdef_8h.html#fc4adc9111e54b3163b6126ce951ecc3">00037</a> <span class="preprocessor"></span><span class="preprocessor">#define uint16          0x06</span>
<a name="l00038"></a><a class="code" href="objdictdef_8h.html#9695cf1104606879c5d3f0221635a069">00038</a> <span class="preprocessor"></span><span class="preprocessor">#define uint32          0x07</span>
<a name="l00039"></a><a class="code" href="objdictdef_8h.html#28febea0119ac32c99bf000e14dd963b">00039</a> <span class="preprocessor"></span><span class="preprocessor">#define real32          0x08</span>
<a name="l00040"></a><a class="code" href="objdictdef_8h.html#6a4b5f93c378207aee7ea8f8397d1fc9">00040</a> <span class="preprocessor"></span><span class="preprocessor">#define visible_string  0x09</span>
<a name="l00041"></a><a class="code" href="objdictdef_8h.html#6d6f1c4c9f3af57487f3afe94af70403">00041</a> <span class="preprocessor"></span><span class="preprocessor">#define octet_string    0x0A</span>
<a name="l00042"></a><a class="code" href="objdictdef_8h.html#5cd524a20d32d81ee805f50968187d09">00042</a> <span class="preprocessor"></span><span class="preprocessor">#define unicode_string  0x0B</span>
<a name="l00043"></a><a class="code" href="objdictdef_8h.html#40ad5d3872b664aff212dccbaf961f67">00043</a> <span class="preprocessor"></span><span class="preprocessor">#define time_of_day     0x0C</span>
<a name="l00044"></a><a class="code" href="objdictdef_8h.html#53be0553db1ce74a64ee5c919bdc97ff">00044</a> <span class="preprocessor"></span><span class="preprocessor">#define time_difference 0x0D</span>
<a name="l00045"></a>00045 <span class="preprocessor"></span>
<a name="l00046"></a><a class="code" href="objdictdef_8h.html#82a4ccef24bc2ae995fcace980850f2d">00046</a> <span class="preprocessor">#define domain          0x0F</span>
<a name="l00047"></a><a class="code" href="objdictdef_8h.html#5f7806f4906de9a13002fadc6b8b3f42">00047</a> <span class="preprocessor"></span><span class="preprocessor">#define int24           0x10</span>
<a name="l00048"></a><a class="code" href="objdictdef_8h.html#d9350de53a70071ec5443672db37f61c">00048</a> <span class="preprocessor"></span><span class="preprocessor">#define real64          0x11</span>
<a name="l00049"></a><a class="code" href="objdictdef_8h.html#29444aa748cff063eb0de639f7b3b298">00049</a> <span class="preprocessor"></span><span class="preprocessor">#define int40           0x12</span>
<a name="l00050"></a><a class="code" href="objdictdef_8h.html#32117599132383a464bb56fe48cc0f2a">00050</a> <span class="preprocessor"></span><span class="preprocessor">#define int48           0x13</span>
<a name="l00051"></a><a class="code" href="objdictdef_8h.html#8f9a4d8cdee95ac02cfe9fa6da24471e">00051</a> <span class="preprocessor"></span><span class="preprocessor">#define int56           0x14</span>
<a name="l00052"></a><a class="code" href="objdictdef_8h.html#09fc63bce67d19142460e915d94f732f">00052</a> <span class="preprocessor"></span><span class="preprocessor">#define int64           0x15</span>
<a name="l00053"></a><a class="code" href="objdictdef_8h.html#44514ac0d2c2c0895e46f62849ed308b">00053</a> <span class="preprocessor"></span><span class="preprocessor">#define uint24          0x16</span>
<a name="l00054"></a>00054 <span class="preprocessor"></span>
<a name="l00055"></a><a class="code" href="objdictdef_8h.html#8fce5eaca9dc57d6d914c62a817cc65f">00055</a> <span class="preprocessor">#define uint40          0x18</span>
<a name="l00056"></a><a class="code" href="objdictdef_8h.html#7aa1269ae84360f0c5f3e9772dc46c0f">00056</a> <span class="preprocessor"></span><span class="preprocessor">#define uint48          0x19</span>
<a name="l00057"></a><a class="code" href="objdictdef_8h.html#b4ebb502941e1315ef4479c33d894741">00057</a> <span class="preprocessor"></span><span class="preprocessor">#define uint56          0x1A</span>
<a name="l00058"></a><a class="code" href="objdictdef_8h.html#675b708aad17b5e4de65233fe5ed3839">00058</a> <span class="preprocessor"></span><span class="preprocessor">#define uint64          0x1B</span>
<a name="l00059"></a>00059 <span class="preprocessor"></span>
<a name="l00060"></a><a class="code" href="objdictdef_8h.html#1859f0914b9556179e3658f3b5efd4d3">00060</a> <span class="preprocessor">#define pdo_communication_parameter 0x20</span>
<a name="l00061"></a><a class="code" href="objdictdef_8h.html#dfeca7df5126898b817e3aa1dbd46a56">00061</a> <span class="preprocessor"></span><span class="preprocessor">#define pdo_mapping                 0x21</span>
<a name="l00062"></a><a class="code" href="objdictdef_8h.html#34a206e10a553c1021b438f86aaf25e4">00062</a> <span class="preprocessor"></span><span class="preprocessor">#define sdo_parameter               0x22</span>
<a name="l00063"></a><a class="code" href="objdictdef_8h.html#af41acc8d0f07edd6f123c3ab65a43aa">00063</a> <span class="preprocessor"></span><span class="preprocessor">#define identity                    0x23</span>
<a name="l00064"></a>00064 <span class="preprocessor"></span>
<a name="l00065"></a>00065 <span class="comment">/* CanFestival is using 0x24 to 0xFF to define some types containing a </span>
<a name="l00066"></a>00066 <span class="comment"> value range (See how it works in objdict.c)</span>
<a name="l00067"></a>00067 <span class="comment"> */</span>
<a name="l00068"></a>00068 
<a name="l00069"></a>00069 
<a name="l00070"></a>00070 
<a name="l00075"></a><a class="code" href="objdictdef_8h.html#3d5c35506f9fb3cf77c069b973fa5f2e">00075</a> <span class="preprocessor">#define TRANS_EVERY_N_SYNC(n) (n) </span><span class="comment">/*n = 1 to 240 */</span>
<a name="l00076"></a><a class="code" href="objdictdef_8h.html#f514b6a153b17e6da21f46971e3e8807">00076</a> <span class="preprocessor">#define TRANS_SYNC_MIN        1    </span><span class="comment">/* Trans after reception of n SYNC. n = 1 to 240 */</span>
<a name="l00077"></a><a class="code" href="objdictdef_8h.html#fc747c839a17a8b35e569677bbf7549d">00077</a> <span class="preprocessor">#define TRANS_SYNC_MAX        240  </span><span class="comment">/* Trans after reception of n SYNC. n = 1 to 240 */</span>
<a name="l00078"></a><a class="code" href="objdictdef_8h.html#1796da41c02afb8d119aa2a103cebbc2">00078</a> <span class="preprocessor">#define TRANS_RTR_SYNC        252  </span><span class="comment">/* Transmission on request */</span>
<a name="l00079"></a><a class="code" href="objdictdef_8h.html#1a9dbd29fbf815b9f24dd8e177cfecdb">00079</a> <span class="preprocessor">#define TRANS_RTR             253  </span><span class="comment">/* Transmission on request */</span>
<a name="l00080"></a><a class="code" href="objdictdef_8h.html#85c21667cdfc019327398abd11cf30b4">00080</a> <span class="preprocessor">#define TRANS_EVENT           255  </span><span class="comment">/* Transmission on event */</span>
<a name="l00081"></a>00081 
<a name="l00085"></a><a class="code" href="objdictdef_8h.html#fc4ded33ac0ca43defcce639e965748a">00085</a> <span class="preprocessor">#define RW     0x00  </span>
<a name="l00086"></a><a class="code" href="objdictdef_8h.html#170086e0b136507502f3f525a9693407">00086</a> <span class="preprocessor"></span><span class="preprocessor">#define WO     0x01</span>
<a name="l00087"></a><a class="code" href="objdictdef_8h.html#628642b04c07236ae1e986c248a79ae5">00087</a> <span class="preprocessor"></span><span class="preprocessor">#define RO     0x02</span>
<a name="l00088"></a>00088 <span class="preprocessor"></span>
<a name="l00089"></a><a class="code" href="objdictdef_8h.html#c9347ab621c5af56ecdc1ad6714a24cc">00089</a> <span class="preprocessor">#define TO_BE_SAVE  0x04</span>
<a name="l00090"></a>00090 <span class="preprocessor"></span>
<a name="l00091"></a>00091 <span class="comment">/************************ STRUCTURES ****************************/</span>
<a name="l00095"></a><a class="code" href="structtd__subindex.html">00095</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structtd__subindex.html">td_subindex</a>
<a name="l00096"></a>00096 {
<a name="l00097"></a><a class="code" href="structtd__subindex.html#c9bfdd809125b0ff777f82158ac4043c">00097</a>     <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>                    <a class="code" href="structtd__subindex.html#c9bfdd809125b0ff777f82158ac4043c">bAccessType</a>;
<a name="l00098"></a><a class="code" href="structtd__subindex.html#ee8e6e6a00f3766df634e3c5017d2162">00098</a>     <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>                    <a class="code" href="structtd__subindex.html#ee8e6e6a00f3766df634e3c5017d2162">bDataType</a>; <span class="comment">/* Defines of what datatype the entry is */</span>
<a name="l00099"></a><a class="code" href="structtd__subindex.html#660ca8ed5b240340229cfd07c6700d1b">00099</a>     <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>                    <a class="code" href="structtd__subindex.html#660ca8ed5b240340229cfd07c6700d1b">size</a>;      <span class="comment">/* The size (in Byte) of the variable */</span>
<a name="l00100"></a><a class="code" href="structtd__subindex.html#6c83d4e45acd437dcd6746fcf9b7495a">00100</a>     <span class="keywordtype">void</span>*                   <a class="code" href="structtd__subindex.html#6c83d4e45acd437dcd6746fcf9b7495a">pObject</a>;   <span class="comment">/* This is the pointer of the Variable */</span>
<a name="l00101"></a>00101 } <a class="code" href="structtd__subindex.html">subindex</a>;
<a name="l00102"></a>00102 
<a name="l00105"></a><a class="code" href="structtd__indextable.html">00105</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structtd__indextable.html">td_indextable</a>
<a name="l00106"></a>00106 {
<a name="l00107"></a><a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">00107</a>     <a class="code" href="structtd__subindex.html">subindex</a>*   <a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>;   <span class="comment">/* Pointer to the subindex */</span>
<a name="l00108"></a><a class="code" href="structtd__indextable.html#b0eaef21e60f3348e8928af66c2dbfcd">00108</a>     <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>   <a class="code" href="structtd__indextable.html#b0eaef21e60f3348e8928af66c2dbfcd">bSubCount</a>;   <span class="comment">/* the count of valid entries for this subindex</span>
<a name="l00109"></a>00109 <span class="comment">                         * This count here defines how many memory has been</span>
<a name="l00110"></a>00110 <span class="comment">                         * allocated. this memory does not have to be used.</span>
<a name="l00111"></a>00111 <span class="comment">                         */</span>
<a name="l00112"></a><a class="code" href="structtd__indextable.html#1e4c3fb3d8fae2756c13bc5dad9caf0c">00112</a>     <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a>   <a class="code" href="structtd__indextable.html#1e4c3fb3d8fae2756c13bc5dad9caf0c">index</a>;
<a name="l00113"></a>00113 } <a class="code" href="structtd__indextable.html">indextable</a>;
<a name="l00114"></a>00114 
<a name="l00115"></a><a class="code" href="structs__quick__index.html">00115</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structs__quick__index.html">s_quick_index</a>{
<a name="l00116"></a><a class="code" href="structs__quick__index.html#998dc7bd9cf744bf43510c1273a4a3c2">00116</a>         <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> <a class="code" href="structs__quick__index.html#998dc7bd9cf744bf43510c1273a4a3c2">SDO_SVR</a>;
<a name="l00117"></a><a class="code" href="structs__quick__index.html#6224504249d0fd33d8dd09d874c92ace">00117</a>         <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> <a class="code" href="structs__quick__index.html#6224504249d0fd33d8dd09d874c92ace">SDO_CLT</a>;
<a name="l00118"></a><a class="code" href="structs__quick__index.html#cadbae6acd5ded4e8eebf0ce88c2ec55">00118</a>         <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> <a class="code" href="structs__quick__index.html#cadbae6acd5ded4e8eebf0ce88c2ec55">PDO_RCV</a>;
<a name="l00119"></a><a class="code" href="structs__quick__index.html#9a83f9efff533e71d580fda6118b101e">00119</a>         <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> <a class="code" href="structs__quick__index.html#9a83f9efff533e71d580fda6118b101e">PDO_RCV_MAP</a>;
<a name="l00120"></a><a class="code" href="structs__quick__index.html#48e0ba31ff7746f1fa63f240a132a906">00120</a>         <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> <a class="code" href="structs__quick__index.html#48e0ba31ff7746f1fa63f240a132a906">PDO_TRS</a>;
<a name="l00121"></a><a class="code" href="structs__quick__index.html#c91a86195b3615a98f7b07e0c51ac75f">00121</a>         <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> <a class="code" href="structs__quick__index.html#c91a86195b3615a98f7b07e0c51ac75f">PDO_TRS_MAP</a>;
<a name="l00122"></a>00122 }<a class="code" href="structs__quick__index.html">quick_index</a>;
<a name="l00123"></a>00123 
<a name="l00124"></a>00124 
<a name="l00125"></a>00125 <span class="comment">/*typedef struct struct_CO_Data CO_Data; */</span>
<a name="l00126"></a><a class="code" href="objdictdef_8h.html#91481b154cacc926ae5824fd121d6b43">00126</a> <span class="keyword">typedef</span> <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> (*<a class="code" href="objdictdef_8h.html#91481b154cacc926ae5824fd121d6b43">ODCallback_t</a>)(<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* d, <span class="keyword">const</span> <a class="code" href="structtd__indextable.html">indextable</a> *, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> bSubindex);
<a name="l00127"></a><a class="code" href="objdictdef_8h.html#a844575e4d9c9870137121bf0fb241fb">00127</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="structtd__indextable.html">indextable</a> * (*scanIndexOD_t)(<a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> wIndex, <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> * errorCode, <a class="code" href="objdictdef_8h.html#91481b154cacc926ae5824fd121d6b43">ODCallback_t</a> **Callback);
<a name="l00128"></a>00128 
<a name="l00129"></a>00129 <span class="comment">/************************** MACROS *********************************/</span>
<a name="l00130"></a>00130 
<a name="l00131"></a>00131 <span class="comment">/* CANopen usefull helpers */</span>
<a name="l00132"></a><a class="code" href="objdictdef_8h.html#9a52aa7b754f95659a55cdc46370c588">00132</a> <span class="preprocessor">#define GET_NODE_ID(m)         (m.cob_id.w &amp; 0x7f)</span>
<a name="l00133"></a><a class="code" href="objdictdef_8h.html#c885c914008647a5b9bd77475d1a4196">00133</a> <span class="preprocessor"></span><span class="preprocessor">#define GET_FUNCTION_CODE(m)     (m.cob_id.w &gt;&gt; 7)</span>
<a name="l00134"></a>00134 <span class="preprocessor"></span>
<a name="l00135"></a>00135 <span class="preprocessor">#endif </span><span class="comment">/* __objdictdef_h__ */</span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Jun 8 08:51:39 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>