doc/doxygen/html/objdictdef_8h-source.html
author etisserant
Fri, 01 Feb 2008 18:06:55 +0100
changeset 378 d2abf6c8c27b
parent 240 34654679f262
permissions -rw-r--r--
As requested long ago, added CoData* parameter to all this applications callback, let application designer use identical callback for multiple nodes, and reduce source code length.

Concerned callbacks :

initialisation
preOperational
operational
stopped
heartbeatError
post_sync
post_TPDO
post_SlaveBootup
storeODSubIndex
post_emcy
<!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_bb27f6e70a4a8ab6966321815f15a33d.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#ed769b1b67d24f9d335f428ab6e33923">00032</a> <span class="preprocessor">#define boolean         0x01</span>
<a name="l00033"></a><a class="code" href="objdictdef_8h.html#fe278201acd644c29f8d24f0335726a8">00033</a> <span class="preprocessor"></span><span class="preprocessor">#define int8            0x02</span>
<a name="l00034"></a><a class="code" href="objdictdef_8h.html#c758f3869e242fa992ea36afc986ce27">00034</a> <span class="preprocessor"></span><span class="preprocessor">#define int16           0x03</span>
<a name="l00035"></a><a class="code" href="objdictdef_8h.html#b98bc9d7e1e4d8df6f7eebb4d5998e7c">00035</a> <span class="preprocessor"></span><span class="preprocessor">#define int32           0x04</span>
<a name="l00036"></a><a class="code" href="objdictdef_8h.html#61bd89decb0fbe22d804bd0d33a65e87">00036</a> <span class="preprocessor"></span><span class="preprocessor">#define uint8           0x05</span>
<a name="l00037"></a><a class="code" href="objdictdef_8h.html#b9dd3eca97609bdd809ec9ca9e0d48d2">00037</a> <span class="preprocessor"></span><span class="preprocessor">#define uint16          0x06</span>
<a name="l00038"></a><a class="code" href="objdictdef_8h.html#c94de30d6b6063024e06de2cdabc7674">00038</a> <span class="preprocessor"></span><span class="preprocessor">#define uint32          0x07</span>
<a name="l00039"></a><a class="code" href="objdictdef_8h.html#65a8ff465aaeda5bdbe8dba7f9d08363">00039</a> <span class="preprocessor"></span><span class="preprocessor">#define real32          0x08</span>
<a name="l00040"></a><a class="code" href="objdictdef_8h.html#851e2f30538bfdede632203997bf1b39">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#096c5c821e0c1e5f9568876d76613f4b">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#a666920f15c88f528f7c7f04637377a4">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#6bfecc5ff3b3964fb6bc262b356da7a7">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#897c82c737476245ede7a570dc9d5d70">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#f20c7174fbe361dc63f45c4ba910da9a">00046</a> <span class="preprocessor">#define domain          0x0F</span>
<a name="l00047"></a><a class="code" href="objdictdef_8h.html#6637c12a51fc33530237b41effdd2b96">00047</a> <span class="preprocessor"></span><span class="preprocessor">#define int24           0x10</span>
<a name="l00048"></a><a class="code" href="objdictdef_8h.html#77a12edeb86d1bc79a9466b010c90e2b">00048</a> <span class="preprocessor"></span><span class="preprocessor">#define real64          0x11</span>
<a name="l00049"></a><a class="code" href="objdictdef_8h.html#3729ed5dc6fb9d9558e7ac7e6319aaf6">00049</a> <span class="preprocessor"></span><span class="preprocessor">#define int40           0x12</span>
<a name="l00050"></a><a class="code" href="objdictdef_8h.html#7aec4c01f65b146c6832853d932d0d3a">00050</a> <span class="preprocessor"></span><span class="preprocessor">#define int48           0x13</span>
<a name="l00051"></a><a class="code" href="objdictdef_8h.html#3000af938fc72f69317b351cfcef773c">00051</a> <span class="preprocessor"></span><span class="preprocessor">#define int56           0x14</span>
<a name="l00052"></a><a class="code" href="objdictdef_8h.html#3ee2e2c67d9d581d6d3d54eeb803d065">00052</a> <span class="preprocessor"></span><span class="preprocessor">#define int64           0x15</span>
<a name="l00053"></a><a class="code" href="objdictdef_8h.html#978a417b1031d34c1a34221b9aaa1a0f">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#5a2a350a198aa452997c755dd89211a3">00055</a> <span class="preprocessor">#define uint40          0x18</span>
<a name="l00056"></a><a class="code" href="objdictdef_8h.html#8729abf1a7679f8d6ad39d96f459160e">00056</a> <span class="preprocessor"></span><span class="preprocessor">#define uint48          0x19</span>
<a name="l00057"></a><a class="code" href="objdictdef_8h.html#6e44f8289931640920f169bc0275e185">00057</a> <span class="preprocessor"></span><span class="preprocessor">#define uint56          0x1A</span>
<a name="l00058"></a><a class="code" href="objdictdef_8h.html#1c10f0f8413a32dbbf6237d6d640b351">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#e061ad23817ee5076ab5fc6e295a968b">00060</a> <span class="preprocessor">#define pdo_communication_parameter 0x20</span>
<a name="l00061"></a><a class="code" href="objdictdef_8h.html#f5dbef4bad031028132f15d968e7b4e4">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#be64019e4c4362c402ae56adfb338e46">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#b02d6926840c8ea358018c4db05954cd">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="l00073"></a><a class="code" href="objdictdef_8h.html#ad0aec3e0810593c9047b44d01209927">00073</a> <span class="preprocessor">#define RW     0x00  </span>
<a name="l00074"></a><a class="code" href="objdictdef_8h.html#fa98b1e8ac7fd342fed86dfe47c27a79">00074</a> <span class="preprocessor"></span><span class="preprocessor">#define WO     0x01</span>
<a name="l00075"></a><a class="code" href="objdictdef_8h.html#4e5cfad73992271b5a0c08edbef28566">00075</a> <span class="preprocessor"></span><span class="preprocessor">#define RO     0x02</span>
<a name="l00076"></a>00076 <span class="preprocessor"></span>
<a name="l00077"></a><a class="code" href="objdictdef_8h.html#3f60685d78c2480aadeefa9d2e9153e6">00077</a> <span class="preprocessor">#define TO_BE_SAVE  0x04</span>
<a name="l00078"></a>00078 <span class="preprocessor"></span>
<a name="l00079"></a>00079 <span class="comment">/************************ STRUCTURES ****************************/</span>
<a name="l00083"></a><a class="code" href="structtd__subindex.html">00083</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structtd__subindex.html">td_subindex</a>
<a name="l00084"></a>00084 {
<a name="l00085"></a><a class="code" href="structtd__subindex.html#4e290e6acf2d9f203e629d5aa8c936f2">00085</a>     <a class="code" href="hcs12_2applicfg_8h.html#c2e754635928189b98cf3f5b7e6dbffb">UNS8</a>                    <a class="code" href="structtd__subindex.html#4e290e6acf2d9f203e629d5aa8c936f2">bAccessType</a>;
<a name="l00086"></a><a class="code" href="structtd__subindex.html#defc3cce96209dd8ca739d86e7eb2812">00086</a>     <a class="code" href="hcs12_2applicfg_8h.html#c2e754635928189b98cf3f5b7e6dbffb">UNS8</a>                    <a class="code" href="structtd__subindex.html#defc3cce96209dd8ca739d86e7eb2812">bDataType</a>; <span class="comment">/* Defines of what datatype the entry is */</span>
<a name="l00087"></a><a class="code" href="structtd__subindex.html#c0998f016ef208dfc529f71ec94273a6">00087</a>     <a class="code" href="hcs12_2applicfg_8h.html#c2e754635928189b98cf3f5b7e6dbffb">UNS8</a>                    <a class="code" href="structtd__subindex.html#c0998f016ef208dfc529f71ec94273a6">size</a>;      <span class="comment">/* The size (in Byte) of the variable */</span>
<a name="l00088"></a><a class="code" href="structtd__subindex.html#37815d4ca1a02a25c0f7a66c53902ee5">00088</a>     <span class="keywordtype">void</span>*                   <a class="code" href="structtd__subindex.html#37815d4ca1a02a25c0f7a66c53902ee5">pObject</a>;   <span class="comment">/* This is the pointer of the Variable */</span>
<a name="l00089"></a>00089 } <a class="code" href="structtd__subindex.html">subindex</a>;
<a name="l00090"></a>00090 
<a name="l00093"></a><a class="code" href="structtd__indextable.html">00093</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structtd__indextable.html">td_indextable</a>
<a name="l00094"></a>00094 {
<a name="l00095"></a><a class="code" href="structtd__indextable.html#ac79f81f711d3f7962ea6042ab8ee0bb">00095</a>     <a class="code" href="structtd__subindex.html">subindex</a>*   <a class="code" href="structtd__indextable.html#ac79f81f711d3f7962ea6042ab8ee0bb">pSubindex</a>;   <span class="comment">/* Pointer to the subindex */</span>
<a name="l00096"></a><a class="code" href="structtd__indextable.html#24e7783361a558825a656e4bcb15e659">00096</a>     <a class="code" href="hcs12_2applicfg_8h.html#c2e754635928189b98cf3f5b7e6dbffb">UNS8</a>   <a class="code" href="structtd__indextable.html#24e7783361a558825a656e4bcb15e659">bSubCount</a>;   <span class="comment">/* the count of valid entries for this subindex</span>
<a name="l00097"></a>00097 <span class="comment">                         * This count here defines how many memory has been</span>
<a name="l00098"></a>00098 <span class="comment">                         * allocated. this memory does not have to be used.</span>
<a name="l00099"></a>00099 <span class="comment">                         */</span>
<a name="l00100"></a><a class="code" href="structtd__indextable.html#886a98ee4bd1ff0cd6182d0b0be8c486">00100</a>     <a class="code" href="hcs12_2applicfg_8h.html#14fad477a4a001f547db2731eaaaa1dc">UNS16</a>   <a class="code" href="structtd__indextable.html#886a98ee4bd1ff0cd6182d0b0be8c486">index</a>;
<a name="l00101"></a>00101 } <a class="code" href="structtd__indextable.html">indextable</a>;
<a name="l00102"></a>00102 
<a name="l00103"></a><a class="code" href="structs__quick__index.html">00103</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="l00104"></a><a class="code" href="structs__quick__index.html#a1b2b7ff7d8b24f7233041e468ba82a0">00104</a>         <a class="code" href="hcs12_2applicfg_8h.html#14fad477a4a001f547db2731eaaaa1dc">UNS16</a> <a class="code" href="structs__quick__index.html#a1b2b7ff7d8b24f7233041e468ba82a0">SDO_SVR</a>;
<a name="l00105"></a><a class="code" href="structs__quick__index.html#b37d4346859cd516ccd1d8c5568d50e6">00105</a>         <a class="code" href="hcs12_2applicfg_8h.html#14fad477a4a001f547db2731eaaaa1dc">UNS16</a> <a class="code" href="structs__quick__index.html#b37d4346859cd516ccd1d8c5568d50e6">SDO_CLT</a>;
<a name="l00106"></a><a class="code" href="structs__quick__index.html#7d473b93d199e099ae3cde431de49ebb">00106</a>         <a class="code" href="hcs12_2applicfg_8h.html#14fad477a4a001f547db2731eaaaa1dc">UNS16</a> <a class="code" href="structs__quick__index.html#7d473b93d199e099ae3cde431de49ebb">PDO_RCV</a>;
<a name="l00107"></a><a class="code" href="structs__quick__index.html#ba3d56319f2296a94aafb162453f39da">00107</a>         <a class="code" href="hcs12_2applicfg_8h.html#14fad477a4a001f547db2731eaaaa1dc">UNS16</a> <a class="code" href="structs__quick__index.html#ba3d56319f2296a94aafb162453f39da">PDO_RCV_MAP</a>;
<a name="l00108"></a><a class="code" href="structs__quick__index.html#3d3be3b6c3764c9fd6ee3fa1b86bcd3a">00108</a>         <a class="code" href="hcs12_2applicfg_8h.html#14fad477a4a001f547db2731eaaaa1dc">UNS16</a> <a class="code" href="structs__quick__index.html#3d3be3b6c3764c9fd6ee3fa1b86bcd3a">PDO_TRS</a>;
<a name="l00109"></a><a class="code" href="structs__quick__index.html#3e34760a48a65ef1cf6fd539576563b1">00109</a>         <a class="code" href="hcs12_2applicfg_8h.html#14fad477a4a001f547db2731eaaaa1dc">UNS16</a> <a class="code" href="structs__quick__index.html#3e34760a48a65ef1cf6fd539576563b1">PDO_TRS_MAP</a>;
<a name="l00110"></a>00110 }<a class="code" href="structs__quick__index.html">quick_index</a>;
<a name="l00111"></a>00111 
<a name="l00112"></a>00112 
<a name="l00113"></a>00113 <span class="comment">/*typedef struct struct_CO_Data CO_Data; */</span>
<a name="l00114"></a><a class="code" href="objdictdef_8h.html#01303c7a6ee17ba5678931e2756dd5e6">00114</a> <span class="keyword">typedef</span> <a class="code" href="hcs12_2applicfg_8h.html#a6a1b7af83d4106c1d1621bdb28d9c48">UNS32</a> (*<a class="code" href="objdictdef_8h.html#01303c7a6ee17ba5678931e2756dd5e6">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#c2e754635928189b98cf3f5b7e6dbffb">UNS8</a> bSubindex);
<a name="l00115"></a><a class="code" href="objdictdef_8h.html#e57fa11a3fd463f55ce79a23e4ddc6e2">00115</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#14fad477a4a001f547db2731eaaaa1dc">UNS16</a> wIndex, <a class="code" href="hcs12_2applicfg_8h.html#a6a1b7af83d4106c1d1621bdb28d9c48">UNS32</a> * errorCode, <a class="code" href="objdictdef_8h.html#01303c7a6ee17ba5678931e2756dd5e6">ODCallback_t</a> **Callback);
<a name="l00116"></a>00116 
<a name="l00117"></a>00117 <span class="comment">/************************** MACROS *********************************/</span>
<a name="l00118"></a>00118 
<a name="l00119"></a>00119 <span class="comment">/* CANopen usefull helpers */</span>
<a name="l00120"></a><a class="code" href="objdictdef_8h.html#3e3c82e6e0cea9c7a22de58000db6c07">00120</a> <span class="preprocessor">#define GET_NODE_ID(m)         (m.cob_id.w &amp; 0x7f)</span>
<a name="l00121"></a><a class="code" href="objdictdef_8h.html#3c3979b4526ae2178d24e4e041e5a358">00121</a> <span class="preprocessor"></span><span class="preprocessor">#define GET_FUNCTION_CODE(m)     (m.cob_id.w &gt;&gt; 7)</span>
<a name="l00122"></a>00122 <span class="preprocessor"></span>
<a name="l00123"></a>00123 <span class="preprocessor">#endif </span><span class="comment">/* __objdictdef_h__ */</span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Jul 2 19:10:16 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>