doc/doxygen/html/objacces_8c-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: src/objacces.c 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_c0a169d39c08973f879fd54f07b9e9f7.html">src</a></div>
<h1>objacces.c</h1><a href="objacces_8c.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</span>
<a name="l00003"></a>00003 <span class="comment">  Stack.</span>
<a name="l00004"></a>00004 <span class="comment"></span>
<a name="l00005"></a>00005 <span class="comment">  Copyright (C): Edouard TISSERANT and Francis DUPIN</span>
<a name="l00006"></a>00006 <span class="comment"></span>
<a name="l00007"></a>00007 <span class="comment">  See COPYING file for copyrights details.</span>
<a name="l00008"></a>00008 <span class="comment"></span>
<a name="l00009"></a>00009 <span class="comment">  This library is free software; you can redistribute it and/or</span>
<a name="l00010"></a>00010 <span class="comment">  modify it under the terms of the GNU Lesser General Public</span>
<a name="l00011"></a>00011 <span class="comment">  License as published by the Free Software Foundation; either</span>
<a name="l00012"></a>00012 <span class="comment">  version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00013"></a>00013 <span class="comment"></span>
<a name="l00014"></a>00014 <span class="comment">  This library is distributed in the hope that it will be useful,</span>
<a name="l00015"></a>00015 <span class="comment">  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00016"></a>00016 <span class="comment">  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
<a name="l00017"></a>00017 <span class="comment">  Lesser General Public License for more details.</span>
<a name="l00018"></a>00018 <span class="comment"></span>
<a name="l00019"></a>00019 <span class="comment">  You should have received a copy of the GNU Lesser General Public</span>
<a name="l00020"></a>00020 <span class="comment">  License along with this library; if not, write to the Free Software</span>
<a name="l00021"></a>00021 <span class="comment">  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307</span>
<a name="l00022"></a>00022 <span class="comment">  USA</span>
<a name="l00023"></a>00023 <span class="comment">*/</span>
<a name="l00037"></a>00037 <span class="comment">/* #define DEBUG_WAR_CONSOLE_ON */</span>
<a name="l00038"></a>00038 <span class="comment">/* #define DEBUG_ERR_CONSOLE_ON */</span>
<a name="l00039"></a>00039 
<a name="l00040"></a>00040 
<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="objacces_8h.html">objacces.h</a>"</span>
<a name="l00042"></a>00042 
<a name="l00043"></a>00043 
<a name="l00055"></a><a class="code" href="objacces_8h.html#75d39b2dadcdb48f7321c6f3766aad26">00055</a> <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> <a class="code" href="objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26">accessDictionaryError</a>(<a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> index, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> subIndex,
<a name="l00056"></a>00056                            <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> sizeDataDict, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> sizeDataGiven, <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> code)
<a name="l00057"></a>00057 {
<a name="l00058"></a>00058 <span class="preprocessor">#ifdef DEBUG_WAR_CONSOLE_ON</span>
<a name="l00059"></a>00059 <span class="preprocessor"></span>  <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x2B09,<span class="stringliteral">"Dictionary index : "</span>, index);
<a name="l00060"></a>00060   <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0X2B10,<span class="stringliteral">"           subindex : "</span>, subIndex);
<a name="l00061"></a>00061   <span class="keywordflow">switch</span> (code) {
<a name="l00062"></a>00062   <span class="keywordflow">case</span>  <a class="code" href="def_8h.html#c52e3a6802662a7fe61a4efdc5b12e52">OD_NO_SUCH_OBJECT</a>:
<a name="l00063"></a>00063     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x2B11,<span class="stringliteral">"Index not found "</span>, index);
<a name="l00064"></a>00064     <span class="keywordflow">break</span>;
<a name="l00065"></a>00065   <span class="keywordflow">case</span> <a class="code" href="def_8h.html#d5e7c0b1fe309d9d2f71a0eceb905d32">OD_NO_SUCH_SUBINDEX</a> :
<a name="l00066"></a>00066     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x2B12,<span class="stringliteral">"SubIndex not found "</span>, subIndex);
<a name="l00067"></a>00067     <span class="keywordflow">break</span>;
<a name="l00068"></a>00068   <span class="keywordflow">case</span> <a class="code" href="def_8h.html#53e6ac773b19b6d22d423eed2aeaa2af">OD_WRITE_NOT_ALLOWED</a> :
<a name="l00069"></a>00069     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x2B13,<span class="stringliteral">"Write not allowed, data is read only "</span>, index);
<a name="l00070"></a>00070     <span class="keywordflow">break</span>;
<a name="l00071"></a>00071   <span class="keywordflow">case</span> <a class="code" href="def_8h.html#61ccafe5e75997254b97211672886fa8">OD_LENGTH_DATA_INVALID</a> :
<a name="l00072"></a>00072     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x2B14,<span class="stringliteral">"Conflict size data. Should be (bytes)  : "</span>, sizeDataDict);
<a name="l00073"></a>00073     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x2B15,<span class="stringliteral">"But you have given the size  : "</span>, sizeDataGiven);
<a name="l00074"></a>00074     <span class="keywordflow">break</span>;
<a name="l00075"></a>00075   <span class="keywordflow">case</span> <a class="code" href="def_8h.html#4c29f0a96ace19f670f469540c554fd5">OD_NOT_MAPPABLE</a> :
<a name="l00076"></a>00076     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x2B16,<span class="stringliteral">"Not mappable data in a PDO at index    : "</span>, index);
<a name="l00077"></a>00077     <span class="keywordflow">break</span>;
<a name="l00078"></a>00078   <span class="keywordflow">case</span> <a class="code" href="def_8h.html#f483b080738d035e89f41e199f79c44e">OD_VALUE_TOO_LOW</a> :
<a name="l00079"></a>00079     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x2B17,<span class="stringliteral">"Value range error : value too low. SDOabort : "</span>, code);
<a name="l00080"></a>00080     <span class="keywordflow">break</span>;
<a name="l00081"></a>00081   <span class="keywordflow">case</span> <a class="code" href="def_8h.html#8fd6804c3f6d1de461233025389396cb">OD_VALUE_TOO_HIGH</a> :
<a name="l00082"></a>00082     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x2B18,<span class="stringliteral">"Value range error : value too high. SDOabort : "</span>, code);
<a name="l00083"></a>00083     <span class="keywordflow">break</span>;
<a name="l00084"></a>00084   <span class="keywordflow">default</span> :
<a name="l00085"></a>00085     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x2B20, <span class="stringliteral">"Unknown error code : "</span>, code);
<a name="l00086"></a>00086   }
<a name="l00087"></a>00087 <span class="preprocessor">#endif</span>
<a name="l00088"></a>00088 <span class="preprocessor"></span>  <span class="keywordflow">return</span> 0;
<a name="l00089"></a>00089 }
<a name="l00090"></a>00090 
<a name="l00105"></a><a class="code" href="objacces_8c.html#49e9444c8c8d39906a40a153366ed09c">00105</a> <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> <a class="code" href="objacces_8c.html#49e9444c8c8d39906a40a153366ed09c">_getODentry</a>( <a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>,
<a name="l00106"></a>00106                    <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> wIndex,
<a name="l00107"></a>00107                    <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> bSubindex,
<a name="l00108"></a>00108                    <span class="keywordtype">void</span> * pDestData,
<a name="l00109"></a>00109                    <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> * pExpectedSize,
<a name="l00110"></a>00110                    <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> * pDataType,
<a name="l00111"></a>00111                    <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> checkAccess,
<a name="l00112"></a>00112                    <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> endianize)
<a name="l00113"></a>00113 { <span class="comment">/* DO NOT USE MSG_ERR because the macro may send a PDO -&gt; infinite</span>
<a name="l00114"></a>00114 <span class="comment">    loop if it fails. */</span>
<a name="l00115"></a>00115   <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> errorCode;
<a name="l00116"></a>00116   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> szData;
<a name="l00117"></a>00117   <span class="keyword">const</span> <a class="code" href="structtd__indextable.html">indextable</a> *<a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>;
<a name="l00118"></a>00118   <a class="code" href="objdictdef_8h.html#91481b154cacc926ae5824fd121d6b43">ODCallback_t</a> *Callback;
<a name="l00119"></a>00119 
<a name="l00120"></a>00120   <a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a> = (*<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#1863bd74fef91ec89b4c1ff0bee2dfbf">scanIndexOD</a>)(wIndex, &amp;errorCode, &amp;Callback);
<a name="l00121"></a>00121 
<a name="l00122"></a>00122   <span class="keywordflow">if</span> (errorCode != <a class="code" href="def_8h.html#cb82b94eb8e368e8c347b2273b6e514e">OD_SUCCESSFUL</a>)
<a name="l00123"></a>00123     <span class="keywordflow">return</span> errorCode;
<a name="l00124"></a>00124   <span class="keywordflow">if</span>( <a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>-&gt;<a class="code" href="structtd__indextable.html#b0eaef21e60f3348e8928af66c2dbfcd">bSubCount</a> &lt;= bSubindex ) {
<a name="l00125"></a>00125     <span class="comment">/* Subindex not found */</span>
<a name="l00126"></a>00126     <a class="code" href="objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26">accessDictionaryError</a>(wIndex, bSubindex, 0, 0, <a class="code" href="def_8h.html#d5e7c0b1fe309d9d2f71a0eceb905d32">OD_NO_SUCH_SUBINDEX</a>);
<a name="l00127"></a>00127     <span class="keywordflow">return</span> <a class="code" href="def_8h.html#d5e7c0b1fe309d9d2f71a0eceb905d32">OD_NO_SUCH_SUBINDEX</a>;
<a name="l00128"></a>00128   }
<a name="l00129"></a>00129 
<a name="l00130"></a>00130   <span class="keywordflow">if</span> (checkAccess &amp;&amp; !(<a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>-&gt;<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[bSubindex].<a class="code" href="structtd__subindex.html#c9bfdd809125b0ff777f82158ac4043c">bAccessType</a> &amp; <a class="code" href="objdictdef_8h.html#170086e0b136507502f3f525a9693407">WO</a>)) {
<a name="l00131"></a>00131     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x2B30, <span class="stringliteral">"Access Type : "</span>, <a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>-&gt;<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[bSubindex].<a class="code" href="structtd__subindex.html#c9bfdd809125b0ff777f82158ac4043c">bAccessType</a>);
<a name="l00132"></a>00132     <a class="code" href="objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26">accessDictionaryError</a>(wIndex, bSubindex, 0, 0, <a class="code" href="def_8h.html#53e6ac773b19b6d22d423eed2aeaa2af">OD_WRITE_NOT_ALLOWED</a>);
<a name="l00133"></a>00133     <span class="keywordflow">return</span> <a class="code" href="def_8h.html#b83689b7bd34aa05b35545f3fdebbf2b">OD_READ_NOT_ALLOWED</a>;
<a name="l00134"></a>00134   }
<a name="l00135"></a>00135 
<a name="l00136"></a>00136   *pDataType = <a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>-&gt;<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[bSubindex].<a class="code" href="structtd__subindex.html#ee8e6e6a00f3766df634e3c5017d2162">bDataType</a>;
<a name="l00137"></a>00137   szData = <a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>-&gt;<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[bSubindex].<a class="code" href="structtd__subindex.html#660ca8ed5b240340229cfd07c6700d1b">size</a>;
<a name="l00138"></a>00138 
<a name="l00139"></a>00139   <span class="keywordflow">if</span>(*pExpectedSize == 0 ||
<a name="l00140"></a>00140      *pExpectedSize == szData ||
<a name="l00141"></a>00141      (*pDataType == <a class="code" href="objdictdef_8h.html#6a4b5f93c378207aee7ea8f8397d1fc9">visible_string</a> &amp;&amp; *pExpectedSize &lt; szData)) {
<a name="l00142"></a>00142     <span class="comment">/* We</span>
<a name="l00143"></a>00143 <span class="comment">      allow to fetch a shorter string than expected */</span>
<a name="l00144"></a>00144 
<a name="l00145"></a>00145 <span class="preprocessor">#  ifdef CANOPEN_BIG_ENDIAN</span>
<a name="l00146"></a>00146 <span class="preprocessor"></span>    <span class="keywordflow">if</span>(endianize &amp;&amp; *pDataType &gt; <span class="keywordtype">boolean</span> &amp;&amp; *pDataType &lt; <a class="code" href="objdictdef_8h.html#6a4b5f93c378207aee7ea8f8397d1fc9">visible_string</a>) {
<a name="l00147"></a>00147       <span class="comment">/* data must be transmited with low byte first */</span>
<a name="l00148"></a>00148       <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> i, j = 0;
<a name="l00149"></a>00149       <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(<span class="keywordtype">boolean</span>, <span class="stringliteral">"data type "</span>, *pDataType);
<a name="l00150"></a>00150       <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(<a class="code" href="objdictdef_8h.html#6a4b5f93c378207aee7ea8f8397d1fc9">visible_string</a>, <span class="stringliteral">"data type "</span>, *pDataType);
<a name="l00151"></a>00151       <span class="keywordflow">for</span> ( i = szData ; i &gt; 0 ; i--) {
<a name="l00152"></a>00152         <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(i,<span class="stringliteral">" "</span>, j);
<a name="l00153"></a>00153         ((<a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>*)pDestData)[j++] =
<a name="l00154"></a>00154           ((<a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>*)<a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>-&gt;<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[bSubindex].<a class="code" href="structtd__subindex.html#6c83d4e45acd437dcd6746fcf9b7495a">pObject</a>)[i-1];
<a name="l00155"></a>00155       }
<a name="l00156"></a>00156     }
<a name="l00157"></a>00157     <span class="keywordflow">else</span> <span class="comment">/* It it is a visible string no endianisation to perform */</span>
<a name="l00158"></a>00158       memcpy(pDestData, <a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>-&gt;<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[bSubindex].<a class="code" href="structtd__subindex.html#6c83d4e45acd437dcd6746fcf9b7495a">pObject</a>,szData);
<a name="l00159"></a>00159 <span class="preprocessor">#  else</span>
<a name="l00160"></a>00160 <span class="preprocessor"></span>    memcpy(pDestData, <a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>-&gt;<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[bSubindex].<a class="code" href="structtd__subindex.html#6c83d4e45acd437dcd6746fcf9b7495a">pObject</a>,szData);
<a name="l00161"></a>00161 <span class="preprocessor">#  endif</span>
<a name="l00162"></a>00162 <span class="preprocessor"></span>
<a name="l00163"></a>00163     *pExpectedSize = szData;
<a name="l00164"></a>00164 <span class="preprocessor">#if 0</span>
<a name="l00165"></a>00165 <span class="preprocessor"></span>    <span class="comment">/* Me laisser a, please ! (FD) */</span>
<a name="l00166"></a>00166     {
<a name="l00167"></a>00167       <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> i;
<a name="l00168"></a>00168       <span class="keywordflow">for</span> (i = 0 ; i &lt; 10 ; i++) {
<a name="l00169"></a>00169         <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(*pExpectedSize, <span class="stringliteral">"dic data= "</span>,
<a name="l00170"></a>00170                 *(<a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> *)(<a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>-&gt;<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[bSubindex].<a class="code" href="structtd__subindex.html#6c83d4e45acd437dcd6746fcf9b7495a">pObject</a> + i));
<a name="l00171"></a>00171       }
<a name="l00172"></a>00172 
<a name="l00173"></a>00173     }
<a name="l00174"></a>00174 <span class="preprocessor">#endif</span>
<a name="l00175"></a>00175 <span class="preprocessor"></span>    <span class="keywordflow">return</span> <a class="code" href="def_8h.html#cb82b94eb8e368e8c347b2273b6e514e">OD_SUCCESSFUL</a>;
<a name="l00176"></a>00176   }
<a name="l00177"></a>00177   <span class="keywordflow">else</span> { <span class="comment">/* Error ! */</span>
<a name="l00178"></a>00178     *pExpectedSize = szData;
<a name="l00179"></a>00179     <a class="code" href="objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26">accessDictionaryError</a>(wIndex, bSubindex, szData,
<a name="l00180"></a>00180                           *pExpectedSize, <a class="code" href="def_8h.html#61ccafe5e75997254b97211672886fa8">OD_LENGTH_DATA_INVALID</a>);
<a name="l00181"></a>00181     <span class="keywordflow">return</span> <a class="code" href="def_8h.html#61ccafe5e75997254b97211672886fa8">OD_LENGTH_DATA_INVALID</a>;
<a name="l00182"></a>00182   }
<a name="l00183"></a>00183 }
<a name="l00184"></a>00184 
<a name="l00198"></a><a class="code" href="objacces_8h.html#39c263a4bc5d2d824fefe22fdb4c2dac">00198</a> <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> <a class="code" href="objacces_8c.html#39c263a4bc5d2d824fefe22fdb4c2dac">getODentry</a>( <a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>,
<a name="l00199"></a>00199                   <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> wIndex,
<a name="l00200"></a>00200                   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> bSubindex,
<a name="l00201"></a>00201                   <span class="keywordtype">void</span> * pDestData,
<a name="l00202"></a>00202                   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> * pExpectedSize,
<a name="l00203"></a>00203                   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> * pDataType,
<a name="l00204"></a>00204                   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> checkAccess)
<a name="l00205"></a>00205 {
<a name="l00206"></a>00206   <span class="keywordflow">return</span> <a class="code" href="objacces_8c.html#49e9444c8c8d39906a40a153366ed09c">_getODentry</a>( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>,
<a name="l00207"></a>00207                       wIndex,
<a name="l00208"></a>00208                       bSubindex,
<a name="l00209"></a>00209                       pDestData,
<a name="l00210"></a>00210                       pExpectedSize,
<a name="l00211"></a>00211                       pDataType,
<a name="l00212"></a>00212                       checkAccess,
<a name="l00213"></a>00213                       1);<span class="comment">//endianize</span>
<a name="l00214"></a>00214 }
<a name="l00215"></a>00215 
<a name="l00229"></a><a class="code" href="objacces_8c.html#ed0728e75c0cf3a68c7c7a52a8148a2e">00229</a> <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> <a class="code" href="objacces_8c.html#ed0728e75c0cf3a68c7c7a52a8148a2e">readLocalDict</a>( <a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>,
<a name="l00230"></a>00230                      <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> wIndex,
<a name="l00231"></a>00231                      <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> bSubindex,
<a name="l00232"></a>00232                      <span class="keywordtype">void</span> * pDestData,
<a name="l00233"></a>00233                      <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> * pExpectedSize,
<a name="l00234"></a>00234                      <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> * pDataType,
<a name="l00235"></a>00235                      <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> checkAccess)
<a name="l00236"></a>00236 {
<a name="l00237"></a>00237   <span class="keywordflow">return</span> <a class="code" href="objacces_8c.html#49e9444c8c8d39906a40a153366ed09c">_getODentry</a>( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>,
<a name="l00238"></a>00238                       wIndex,
<a name="l00239"></a>00239                       bSubindex,
<a name="l00240"></a>00240                       pDestData,
<a name="l00241"></a>00241                       pExpectedSize,
<a name="l00242"></a>00242                       pDataType,
<a name="l00243"></a>00243                       checkAccess,
<a name="l00244"></a>00244                       0);<span class="comment">//do not endianize</span>
<a name="l00245"></a>00245 }
<a name="l00246"></a>00246 
<a name="l00260"></a><a class="code" href="objacces_8c.html#72f69950be4a1352fc78648c71454820">00260</a> <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> <a class="code" href="objacces_8c.html#72f69950be4a1352fc78648c71454820">_setODentry</a>( <a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>,
<a name="l00261"></a>00261                    <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> wIndex,
<a name="l00262"></a>00262                    <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> bSubindex,
<a name="l00263"></a>00263                    <span class="keywordtype">void</span> * pSourceData,
<a name="l00264"></a>00264                    <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> * pExpectedSize,
<a name="l00265"></a>00265                    <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> checkAccess,
<a name="l00266"></a>00266                    <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> endianize)
<a name="l00267"></a>00267 {
<a name="l00268"></a>00268   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> szData;
<a name="l00269"></a>00269   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> dataType;
<a name="l00270"></a>00270   <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> errorCode;
<a name="l00271"></a>00271   <span class="keyword">const</span> <a class="code" href="structtd__indextable.html">indextable</a> *<a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>;
<a name="l00272"></a>00272   <a class="code" href="objdictdef_8h.html#91481b154cacc926ae5824fd121d6b43">ODCallback_t</a> *Callback;
<a name="l00273"></a>00273 
<a name="l00274"></a>00274   <a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a> =(*<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#1863bd74fef91ec89b4c1ff0bee2dfbf">scanIndexOD</a>)(wIndex, &amp;errorCode, &amp;Callback);
<a name="l00275"></a>00275   <span class="keywordflow">if</span> (errorCode != <a class="code" href="def_8h.html#cb82b94eb8e368e8c347b2273b6e514e">OD_SUCCESSFUL</a>)
<a name="l00276"></a>00276     <span class="keywordflow">return</span> errorCode;
<a name="l00277"></a>00277 
<a name="l00278"></a>00278   <span class="keywordflow">if</span>( <a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>-&gt;<a class="code" href="structtd__indextable.html#b0eaef21e60f3348e8928af66c2dbfcd">bSubCount</a> &lt;= bSubindex ) {
<a name="l00279"></a>00279     <span class="comment">/* Subindex not found */</span>
<a name="l00280"></a>00280     <a class="code" href="objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26">accessDictionaryError</a>(wIndex, bSubindex, 0, *pExpectedSize, <a class="code" href="def_8h.html#d5e7c0b1fe309d9d2f71a0eceb905d32">OD_NO_SUCH_SUBINDEX</a>);
<a name="l00281"></a>00281     <span class="keywordflow">return</span> <a class="code" href="def_8h.html#d5e7c0b1fe309d9d2f71a0eceb905d32">OD_NO_SUCH_SUBINDEX</a>;
<a name="l00282"></a>00282   }
<a name="l00283"></a>00283   <span class="keywordflow">if</span> (checkAccess &amp;&amp; (<a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>-&gt;<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[bSubindex].<a class="code" href="structtd__subindex.html#c9bfdd809125b0ff777f82158ac4043c">bAccessType</a> == <a class="code" href="objdictdef_8h.html#628642b04c07236ae1e986c248a79ae5">RO</a>)) {
<a name="l00284"></a>00284     <a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">MSG_WAR</a>(0x2B25, <span class="stringliteral">"Access Type : "</span>, <a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>-&gt;<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[bSubindex].<a class="code" href="structtd__subindex.html#c9bfdd809125b0ff777f82158ac4043c">bAccessType</a>);
<a name="l00285"></a>00285     <a class="code" href="objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26">accessDictionaryError</a>(wIndex, bSubindex, 0, *pExpectedSize, <a class="code" href="def_8h.html#53e6ac773b19b6d22d423eed2aeaa2af">OD_WRITE_NOT_ALLOWED</a>);
<a name="l00286"></a>00286     <span class="keywordflow">return</span> <a class="code" href="def_8h.html#53e6ac773b19b6d22d423eed2aeaa2af">OD_WRITE_NOT_ALLOWED</a>;
<a name="l00287"></a>00287   }
<a name="l00288"></a>00288 
<a name="l00289"></a>00289 
<a name="l00290"></a>00290   dataType = <a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>-&gt;<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[bSubindex].<a class="code" href="structtd__subindex.html#ee8e6e6a00f3766df634e3c5017d2162">bDataType</a>;
<a name="l00291"></a>00291   szData = <a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>-&gt;<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[bSubindex].<a class="code" href="structtd__subindex.html#660ca8ed5b240340229cfd07c6700d1b">size</a>;
<a name="l00292"></a>00292 
<a name="l00293"></a>00293   <span class="keywordflow">if</span>( *pExpectedSize == 0 ||
<a name="l00294"></a>00294       *pExpectedSize == szData ||
<a name="l00295"></a>00295       (dataType == <a class="code" href="objdictdef_8h.html#6a4b5f93c378207aee7ea8f8397d1fc9">visible_string</a> &amp;&amp; *pExpectedSize &lt; szData)) <span class="comment">/* We</span>
<a name="l00296"></a>00296 <span class="comment">                                                                  allow to store a shorter string than entry size */</span>
<a name="l00297"></a>00297     {
<a name="l00298"></a>00298 <span class="preprocessor">#ifdef CANOPEN_BIG_ENDIAN</span>
<a name="l00299"></a>00299 <span class="preprocessor"></span>      <span class="keywordflow">if</span>(endianize &amp;&amp; dataType &gt; <span class="keywordtype">boolean</span> &amp;&amp; dataType &lt; <a class="code" href="objdictdef_8h.html#6a4b5f93c378207aee7ea8f8397d1fc9">visible_string</a>)
<a name="l00300"></a>00300         {
<a name="l00301"></a>00301           <span class="comment">/* we invert the data source directly. This let us do range</span>
<a name="l00302"></a>00302 <span class="comment">            testing without */</span>
<a name="l00303"></a>00303           <span class="comment">/* additional temp variable */</span>
<a name="l00304"></a>00304           <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> i;
<a name="l00305"></a>00305           <span class="keywordflow">for</span> ( i = 0 ; i &lt; ( <a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>-&gt;<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[bSubindex].<a class="code" href="structtd__subindex.html#660ca8ed5b240340229cfd07c6700d1b">size</a> &gt;&gt; 1)  ; i++)
<a name="l00306"></a>00306             {
<a name="l00307"></a>00307               <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> tmp =((<a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> *)pSourceData) [(<a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>-&gt;<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[bSubindex].<a class="code" href="structtd__subindex.html#660ca8ed5b240340229cfd07c6700d1b">size</a> - 1) - i];
<a name="l00308"></a>00308               ((<a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> *)pSourceData) [(<a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>-&gt;<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[bSubindex].<a class="code" href="structtd__subindex.html#660ca8ed5b240340229cfd07c6700d1b">size</a> - 1) - i] = ((UNS8 *)pSourceData)[i];
<a name="l00309"></a>00309               ((UNS8 *)pSourceData)[i] = tmp;
<a name="l00310"></a>00310             }
<a name="l00311"></a>00311         }
<a name="l00312"></a>00312 <span class="preprocessor">#endif</span>
<a name="l00313"></a>00313 <span class="preprocessor"></span>      errorCode = (*<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#a8e71f9e9e67d0a594bad7dbbe99a35a">valueRangeTest</a>)(dataType, pSourceData);
<a name="l00314"></a>00314       <span class="keywordflow">if</span> (errorCode) {
<a name="l00315"></a>00315         <a class="code" href="objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26">accessDictionaryError</a>(wIndex, bSubindex, szData, *pExpectedSize, errorCode);
<a name="l00316"></a>00316         <span class="keywordflow">return</span> errorCode;
<a name="l00317"></a>00317       }
<a name="l00318"></a>00318       memcpy(<a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>-&gt;<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[bSubindex].<a class="code" href="structtd__subindex.html#6c83d4e45acd437dcd6746fcf9b7495a">pObject</a>,pSourceData, *pExpectedSize);
<a name="l00319"></a>00319       *pExpectedSize = szData;
<a name="l00320"></a>00320 
<a name="l00321"></a>00321       <span class="comment">/* Callbacks */</span>
<a name="l00322"></a>00322       <span class="keywordflow">if</span>(Callback &amp;&amp; Callback[bSubindex]){
<a name="l00323"></a>00323         (*Callback[bSubindex])(<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>, bSubindex);
<a name="l00324"></a>00324       }
<a name="l00325"></a>00325 
<a name="l00326"></a>00326       <span class="comment">/* TODO : Store dans NVRAM */</span>
<a name="l00327"></a>00327       <span class="keywordflow">if</span> (<a class="code" href="dcf_8c.html#8bddcdce84393146515136d33d063060">ptrTable</a>-&gt;<a class="code" href="structtd__indextable.html#fdd93efce94f77d57c5778e04a6a225c">pSubindex</a>[bSubindex].<a class="code" href="structtd__subindex.html#c9bfdd809125b0ff777f82158ac4043c">bAccessType</a> &amp; <a class="code" href="objdictdef_8h.html#c9347ab621c5af56ecdc1ad6714a24cc">TO_BE_SAVE</a>){
<a name="l00328"></a>00328         (*<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#d6cd6ffa658b1ed35d887b6bacb990cf">storeODSubIndex</a>)(wIndex, bSubindex);
<a name="l00329"></a>00329       }
<a name="l00330"></a>00330       <span class="keywordflow">return</span> <a class="code" href="def_8h.html#cb82b94eb8e368e8c347b2273b6e514e">OD_SUCCESSFUL</a>;
<a name="l00331"></a>00331     }<span class="keywordflow">else</span>{
<a name="l00332"></a>00332       *pExpectedSize = szData;
<a name="l00333"></a>00333       <a class="code" href="objacces_8c.html#75d39b2dadcdb48f7321c6f3766aad26">accessDictionaryError</a>(wIndex, bSubindex, szData, *pExpectedSize, <a class="code" href="def_8h.html#61ccafe5e75997254b97211672886fa8">OD_LENGTH_DATA_INVALID</a>);
<a name="l00334"></a>00334       <span class="keywordflow">return</span> <a class="code" href="def_8h.html#61ccafe5e75997254b97211672886fa8">OD_LENGTH_DATA_INVALID</a>;
<a name="l00335"></a>00335     }
<a name="l00336"></a>00336 }
<a name="l00337"></a>00337 
<a name="l00350"></a><a class="code" href="objacces_8h.html#17e598cc1b2e60380e2e4e75afe9b3b0">00350</a> <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> <a class="code" href="objacces_8c.html#17e598cc1b2e60380e2e4e75afe9b3b0">setODentry</a>( <a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>,
<a name="l00351"></a>00351                   <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> wIndex,
<a name="l00352"></a>00352                   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> bSubindex,
<a name="l00353"></a>00353                   <span class="keywordtype">void</span> * pSourceData,
<a name="l00354"></a>00354                   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> * pExpectedSize,
<a name="l00355"></a>00355                   <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> checkAccess)
<a name="l00356"></a>00356 {
<a name="l00357"></a>00357   <span class="keywordflow">return</span> <a class="code" href="objacces_8c.html#72f69950be4a1352fc78648c71454820">_setODentry</a>( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>,
<a name="l00358"></a>00358                       wIndex,
<a name="l00359"></a>00359                       bSubindex,
<a name="l00360"></a>00360                       pSourceData,
<a name="l00361"></a>00361                       pExpectedSize,
<a name="l00362"></a>00362                       checkAccess,
<a name="l00363"></a>00363                       1);<span class="comment">//endianize</span>
<a name="l00364"></a>00364 }
<a name="l00365"></a>00365 
<a name="l00378"></a><a class="code" href="objacces_8h.html#7cc58d6e7711bd0d9fd75e8ff721ce36">00378</a> <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> <a class="code" href="objacces_8c.html#7cc58d6e7711bd0d9fd75e8ff721ce36">writeLocalDict</a>( <a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>,
<a name="l00379"></a>00379                       <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> wIndex,
<a name="l00380"></a>00380                       <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> bSubindex,
<a name="l00381"></a>00381                       <span class="keywordtype">void</span> * pSourceData,
<a name="l00382"></a>00382                       <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> * pExpectedSize,
<a name="l00383"></a>00383                       <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> checkAccess)
<a name="l00384"></a>00384 {
<a name="l00385"></a>00385   <span class="keywordflow">return</span> <a class="code" href="objacces_8c.html#72f69950be4a1352fc78648c71454820">_setODentry</a>( <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>,
<a name="l00386"></a>00386                       wIndex,
<a name="l00387"></a>00387                       bSubindex,
<a name="l00388"></a>00388                       pSourceData,
<a name="l00389"></a>00389                       pExpectedSize,
<a name="l00390"></a>00390                       checkAccess,
<a name="l00391"></a>00391                       0);<span class="comment">//do not endianize</span>
<a name="l00392"></a>00392 }
<a name="l00393"></a>00393 
<a name="l00404"></a><a class="code" href="objacces_8h.html#11e9f24840d05a6a622955b51f91af53">00404</a> <span class="keyword">const</span> <a class="code" href="structtd__indextable.html">indextable</a> * <a class="code" href="objacces_8c.html#11e9f24840d05a6a622955b51f91af53">scanIndexOD</a> (<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <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="l00405"></a>00405 {
<a name="l00406"></a>00406   <span class="keywordflow">return</span> (*<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>-&gt;<a class="code" href="structstruct__CO__Data.html#1863bd74fef91ec89b4c1ff0bee2dfbf">scanIndexOD</a>)(wIndex, errorCode, Callback);
<a name="l00407"></a>00407 }
<a name="l00408"></a>00408 
<a name="l00419"></a><a class="code" href="objacces_8h.html#514e7b9c13835a86446b1cd38fa34049">00419</a> <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> <a class="code" href="objacces_8c.html#514e7b9c13835a86446b1cd38fa34049">RegisterSetODentryCallBack</a>(<a class="code" href="structstruct__CO__Data.html">CO_Data</a>* <a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, <a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> wIndex, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> bSubindex, <a class="code" href="objdictdef_8h.html#91481b154cacc926ae5824fd121d6b43">ODCallback_t</a> Callback)
<a name="l00420"></a>00420 {
<a name="l00421"></a>00421   <a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">UNS32</a> errorCode;
<a name="l00422"></a>00422   <a class="code" href="objdictdef_8h.html#91481b154cacc926ae5824fd121d6b43">ODCallback_t</a> *CallbackList;
<a name="l00423"></a>00423 
<a name="l00424"></a>00424   <a class="code" href="objacces_8c.html#11e9f24840d05a6a622955b51f91af53">scanIndexOD</a> (<a class="code" href="structstruct__s__timer__entry.html#c08f4de0f4a517ce2bb72f18251cd13c">d</a>, wIndex, &amp;errorCode, &amp;CallbackList);
<a name="l00425"></a>00425   <span class="keywordflow">if</span>(errorCode == <a class="code" href="def_8h.html#cb82b94eb8e368e8c347b2273b6e514e">OD_SUCCESSFUL</a> &amp;&amp; CallbackList)
<a name="l00426"></a>00426     CallbackList[bSubindex] = Callback;
<a name="l00427"></a>00427   <span class="keywordflow">return</span> errorCode;
<a name="l00428"></a>00428 }
<a name="l00429"></a>00429 
<a name="l00436"></a><a class="code" href="objacces_8h.html#43bf8d2616cf3d7d713b4af3d33a139c">00436</a> <span class="keywordtype">void</span> <a class="code" href="objacces_8c.html#43bf8d2616cf3d7d713b4af3d33a139c">_storeODSubIndex</a> (<a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">UNS16</a> wIndex, <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> bSubindex){}
</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>