doc/doxygen/html/can__peak__win32_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.
215
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
     1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
     2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
     3
<title>CanFestival: drivers/can_peak_win32/can_peak_win32.c Source File</title>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
     4
<link href="doxygen.css" rel="stylesheet" type="text/css">
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
     5
<link href="tabs.css" rel="stylesheet" type="text/css">
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
     6
</head><body>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
     7
<!-- Generated by Doxygen 1.5.1 -->
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
     8
<div class="tabs">
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
     9
  <ul>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    10
    <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    11
    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    12
    <li id="current"><a href="files.html"><span>Files</span></a></li>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    13
    <li><a href="dirs.html"><span>Directories</span></a></li>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    14
  </ul></div>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    15
<div class="tabs">
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    16
  <ul>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    17
    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    18
    <li><a href="globals.html"><span>Globals</span></a></li>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    19
  </ul></div>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    20
<div class="nav">
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    21
<a class="el" href="dir_d58fb241e647de6212c31ecccf9cbace.html">drivers</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_cd779dce9851c080a65607e200b2368c.html">can_peak_win32</a></div>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    22
<h1>can_peak_win32.c</h1><a href="can__peak__win32_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>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    23
<a name="l00002"></a>00002 <span class="comment">This file is part of CanFestival, a library implementing CanOpen Stack. </span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    24
<a name="l00003"></a>00003 <span class="comment"></span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    25
<a name="l00004"></a>00004 <span class="comment">Copyright (C): Edouard TISSERANT and Francis DUPIN</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    26
<a name="l00005"></a>00005 <span class="comment"></span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    27
<a name="l00006"></a>00006 <span class="comment">See COPYING file for copyrights details.</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    28
<a name="l00007"></a>00007 <span class="comment"></span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    29
<a name="l00008"></a>00008 <span class="comment">This library is free software; you can redistribute it and/or</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    30
<a name="l00009"></a>00009 <span class="comment">modify it under the terms of the GNU Lesser General Public</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    31
<a name="l00010"></a>00010 <span class="comment">License as published by the Free Software Foundation; either</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    32
<a name="l00011"></a>00011 <span class="comment">version 2.1 of the License, or (at your option) any later version.</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    33
<a name="l00012"></a>00012 <span class="comment"></span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    34
<a name="l00013"></a>00013 <span class="comment">This library is distributed in the hope that it will be useful,</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    35
<a name="l00014"></a>00014 <span class="comment">but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    36
<a name="l00015"></a>00015 <span class="comment">MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    37
<a name="l00016"></a>00016 <span class="comment">Lesser General Public License for more details.</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    38
<a name="l00017"></a>00017 <span class="comment"></span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    39
<a name="l00018"></a>00018 <span class="comment">You should have received a copy of the GNU Lesser General Public</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    40
<a name="l00019"></a>00019 <span class="comment">License along with this library; if not, write to the Free Software</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    41
<a name="l00020"></a>00020 <span class="comment">Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    42
<a name="l00021"></a>00021 <span class="comment">*/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    43
<a name="l00022"></a>00022 
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    44
<a name="l00023"></a>00023 <span class="preprocessor">#if defined(WIN32) &amp;&amp; !defined(__CYGWIN__)</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    45
<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#define usleep(micro) Sleep(micro%1000 ? (micro/1000) + 1 : (micro/1000))</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    46
<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#else</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    47
<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#include &lt;stdio.h&gt;</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    48
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;string.h&gt;</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    49
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;errno.h&gt;</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    50
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;fcntl.h&gt;</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    51
<a name="l00030"></a>00030 <span class="preprocessor">#endif</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    52
<a name="l00031"></a>00031 <span class="preprocessor"></span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    53
<a name="l00032"></a>00032 <span class="preprocessor">#include "cancfg.h"</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    54
<a name="l00033"></a>00033 <span class="preprocessor">#include "<a class="code" href="can__driver_8h.html">can_driver.h</a>"</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    55
<a name="l00034"></a>00034 
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    56
<a name="l00035"></a>00035 <span class="preprocessor">#ifndef extra_PCAN_init_params</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    57
<a name="l00036"></a><a class="code" href="can__peak__win32_8c.html#6c15c0d426ae2e61f69f3119d3fe486b">00036</a> <span class="preprocessor"></span><span class="preprocessor">        #define extra_PCAN_init_params </span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    58
<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">#else</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    59
<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">        #define extra_PCAN_init_params\</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    60
<a name="l00039"></a>00039 <span class="preprocessor">                ,getenv("PCANHwType") ? strtol(getenv("PCANHwType"),NULL,0):0\</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    61
<a name="l00040"></a>00040 <span class="preprocessor">                ,getenv("PCANIO_Port") ? strtol(getenv("PCANIO_Port"),NULL,0):0\</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    62
<a name="l00041"></a>00041 <span class="preprocessor">                ,getenv("PCANInterupt") ? strtol(getenv("PCANInterupt"),NULL,0):0</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    63
<a name="l00042"></a>00042 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    64
<a name="l00043"></a>00043 <span class="preprocessor"></span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    65
<a name="l00044"></a>00044 <span class="keyword">static</span> <a class="code" href="structstruct__s__BOARD.html">s_BOARD</a> *first_board = NULL;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    66
<a name="l00045"></a>00045 <span class="preprocessor">#ifdef PCAN2_HEADER_</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    67
<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="keyword">static</span> <a class="code" href="structstruct__s__BOARD.html">s_BOARD</a> *second_board = NULL;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    68
<a name="l00047"></a>00047 <span class="preprocessor">#endif</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    69
<a name="l00048"></a>00048 <span class="preprocessor"></span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    70
<a name="l00049"></a>00049 <span class="comment">//pthread_mutex_t PeakCan_mutex = PTHREAD_MUTEX_INITIALIZER;</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    71
<a name="l00050"></a>00050 
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    72
<a name="l00051"></a>00051 <span class="comment">// Define for rtr CAN message</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    73
<a name="l00052"></a><a class="code" href="can__peak__win32_8c.html#44ef8a15c3be0d9b410c0c21709a12c2">00052</a> <span class="preprocessor">#define CAN_INIT_TYPE_ST_RTR MSGTYPE_STANDARD | MSGTYPE_RTR</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    74
<a name="l00053"></a>00053 <span class="preprocessor"></span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    75
<a name="l00054"></a>00054 <span class="comment">/***************************************************************************/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    76
<a name="l00055"></a><a class="code" href="can__peak__win32_8c.html#6820d7fa32e6e79d432c6003e4c15c32">00055</a> <span class="keywordtype">int</span> <a class="code" href="can__peak__linux_8c.html#6820d7fa32e6e79d432c6003e4c15c32">TranslateBaudeRate</a>(<span class="keywordtype">char</span>* <a class="code" href="TestMasterSlave_2getopt_8c.html#db50a0eab9fed92fc3bfc7dfa4f2c410">optarg</a>){
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    77
<a name="l00056"></a>00056         <span class="keywordflow">if</span>(!strcmp( optarg, <span class="stringliteral">"1M"</span>)) <span class="keywordflow">return</span> CAN_BAUD_1M;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    78
<a name="l00057"></a>00057         <span class="keywordflow">if</span>(!strcmp( optarg, <span class="stringliteral">"500K"</span>)) <span class="keywordflow">return</span> CAN_BAUD_500K;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    79
<a name="l00058"></a>00058         <span class="keywordflow">if</span>(!strcmp( optarg, <span class="stringliteral">"250K"</span>)) <span class="keywordflow">return</span> CAN_BAUD_250K;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    80
<a name="l00059"></a>00059         <span class="keywordflow">if</span>(!strcmp( optarg, <span class="stringliteral">"125K"</span>)) <span class="keywordflow">return</span> CAN_BAUD_125K;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    81
<a name="l00060"></a>00060         <span class="keywordflow">if</span>(!strcmp( optarg, <span class="stringliteral">"100K"</span>)) <span class="keywordflow">return</span> CAN_BAUD_100K;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    82
<a name="l00061"></a>00061         <span class="keywordflow">if</span>(!strcmp( optarg, <span class="stringliteral">"50K"</span>)) <span class="keywordflow">return</span> CAN_BAUD_50K;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    83
<a name="l00062"></a>00062         <span class="keywordflow">if</span>(!strcmp( optarg, <span class="stringliteral">"20K"</span>)) <span class="keywordflow">return</span> CAN_BAUD_20K;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    84
<a name="l00063"></a>00063         <span class="keywordflow">if</span>(!strcmp( optarg, <span class="stringliteral">"10K"</span>)) <span class="keywordflow">return</span> CAN_BAUD_10K;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    85
<a name="l00064"></a>00064         <span class="keywordflow">if</span>(!strcmp( optarg, <span class="stringliteral">"5K"</span>)) <span class="keywordflow">return</span> CAN_BAUD_5K;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    86
<a name="l00065"></a>00065         <span class="keywordflow">if</span>(!strcmp( optarg, <span class="stringliteral">"none"</span>)) <span class="keywordflow">return</span> 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    87
<a name="l00066"></a>00066         <span class="keywordflow">return</span> 0x0000;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    88
<a name="l00067"></a>00067 }
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    89
<a name="l00068"></a>00068 
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    90
<a name="l00069"></a>00069 <span class="keywordtype">void</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    91
<a name="l00070"></a><a class="code" href="can__peak__win32_8c.html#9f623ce2d3a68e90dfdb1ff0d54a9b57">00070</a> <a class="code" href="can__peak__win32_8c.html#9f623ce2d3a68e90dfdb1ff0d54a9b57">canInit</a> (<a class="code" href="structstruct__s__BOARD.html">s_BOARD</a> *board)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    92
<a name="l00071"></a>00071 {
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    93
<a name="l00072"></a>00072         <span class="keywordtype">int</span> baudrate;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    94
<a name="l00073"></a>00073         
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    95
<a name="l00074"></a>00074 <span class="preprocessor">#ifdef PCAN2_HEADER_</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    96
<a name="l00075"></a>00075 <span class="preprocessor"></span>        <span class="comment">// if not the first handler</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    97
<a name="l00076"></a>00076         <span class="keywordflow">if</span>(second_board == (<a class="code" href="structstruct__s__BOARD.html">s_BOARD</a> *)board)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    98
<a name="l00077"></a>00077                 <span class="keywordflow">if</span>(baudrate = <a class="code" href="can__peak__linux_8c.html#6820d7fa32e6e79d432c6003e4c15c32">TranslateBaudeRate</a>(board-&gt;<a class="code" href="structstruct__s__BOARD.html#5316679ded23cf846c63c06ab51a4646">baudrate</a>))
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
    99
<a name="l00078"></a>00078                         CAN2_Init (baudrate,
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   100
<a name="l00079"></a>00079                           CAN_INIT_TYPE_ST <a class="code" href="can__peak__win32_8c.html#6c15c0d426ae2e61f69f3119d3fe486b">extra_PCAN_init_params</a>);
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   101
<a name="l00080"></a>00080 <span class="preprocessor">#endif</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   102
<a name="l00081"></a>00081 <span class="preprocessor"></span>        <span class="keywordflow">if</span>(first_board == (<a class="code" href="structstruct__s__BOARD.html">s_BOARD</a> *)board)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   103
<a name="l00082"></a>00082                 <span class="keywordflow">if</span>(baudrate = <a class="code" href="can__peak__linux_8c.html#6820d7fa32e6e79d432c6003e4c15c32">TranslateBaudeRate</a>(board-&gt;<a class="code" href="structstruct__s__BOARD.html#5316679ded23cf846c63c06ab51a4646">baudrate</a>))
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   104
<a name="l00083"></a>00083                         CAN_Init (baudrate,
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   105
<a name="l00084"></a>00084                           CAN_INIT_TYPE_ST extra_PCAN_init_params);
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   106
<a name="l00085"></a>00085 }
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   107
<a name="l00086"></a>00086 
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   108
<a name="l00087"></a>00087 <span class="comment">/*********functions which permit to communicate with the board****************/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   109
<a name="l00088"></a>00088 <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   110
<a name="l00089"></a><a class="code" href="can__peak__win32_8c.html#6b3248e95acf2b08d1fd8b42610cc5a6">00089</a> <a class="code" href="can__lincan_8c.html#6b3248e95acf2b08d1fd8b42610cc5a6">canReceive_driver</a> (<a class="code" href="unix_2applicfg_8h.html#712c7b28987b12b8d400df19c92d0f5e">CAN_HANDLE</a> fd0, <a class="code" href="structMessage.html">Message</a> * m)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   111
<a name="l00090"></a>00090 {
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   112
<a name="l00091"></a>00091         <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> data;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   113
<a name="l00092"></a>00092         TPCANMsg peakMsg;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   114
<a name="l00093"></a>00093 
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   115
<a name="l00094"></a>00094         DWORD Res;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   116
<a name="l00095"></a>00095 
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   117
<a name="l00096"></a>00096         <span class="keywordflow">do</span>{
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   118
<a name="l00097"></a>00097                 <span class="comment">// We read the queue looking for messages.</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   119
<a name="l00098"></a>00098                 <span class="comment">// </span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   120
<a name="l00099"></a>00099                 <span class="comment">//pthread_mutex_lock (&amp;PeakCan_mutex);</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   121
<a name="l00100"></a>00100 <span class="preprocessor">#ifdef PCAN2_HEADER_</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   122
<a name="l00101"></a>00101 <span class="preprocessor"></span>                <span class="comment">// if not the first handler</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   123
<a name="l00102"></a>00102                 <span class="keywordflow">if</span>(second_board == (<a class="code" href="structstruct__s__BOARD.html">s_BOARD</a> *)fd0)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   124
<a name="l00103"></a>00103                         Res = CAN2_Read (&amp;peakMsg);
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   125
<a name="l00104"></a>00104                 <span class="keywordflow">else</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   126
<a name="l00105"></a>00105 <span class="preprocessor">#endif</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   127
<a name="l00106"></a>00106 <span class="preprocessor"></span>                <span class="keywordflow">if</span>(first_board == (<a class="code" href="structstruct__s__BOARD.html">s_BOARD</a> *)fd0)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   128
<a name="l00107"></a>00107                         Res = CAN_Read (&amp;peakMsg);
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   129
<a name="l00108"></a>00108                 <span class="keywordflow">else</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   130
<a name="l00109"></a>00109                         Res = CAN_ERR_BUSOFF;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   131
<a name="l00110"></a>00110         
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   132
<a name="l00111"></a>00111                 <span class="comment">// A message was received</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   133
<a name="l00112"></a>00112                 <span class="comment">// We process the message(s)</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   134
<a name="l00113"></a>00113                 <span class="comment">// </span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   135
<a name="l00114"></a>00114                 <span class="keywordflow">if</span> (Res == CAN_ERR_OK)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   136
<a name="l00115"></a>00115                 {
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   137
<a name="l00116"></a>00116                         <span class="comment">// if something different that 11bit or rtr... problem</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   138
<a name="l00117"></a>00117                         <span class="keywordflow">if</span> (peakMsg.MSGTYPE &amp; ~(MSGTYPE_STANDARD | MSGTYPE_RTR))
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   139
<a name="l00118"></a>00118                         {
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   140
<a name="l00119"></a>00119                                 <span class="keywordflow">if</span> (peakMsg.MSGTYPE == CAN_ERR_BUSOFF)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   141
<a name="l00120"></a>00120                                 {
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   142
<a name="l00121"></a>00121                                         printf (<span class="stringliteral">"!!! Peak board read : re-init\n"</span>);
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   143
<a name="l00122"></a>00122                                         <a class="code" href="can__peak__win32_8c.html#9f623ce2d3a68e90dfdb1ff0d54a9b57">canInit</a>((<a class="code" href="structstruct__s__BOARD.html">s_BOARD</a>*) fd0);
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   144
<a name="l00123"></a>00123                                         usleep (10000);
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   145
<a name="l00124"></a>00124                                 }
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   146
<a name="l00125"></a>00125         
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   147
<a name="l00126"></a>00126                                 <span class="comment">// If status, return status if 29bit, return overrun</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   148
<a name="l00127"></a>00127                                 <span class="comment">//pthread_mutex_unlock (&amp;PeakCan_mutex);</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   149
<a name="l00128"></a>00128                                 <span class="keywordflow">return</span> peakMsg.MSGTYPE ==
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   150
<a name="l00129"></a>00129                                         MSGTYPE_STATUS ? peakMsg.DATA[2] : CAN_ERR_OVERRUN;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   151
<a name="l00130"></a>00130                         }
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   152
<a name="l00131"></a>00131                         m-&gt;<a class="code" href="structMessage.html#c5d40bde75d015beb48293c052a218b5">cob_id</a>.<a class="code" href="structSHORT__CAN.html#614e1c6a40f1261e2b15ad69b19e9698">w</a> = peakMsg.ID;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   153
<a name="l00132"></a>00132                         <span class="keywordflow">if</span> (peakMsg.MSGTYPE == CAN_INIT_TYPE_ST)        <span class="comment">/* bits of MSGTYPE_ */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   154
<a name="l00133"></a>00133                                 m-&gt;<a class="code" href="structMessage.html#41c5a4e7eaeb2c2ae1af2b2c83129615">rtr</a> = 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   155
<a name="l00134"></a>00134                         <span class="keywordflow">else</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   156
<a name="l00135"></a>00135                                 m-&gt;<a class="code" href="structMessage.html#41c5a4e7eaeb2c2ae1af2b2c83129615">rtr</a> = 1;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   157
<a name="l00136"></a>00136                         m-&gt;<a class="code" href="structMessage.html#d1dd9a88dda088ff4c7073d49613613d">len</a> = peakMsg.LEN;   <span class="comment">/* count of data bytes (0..8) */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   158
<a name="l00137"></a>00137                         <span class="keywordflow">for</span> (data = 0; data &lt; peakMsg.LEN; data++)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   159
<a name="l00138"></a>00138                                 m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[data] = peakMsg.DATA[data];     <span class="comment">/* data bytes, up to 8 */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   160
<a name="l00139"></a>00139         
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   161
<a name="l00140"></a>00140                 }<span class="keywordflow">else</span>{
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   162
<a name="l00141"></a>00141                 <span class="comment">//pthread_mutex_unlock (&amp;PeakCan_mutex);</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   163
<a name="l00142"></a>00142                 <span class="comment">//if (Res != CAN_ERR_OK)</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   164
<a name="l00143"></a>00143                 <span class="comment">//{</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   165
<a name="l00144"></a>00144                         <span class="keywordflow">if</span> (!
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   166
<a name="l00145"></a>00145                                 (Res &amp; CAN_ERR_QRCVEMPTY || Res &amp; CAN_ERR_BUSLIGHT
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   167
<a name="l00146"></a>00146                                  || Res &amp; CAN_ERR_BUSHEAVY))
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   168
<a name="l00147"></a>00147                         {
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   169
<a name="l00148"></a>00148                                 printf (<span class="stringliteral">"canReceive returned error (%d)\n"</span>, Res);
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   170
<a name="l00149"></a>00149                                 <span class="keywordflow">return</span> 1;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   171
<a name="l00150"></a>00150                         }
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   172
<a name="l00151"></a>00151                         usleep (1000);          
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   173
<a name="l00152"></a>00152                 }
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   174
<a name="l00153"></a>00153         }<span class="keywordflow">while</span>(Res != CAN_ERR_OK);
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   175
<a name="l00154"></a>00154         <span class="keywordflow">return</span> 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   176
<a name="l00155"></a>00155 }
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   177
<a name="l00156"></a>00156 
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   178
<a name="l00157"></a>00157 <span class="comment">/***************************************************************************/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   179
<a name="l00158"></a>00158 <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   180
<a name="l00159"></a><a class="code" href="can__peak__win32_8c.html#def95aee49efa13dd047d0b3b5507ad3">00159</a> <a class="code" href="can__lincan_8c.html#def95aee49efa13dd047d0b3b5507ad3">canSend_driver</a> (<a class="code" href="unix_2applicfg_8h.html#712c7b28987b12b8d400df19c92d0f5e">CAN_HANDLE</a> fd0, <a class="code" href="structMessage.html">Message</a> * m)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   181
<a name="l00160"></a>00160 {
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   182
<a name="l00161"></a>00161         <a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">UNS8</a> data;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   183
<a name="l00162"></a>00162         TPCANMsg peakMsg;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   184
<a name="l00163"></a>00163         peakMsg.ID = m-&gt;<a class="code" href="structMessage.html#c5d40bde75d015beb48293c052a218b5">cob_id</a>.<a class="code" href="structSHORT__CAN.html#614e1c6a40f1261e2b15ad69b19e9698">w</a>;       <span class="comment">/* 11/29 bit code */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   185
<a name="l00164"></a>00164         <span class="keywordflow">if</span> (m-&gt;<a class="code" href="structMessage.html#41c5a4e7eaeb2c2ae1af2b2c83129615">rtr</a> == 0)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   186
<a name="l00165"></a>00165                 peakMsg.MSGTYPE = CAN_INIT_TYPE_ST;     <span class="comment">/* bits of MSGTYPE_ */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   187
<a name="l00166"></a>00166         <span class="keywordflow">else</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   188
<a name="l00167"></a>00167         {
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   189
<a name="l00168"></a>00168                 peakMsg.MSGTYPE = <a class="code" href="can__peak__linux_8c.html#44ef8a15c3be0d9b410c0c21709a12c2">CAN_INIT_TYPE_ST_RTR</a>; <span class="comment">/* bits of MSGTYPE_ */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   190
<a name="l00169"></a>00169         }
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   191
<a name="l00170"></a>00170         peakMsg.LEN = m-&gt;<a class="code" href="structMessage.html#d1dd9a88dda088ff4c7073d49613613d">len</a>;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   192
<a name="l00171"></a>00171         <span class="comment">/* count of data bytes (0..8) */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   193
<a name="l00172"></a>00172         <span class="keywordflow">for</span> (data = 0; data &lt; m-&gt;<a class="code" href="structMessage.html#d1dd9a88dda088ff4c7073d49613613d">len</a>; data++)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   194
<a name="l00173"></a>00173                 peakMsg.DATA[data] = m-&gt;<a class="code" href="structMessage.html#229865b09691e658677ba76f2d82ce89">data</a>[data];     <span class="comment">/* data bytes, up to 8 */</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   195
<a name="l00174"></a>00174         <span class="keywordflow">do</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   196
<a name="l00175"></a>00175         {
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   197
<a name="l00176"></a>00176 #ifdef PCAN2_HEADER_
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   198
<a name="l00177"></a>00177                 <span class="comment">// if not the first handler</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   199
<a name="l00178"></a>00178                 <span class="keywordflow">if</span>(second_board == (<a class="code" href="structstruct__s__BOARD.html">s_BOARD</a> *)fd0)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   200
<a name="l00179"></a>00179                         errno = CAN2_Write (&amp;peakMsg);
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   201
<a name="l00180"></a>00180                 <span class="keywordflow">else</span> 
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   202
<a name="l00181"></a>00181 <span class="preprocessor">#endif</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   203
<a name="l00182"></a>00182 <span class="preprocessor"></span>                <span class="keywordflow">if</span>(first_board == (<a class="code" href="structstruct__s__BOARD.html">s_BOARD</a> *)fd0)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   204
<a name="l00183"></a>00183                         errno = CAN_Write (&amp;peakMsg);
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   205
<a name="l00184"></a>00184                 <span class="keywordflow">else</span> 
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   206
<a name="l00185"></a>00185                         <span class="keywordflow">goto</span> fail;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   207
<a name="l00186"></a>00186                 <span class="keywordflow">if</span> (errno)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   208
<a name="l00187"></a>00187                 {
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   209
<a name="l00188"></a>00188                         <span class="keywordflow">if</span> (errno == CAN_ERR_BUSOFF)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   210
<a name="l00189"></a>00189                         {
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   211
<a name="l00190"></a>00190                                 printf (<span class="stringliteral">"!!! Peak board write : re-init\n"</span>);
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   212
<a name="l00191"></a>00191                                 <a class="code" href="can__peak__win32_8c.html#9f623ce2d3a68e90dfdb1ff0d54a9b57">canInit</a>((<a class="code" href="structstruct__s__BOARD.html">s_BOARD</a>*)fd0);
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   213
<a name="l00192"></a>00192                                 usleep (10000);
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   214
<a name="l00193"></a>00193                         }
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   215
<a name="l00194"></a>00194                         usleep (1000);
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   216
<a name="l00195"></a>00195                 }
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   217
<a name="l00196"></a>00196         }
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   218
<a name="l00197"></a>00197         <span class="keywordflow">while</span> (errno != CAN_ERR_OK);
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   219
<a name="l00198"></a>00198         <span class="keywordflow">return</span> 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   220
<a name="l00199"></a>00199 fail:
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   221
<a name="l00200"></a>00200         <span class="keywordflow">return</span> 1;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   222
<a name="l00201"></a>00201 }
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   223
<a name="l00202"></a>00202 
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   224
<a name="l00203"></a>00203 <span class="comment">/***************************************************************************/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   225
<a name="l00204"></a>00204 <a class="code" href="unix_2applicfg_8h.html#712c7b28987b12b8d400df19c92d0f5e">CAN_HANDLE</a>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   226
<a name="l00205"></a><a class="code" href="can__peak__win32_8c.html#945403aba7f36acbd2e7160ade361bab">00205</a> <a class="code" href="can__lincan_8c.html#945403aba7f36acbd2e7160ade361bab">canOpen_driver</a> (<a class="code" href="structstruct__s__BOARD.html">s_BOARD</a> * board)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   227
<a name="l00206"></a>00206 {
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   228
<a name="l00207"></a>00207 <span class="preprocessor">#ifdef PCAN2_HEADER_</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   229
<a name="l00208"></a>00208 <span class="preprocessor"></span>        <span class="keywordflow">if</span>(first_board != NULL &amp;&amp; second_board != NULL)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   230
<a name="l00209"></a>00209 <span class="preprocessor">#else</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   231
<a name="l00210"></a>00210 <span class="preprocessor"></span>        <span class="keywordflow">if</span>(first_board != NULL)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   232
<a name="l00211"></a>00211 <span class="preprocessor">#endif</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   233
<a name="l00212"></a>00212 <span class="preprocessor"></span>        {
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   234
<a name="l00213"></a>00213                 fprintf (stderr, <span class="stringliteral">"Open failed.\n"</span>);
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   235
<a name="l00214"></a>00214                 fprintf (stderr,
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   236
<a name="l00215"></a>00215                                  <span class="stringliteral">"can_peak_win32.c: no more can port available with this pcan library\n"</span>);
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   237
<a name="l00216"></a>00216                 fprintf (stderr,
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   238
<a name="l00217"></a>00217                                  <span class="stringliteral">"can_peak_win32.c: please link another executable with another pcan lib\n"</span>);
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   239
<a name="l00218"></a>00218                 <span class="keywordflow">return</span> NULL;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   240
<a name="l00219"></a>00219         }
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   241
<a name="l00220"></a>00220 
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   242
<a name="l00221"></a>00221 <span class="preprocessor">#ifdef PCAN2_HEADER_</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   243
<a name="l00222"></a>00222 <span class="preprocessor"></span>        <span class="keywordflow">if</span>(first_board == NULL)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   244
<a name="l00223"></a>00223                 first_board = board;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   245
<a name="l00224"></a>00224         <span class="keywordflow">else</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   246
<a name="l00225"></a>00225                 second_board = board; 
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   247
<a name="l00226"></a>00226 <span class="preprocessor">#else</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   248
<a name="l00227"></a>00227 <span class="preprocessor"></span>        first_board = board;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   249
<a name="l00228"></a>00228 <span class="preprocessor">#endif</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   250
<a name="l00229"></a>00229 <span class="preprocessor"></span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   251
<a name="l00230"></a>00230         <a class="code" href="can__peak__win32_8c.html#9f623ce2d3a68e90dfdb1ff0d54a9b57">canInit</a>(board);
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   252
<a name="l00231"></a>00231         
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   253
<a name="l00232"></a>00232         <span class="keywordflow">return</span> (<a class="code" href="unix_2applicfg_8h.html#712c7b28987b12b8d400df19c92d0f5e">CAN_HANDLE</a>)board;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   254
<a name="l00233"></a>00233 }
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   255
<a name="l00234"></a>00234 
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   256
<a name="l00235"></a>00235 <span class="comment">/***************************************************************************/</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   257
<a name="l00236"></a>00236 <span class="keywordtype">int</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   258
<a name="l00237"></a><a class="code" href="can__peak__win32_8c.html#76e6a915d0e40a23b863198b2aaa5545">00237</a> <a class="code" href="can__lincan_8c.html#76e6a915d0e40a23b863198b2aaa5545">canClose_driver</a> (<a class="code" href="unix_2applicfg_8h.html#712c7b28987b12b8d400df19c92d0f5e">CAN_HANDLE</a> fd0)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   259
<a name="l00238"></a>00238 {
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   260
<a name="l00239"></a>00239 <span class="preprocessor">#ifdef PCAN2_HEADER_</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   261
<a name="l00240"></a>00240 <span class="preprocessor"></span>        <span class="comment">// if not the first handler</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   262
<a name="l00241"></a>00241         <span class="keywordflow">if</span>(second_board == (<a class="code" href="structstruct__s__BOARD.html">s_BOARD</a> *)fd0)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   263
<a name="l00242"></a>00242         {
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   264
<a name="l00243"></a>00243                 CAN2_Close ();
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   265
<a name="l00244"></a>00244                 second_board = (<a class="code" href="structstruct__s__BOARD.html">s_BOARD</a> *)NULL;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   266
<a name="l00245"></a>00245         }<span class="keywordflow">else</span>   
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   267
<a name="l00246"></a>00246 <span class="preprocessor">#endif</span>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   268
<a name="l00247"></a>00247 <span class="preprocessor"></span>        <span class="keywordflow">if</span>(first_board == (<a class="code" href="structstruct__s__BOARD.html">s_BOARD</a> *)fd0)
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   269
<a name="l00248"></a>00248         {
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   270
<a name="l00249"></a>00249                 CAN_Close ();
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   271
<a name="l00250"></a>00250                 first_board = (<a class="code" href="structstruct__s__BOARD.html">s_BOARD</a> *)NULL;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   272
<a name="l00251"></a>00251         }
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   273
<a name="l00252"></a>00252         <span class="keywordflow">return</span> 0;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   274
<a name="l00253"></a>00253 }
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   275
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Jun 8 08:51:38 2007 for CanFestival by&nbsp;
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   276
<a href="http://www.doxygen.org/index.html">
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   277
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   278
</body>
f49e5a6b7804 Manual and Documentation finish
nico
parents:
diff changeset
   279
</html>