?lang_form?
?lang_select?
?lang_submit?
?lang_endform?
{HEADER END}
{FILE START}
library
?curdirlinks? - Rev 6
?prevdifflink? - Blame - ?getfile?
<!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>Procyon AVRlib: XModem Transmit/Receive Implementation with CRC and 1K support (xmodem.c)</title>
<link href="dox.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.2 -->
<div class="qindex"><a class="qindex" href="main.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a></div>
<h1>XModem Transmit/Receive Implementation with CRC and 1K support (xmodem.c)<br>
<small>
[<a class="el" href="group__general.html">General Libraries</a>]</small>
</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
<div class="fragment"><pre class="fragment"><span class="preprocessor"> #include "<a class="code" href="xmodem_8h.html">xmodem.h</a>"</span>
</pre></div> <dl compact><dt><b>Overview</b></dt><dd>This XModem implementation supports both 128b and 1K packets with or without CRC checking. The xmodem library must be initialized to use a particular I/O stream by passing appropriate getbyte() and sendbyte() functions to <a class="el" href="group__xmodem.html#ga0">xmodemInit()</a>. The xmodem transfer routines also expect function pointers to read and write data blocks on the local system. While this use of function pointers increases code size, it has great adaptability. The generalized read/write data functions mean that it is easy to pipe data to/from any storage device like EEPROMs or flash cards, rather than being limited to just processor RAM. </dd></dl>
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga6" doxytag="xmodem::SOH"></a>
#define </td><td class="memItemRight" valign="bottom"><b>SOH</b> 0x01</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga7" doxytag="xmodem::STX"></a>
#define </td><td class="memItemRight" valign="bottom"><b>STX</b> 0x02</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga8" doxytag="xmodem::EOT"></a>
#define </td><td class="memItemRight" valign="bottom"><b>EOT</b> 0x04</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga9" doxytag="xmodem::ACK"></a>
#define </td><td class="memItemRight" valign="bottom"><b>ACK</b> 0x06</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga10" doxytag="xmodem::NAK"></a>
#define </td><td class="memItemRight" valign="bottom"><b>NAK</b> 0x15</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga11" doxytag="xmodem::CAN"></a>
#define </td><td class="memItemRight" valign="bottom"><b>CAN</b> 0x18</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga12" doxytag="xmodem::CTRLZ"></a>
#define </td><td class="memItemRight" valign="bottom"><b>CTRLZ</b> 0x1A</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga13" doxytag="xmodem::XMODEM_TIMEOUT_DELAY"></a>
#define </td><td class="memItemRight" valign="bottom"><b>XMODEM_TIMEOUT_DELAY</b> 1000</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga14" doxytag="xmodem::XMODEM_RETRY_LIMIT"></a>
#define </td><td class="memItemRight" valign="bottom"><b>XMODEM_RETRY_LIMIT</b> 16</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga15" doxytag="xmodem::XMODEM_ERROR_REMOTECANCEL"></a>
#define </td><td class="memItemRight" valign="bottom"><b>XMODEM_ERROR_REMOTECANCEL</b> -1</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga16" doxytag="xmodem::XMODEM_ERROR_OUTOFSYNC"></a>
#define </td><td class="memItemRight" valign="bottom"><b>XMODEM_ERROR_OUTOFSYNC</b> -2</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga17" doxytag="xmodem::XMODEM_ERROR_RETRYEXCEED"></a>
#define </td><td class="memItemRight" valign="bottom"><b>XMODEM_ERROR_RETRYEXCEED</b> -3</td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga0" doxytag="xmodem::xmodemInit"></a>
void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__xmodem.html#ga0">xmodemInit</a> (void(*sendbyte_func)(unsigned char c), int(*getbyte_func)(void))</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">initialize xmodem stream I/O routines <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga1" doxytag="xmodem::xmodemReceive"></a>
long </td><td class="memItemRight" valign="bottom"><a class="el" href="group__xmodem.html#ga1">xmodemReceive</a> (int(*write)(unsigned char *buffer, int size))</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">xmodem receive <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga2" doxytag="xmodem::xmodemTransmit"></a>
long </td><td class="memItemRight" valign="bottom"><a class="el" href="group__xmodem.html#ga2">xmodemTransmit</a> (int(*read)(unsigned char *buffer, int size))</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">xmodem transmit <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga3" doxytag="xmodem::xmodemCrcCheck"></a>
int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__xmodem.html#ga3">xmodemCrcCheck</a> (int crcflag, const unsigned char *buffer, int size)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">xmodem CRC/checksum error checking <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga4" doxytag="xmodem::xmodemInTime"></a>
int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__xmodem.html#ga4">xmodemInTime</a> (unsigned short timeout)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">get incoming character (wait for timeout) <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga5" doxytag="xmodem::xmodemInFlush"></a>
void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__xmodem.html#ga5">xmodemInFlush</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">flush incoming character stream <br></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Sun Oct 29 03:41:09 2006 for Procyon AVRlib by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.2 </small></address>
</body>
</html>
|
{FILE END}
{FOOTER START}
Powered by WebSVN v2.8.3