Fixed timer problem on late Heartbeat. Thanks to Jorge.
<!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: can_uvccm_win32 Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.1 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Data Structures</span></a></li>
<li><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="annotated.html"><span>Data Structures</span></a></li>
<li><a href="functions.html"><span>Data Fields</span></a></li>
</ul></div>
<h1>can_uvccm_win32 Class Reference</h1><!-- doxytag: class="can_uvccm_win32" --><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcan__uvccm__win32.html#44d72452ded768c3fff1addb9ea2dfdb">can_uvccm_win32</a> (<a class="el" href="structstruct__s__BOARD.html">s_BOARD</a> *board)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcan__uvccm__win32.html#ad2604fb37772689e837f1bbb396ee73">~can_uvccm_win32</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcan__uvccm__win32.html#8cdbccec5f1cd2e26056d296c3087290">send</a> (const <a class="el" href="structMessage.html">Message</a> *m)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcan__uvccm__win32.html#a49341f3f4ae90cb45ba7eba2fa22682">receive</a> (<a class="el" href="structMessage.html">Message</a> *m)</td></tr>
<tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcan__uvccm__win32.html#b71c16fad5ab189cb3fabc09228dce61">open_rs232</a> (int port=1, int baud_rate=57600)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcan__uvccm__win32.html#90d854d7d320ba381ad2b86644f13080">close_rs232</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcan__uvccm__win32.html#9ffa5f900534ffc1bf5c80a0b29628a6">get_can_data</a> (const char *can_cmd_buf, long &bufsize, <a class="el" href="structMessage.html">Message</a> *m)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcan__uvccm__win32.html#dd49e9a91baf22fb46704dfdac74cb46">set_can_data</a> (const <a class="el" href="structMessage.html">Message</a> &m, std::string &can_cmd)</td></tr>
<tr><td colspan="2"><br><h2>Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">HANDLE </td><td class="memItemRight" valign="bottom"><a class="el" href="classcan__uvccm__win32.html#16a0781c6112a96ba32e9c14124624a5">m_port</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">HANDLE </td><td class="memItemRight" valign="bottom"><a class="el" href="classcan__uvccm__win32.html#85163a47e3246eba9a55ad63a34727e8">m_read_event</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">HANDLE </td><td class="memItemRight" valign="bottom"><a class="el" href="classcan__uvccm__win32.html#c633c03ea1777d7ae38f23adae505ba5">m_write_event</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classcan__uvccm__win32.html#10bd44df6a991527816fc87547a266f5">m_residual_buffer</a></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcan__uvccm__win32_1_1error.html">error</a></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<p>
<p>
Definition at line <a class="el" href="can__uvccm__win32_8cpp-source.html#l00017">17</a> of file <a class="el" href="can__uvccm__win32_8cpp-source.html">can_uvccm_win32.cpp</a>.<hr><h2>Constructor & Destructor Documentation</h2>
<a class="anchor" name="44d72452ded768c3fff1addb9ea2dfdb"></a><!-- doxytag: member="can_uvccm_win32::can_uvccm_win32" ref="44d72452ded768c3fff1addb9ea2dfdb" args="(s_BOARD *board)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">can_uvccm_win32::can_uvccm_win32 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structstruct__s__BOARD.html">s_BOARD</a> * </td>
<td class="paramname"> <em>board</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="can__uvccm__win32_8cpp-source.html#l00039">39</a> of file <a class="el" href="can__uvccm__win32_8cpp-source.html">can_uvccm_win32.cpp</a>.
<p>
References <a class="el" href="can__driver_8h-source.html#l00035">struct_s_BOARD::baudrate</a>, and <a class="el" href="can__uvccm__win32_8cpp-source.html#l00136">open_rs232()</a>.
<p>
Here is the call graph for this function:<p><center><img src="classcan__uvccm__win32_44d72452ded768c3fff1addb9ea2dfdb_cgraph.png" border="0" usemap="#classcan__uvccm__win32_44d72452ded768c3fff1addb9ea2dfdb_cgraph_map" alt=""></center>
<map name="classcan__uvccm__win32_44d72452ded768c3fff1addb9ea2dfdb_cgraph_map">
<area href="classcan__uvccm__win32.html#b71c16fad5ab189cb3fabc09228dce61" shape="rect" coords="285,5,477,32" alt="">
</map>
</div>
</div><p>
<a class="anchor" name="ad2604fb37772689e837f1bbb396ee73"></a><!-- doxytag: member="can_uvccm_win32::~can_uvccm_win32" ref="ad2604fb37772689e837f1bbb396ee73" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">can_uvccm_win32::~can_uvccm_win32 </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="can__uvccm__win32_8cpp-source.html#l00047">47</a> of file <a class="el" href="can__uvccm__win32_8cpp-source.html">can_uvccm_win32.cpp</a>.
<p>
References <a class="el" href="can__uvccm__win32_8cpp-source.html#l00190">close_rs232()</a>.
<p>
Here is the call graph for this function:<p><center><img src="classcan__uvccm__win32_ad2604fb37772689e837f1bbb396ee73_cgraph.png" border="0" usemap="#classcan__uvccm__win32_ad2604fb37772689e837f1bbb396ee73_cgraph_map" alt=""></center>
<map name="classcan__uvccm__win32_ad2604fb37772689e837f1bbb396ee73_cgraph_map">
<area href="classcan__uvccm__win32.html#90d854d7d320ba381ad2b86644f13080" shape="rect" coords="292,5,484,32" alt="">
</map>
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="8cdbccec5f1cd2e26056d296c3087290"></a><!-- doxytag: member="can_uvccm_win32::send" ref="8cdbccec5f1cd2e26056d296c3087290" args="(const Message *m)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool can_uvccm_win32::send </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structMessage.html">Message</a> * </td>
<td class="paramname"> <em>m</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="can__uvccm__win32_8cpp-source.html#l00052">52</a> of file <a class="el" href="can__uvccm__win32_8cpp-source.html">can_uvccm_win32.cpp</a>.
<p>
References <a class="el" href="def_8h-source.html#l00063">FALSE</a>, <a class="el" href="can__uvccm__win32_8cpp-source.html#l00033">m_port</a>, <a class="el" href="can__uvccm__win32_8cpp-source.html#l00035">m_write_event</a>, and <a class="el" href="can__uvccm__win32_8cpp-source.html#l00271">set_can_data()</a>.
<p>
Here is the call graph for this function:<p><center><img src="classcan__uvccm__win32_8cdbccec5f1cd2e26056d296c3087290_cgraph.png" border="0" usemap="#classcan__uvccm__win32_8cdbccec5f1cd2e26056d296c3087290_cgraph_map" alt=""></center>
<map name="classcan__uvccm__win32_8cdbccec5f1cd2e26056d296c3087290_cgraph_map">
<area href="classcan__uvccm__win32.html#dd49e9a91baf22fb46704dfdac74cb46" shape="rect" coords="209,5,407,32" alt="">
</map>
</div>
</div><p>
<a class="anchor" name="a49341f3f4ae90cb45ba7eba2fa22682"></a><!-- doxytag: member="can_uvccm_win32::receive" ref="a49341f3f4ae90cb45ba7eba2fa22682" args="(Message *m)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool can_uvccm_win32::receive </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structMessage.html">Message</a> * </td>
<td class="paramname"> <em>m</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="can__uvccm__win32_8cpp-source.html#l00080">80</a> of file <a class="el" href="can__uvccm__win32_8cpp-source.html">can_uvccm_win32.cpp</a>.
<p>
References <a class="el" href="def_8h-source.html#l00063">FALSE</a>, <a class="el" href="can__uvccm__win32_8cpp-source.html#l00206">get_can_data()</a>, <a class="el" href="can__uvccm__win32_8cpp-source.html#l00033">m_port</a>, <a class="el" href="can__uvccm__win32_8cpp-source.html#l00034">m_read_event</a>, and <a class="el" href="can__uvccm__win32_8cpp-source.html#l00036">m_residual_buffer</a>.
<p>
Here is the call graph for this function:<p><center><img src="classcan__uvccm__win32_a49341f3f4ae90cb45ba7eba2fa22682_cgraph.png" border="0" usemap="#classcan__uvccm__win32_a49341f3f4ae90cb45ba7eba2fa22682_cgraph_map" alt=""></center>
<map name="classcan__uvccm__win32_a49341f3f4ae90cb45ba7eba2fa22682_cgraph_map">
<area href="classcan__uvccm__win32.html#9ffa5f900534ffc1bf5c80a0b29628a6" shape="rect" coords="221,5,421,32" alt="">
</map>
</div>
</div><p>
<a class="anchor" name="b71c16fad5ab189cb3fabc09228dce61"></a><!-- doxytag: member="can_uvccm_win32::open_rs232" ref="b71c16fad5ab189cb3fabc09228dce61" args="(int port=1, int baud_rate=57600)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool can_uvccm_win32::open_rs232 </td>
<td>(</td>
<td class="paramtype">int </td>
<td class="paramname"> <em>port</em> = <code>1</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>baud_rate</em> = <code>57600</code></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"><code> [private]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="can__uvccm__win32_8cpp-source.html#l00136">136</a> of file <a class="el" href="can__uvccm__win32_8cpp-source.html">can_uvccm_win32.cpp</a>.
<p>
References <a class="el" href="def_8h-source.html#l00063">FALSE</a>, <a class="el" href="can__uvccm__win32_8cpp-source.html#l00033">m_port</a>, <a class="el" href="can__uvccm__win32_8cpp-source.html#l00034">m_read_event</a>, <a class="el" href="can__uvccm__win32_8cpp-source.html#l00035">m_write_event</a>, and <a class="el" href="def_8h-source.html#l00062">TRUE</a>.
<p>
Referenced by <a class="el" href="can__uvccm__win32_8cpp-source.html#l00039">can_uvccm_win32()</a>.
</div>
</div><p>
<a class="anchor" name="90d854d7d320ba381ad2b86644f13080"></a><!-- doxytag: member="can_uvccm_win32::close_rs232" ref="90d854d7d320ba381ad2b86644f13080" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool can_uvccm_win32::close_rs232 </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"><code> [private]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="can__uvccm__win32_8cpp-source.html#l00190">190</a> of file <a class="el" href="can__uvccm__win32_8cpp-source.html">can_uvccm_win32.cpp</a>.
<p>
References <a class="el" href="can__uvccm__win32_8cpp-source.html#l00033">m_port</a>, <a class="el" href="can__uvccm__win32_8cpp-source.html#l00034">m_read_event</a>, <a class="el" href="can__uvccm__win32_8cpp-source.html#l00036">m_residual_buffer</a>, and <a class="el" href="can__uvccm__win32_8cpp-source.html#l00035">m_write_event</a>.
<p>
Referenced by <a class="el" href="can__uvccm__win32_8cpp-source.html#l00047">~can_uvccm_win32()</a>.
</div>
</div><p>
<a class="anchor" name="9ffa5f900534ffc1bf5c80a0b29628a6"></a><!-- doxytag: member="can_uvccm_win32::get_can_data" ref="9ffa5f900534ffc1bf5c80a0b29628a6" args="(const char *can_cmd_buf, long &bufsize, Message *m)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool can_uvccm_win32::get_can_data </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>can_cmd_buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">long & </td>
<td class="paramname"> <em>bufsize</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structMessage.html">Message</a> * </td>
<td class="paramname"> <em>m</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"><code> [private]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="can__uvccm__win32_8cpp-source.html#l00206">206</a> of file <a class="el" href="can__uvccm__win32_8cpp-source.html">can_uvccm_win32.cpp</a>.
<p>
References <a class="el" href="can_8h-source.html#l00042">Message::cob_id</a>, <a class="el" href="can_8h-source.html#l00046">Message::data</a>, <a class="el" href="can_8h-source.html#l00045">Message::len</a>, <a class="el" href="can_8h-source.html#l00043">Message::rtr</a>, <a class="el" href="hcs12_2applicfg_8h-source.html#l00139">UNS8</a>, and <a class="el" href="can_8h-source.html#l00036">SHORT_CAN::w</a>.
<p>
Referenced by <a class="el" href="can__uvccm__win32_8cpp-source.html#l00080">receive()</a>.
</div>
</div><p>
<a class="anchor" name="dd49e9a91baf22fb46704dfdac74cb46"></a><!-- doxytag: member="can_uvccm_win32::set_can_data" ref="dd49e9a91baf22fb46704dfdac74cb46" args="(const Message &m, std::string &can_cmd)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool can_uvccm_win32::set_can_data </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structMessage.html">Message</a> & </td>
<td class="paramname"> <em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string & </td>
<td class="paramname"> <em>can_cmd</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"><code> [private]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="can__uvccm__win32_8cpp-source.html#l00271">271</a> of file <a class="el" href="can__uvccm__win32_8cpp-source.html">can_uvccm_win32.cpp</a>.
<p>
References <a class="el" href="can_8h-source.html#l00042">Message::cob_id</a>, <a class="el" href="can_8h-source.html#l00046">Message::data</a>, <a class="el" href="can_8h-source.html#l00045">Message::len</a>, <a class="el" href="can_8h-source.html#l00043">Message::rtr</a>, and <a class="el" href="can_8h-source.html#l00036">SHORT_CAN::w</a>.
<p>
Referenced by <a class="el" href="can__uvccm__win32_8cpp-source.html#l00052">send()</a>.
</div>
</div><p>
<hr><h2>Field Documentation</h2>
<a class="anchor" name="16a0781c6112a96ba32e9c14124624a5"></a><!-- doxytag: member="can_uvccm_win32::m_port" ref="16a0781c6112a96ba32e9c14124624a5" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">HANDLE <a class="el" href="classcan__uvccm__win32.html#16a0781c6112a96ba32e9c14124624a5">can_uvccm_win32::m_port</a><code> [private]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="can__uvccm__win32_8cpp-source.html#l00033">33</a> of file <a class="el" href="can__uvccm__win32_8cpp-source.html">can_uvccm_win32.cpp</a>.
<p>
Referenced by <a class="el" href="can__uvccm__win32_8cpp-source.html#l00190">close_rs232()</a>, <a class="el" href="can__uvccm__win32_8cpp-source.html#l00136">open_rs232()</a>, <a class="el" href="can__uvccm__win32_8cpp-source.html#l00080">receive()</a>, and <a class="el" href="can__uvccm__win32_8cpp-source.html#l00052">send()</a>.
</div>
</div><p>
<a class="anchor" name="85163a47e3246eba9a55ad63a34727e8"></a><!-- doxytag: member="can_uvccm_win32::m_read_event" ref="85163a47e3246eba9a55ad63a34727e8" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">HANDLE <a class="el" href="classcan__uvccm__win32.html#85163a47e3246eba9a55ad63a34727e8">can_uvccm_win32::m_read_event</a><code> [private]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="can__uvccm__win32_8cpp-source.html#l00034">34</a> of file <a class="el" href="can__uvccm__win32_8cpp-source.html">can_uvccm_win32.cpp</a>.
<p>
Referenced by <a class="el" href="can__uvccm__win32_8cpp-source.html#l00190">close_rs232()</a>, <a class="el" href="can__uvccm__win32_8cpp-source.html#l00136">open_rs232()</a>, and <a class="el" href="can__uvccm__win32_8cpp-source.html#l00080">receive()</a>.
</div>
</div><p>
<a class="anchor" name="c633c03ea1777d7ae38f23adae505ba5"></a><!-- doxytag: member="can_uvccm_win32::m_write_event" ref="c633c03ea1777d7ae38f23adae505ba5" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">HANDLE <a class="el" href="classcan__uvccm__win32.html#c633c03ea1777d7ae38f23adae505ba5">can_uvccm_win32::m_write_event</a><code> [private]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="can__uvccm__win32_8cpp-source.html#l00035">35</a> of file <a class="el" href="can__uvccm__win32_8cpp-source.html">can_uvccm_win32.cpp</a>.
<p>
Referenced by <a class="el" href="can__uvccm__win32_8cpp-source.html#l00190">close_rs232()</a>, <a class="el" href="can__uvccm__win32_8cpp-source.html#l00136">open_rs232()</a>, and <a class="el" href="can__uvccm__win32_8cpp-source.html#l00052">send()</a>.
</div>
</div><p>
<a class="anchor" name="10bd44df6a991527816fc87547a266f5"></a><!-- doxytag: member="can_uvccm_win32::m_residual_buffer" ref="10bd44df6a991527816fc87547a266f5" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string <a class="el" href="classcan__uvccm__win32.html#10bd44df6a991527816fc87547a266f5">can_uvccm_win32::m_residual_buffer</a><code> [private]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="can__uvccm__win32_8cpp-source.html#l00036">36</a> of file <a class="el" href="can__uvccm__win32_8cpp-source.html">can_uvccm_win32.cpp</a>.
<p>
Referenced by <a class="el" href="can__uvccm__win32_8cpp-source.html#l00190">close_rs232()</a>, and <a class="el" href="can__uvccm__win32_8cpp-source.html#l00080">receive()</a>.
</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>drivers/can_uvccm_win32/<a class="el" href="can__uvccm__win32_8cpp-source.html">can_uvccm_win32.cpp</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jul 2 19:10:43 2007 for CanFestival by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
</body>
</html>