?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.h Source File</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&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div>
<h1>xmodem.h</h1><a href="xmodem_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 <span class="comment">/*! \file xmodem.h \brief XModem Transmit/Receive Implementation with CRC and 1K support. */</span>
00002 <span class="comment">//*****************************************************************************</span>
00003 <span class="comment">//</span>
00004 <span class="comment">// File Name    : 'xmodem.h'</span>
00005 <span class="comment">// Title        : XModem Transmit/Receive Implementation with CRC and 1K support</span>
00006 <span class="comment">// Author       : Pascal Stang - Copyright (C) 2006</span>
00007 <span class="comment">// Created      : 4/22/2006</span>
00008 <span class="comment">// Revised      : 7/22/2006</span>
00009 <span class="comment">// Version      : 0.1</span>
00010 <span class="comment">// Target MCU   : AVR processors</span>
00011 <span class="comment">// Editor Tabs  : 4</span>
00012 <span class="comment">//</span><span class="comment"></span>
00013 <span class="comment">/// \ingroup general</span>
00014 <span class="comment">/// \defgroup xmodem XModem Transmit/Receive Implementation with CRC and 1K support (xmodem.c)</span>
00015 <span class="comment">/// \code #include "xmodem.h" \endcode</span>
00016 <span class="comment">/// \par Overview</span>
00017 <span class="comment">///     This XModem implementation supports both 128b and 1K packets with or</span>
00018 <span class="comment">///     without CRC checking.  The xmodem library must be initialized to use</span>
00019 <span class="comment">///     a particular I/O stream by passing appropriate getbyte() and sendbyte()</span>
00020 <span class="comment">///     functions to xmodemInit().  The xmodem transfer routines also expect</span>
00021 <span class="comment">///     function pointers to read and write data blocks on the local system.</span>
00022 <span class="comment">///     While this use of function pointers increases code size, it has great</span>
00023 <span class="comment">///     adaptability.  The generalized read/write data functions mean that it</span>
00024 <span class="comment">///     is easy to pipe data to/from any storage device like EEPROMs or flash</span>
00025 <span class="comment">///     cards, rather than being limited to just processor RAM.</span>
00026 <span class="comment"></span><span class="comment">//</span>
00027 <span class="comment">// This code is distributed under the GNU Public License</span>
00028 <span class="comment">//      which can be found at http://www.gnu.org/licenses/gpl.txt</span>
00029 <span class="comment">//</span>
00030 <span class="comment">//*****************************************************************************</span><span class="comment"></span>
00031 <span class="comment">//@{</span>
00032 <span class="comment"></span>
00033 <span class="preprocessor">#ifndef XMODEM_H</span>
00034 <span class="preprocessor"></span><span class="preprocessor">#define XMODEM_H</span>
00035 <span class="preprocessor"></span>
00036 <span class="comment">// xmodem control characters</span>
00037 <span class="preprocessor">#define SOH         0x01</span>
00038 <span class="preprocessor"></span><span class="preprocessor">#define STX         0x02</span>
00039 <span class="preprocessor"></span><span class="preprocessor">#define EOT         0x04</span>
00040 <span class="preprocessor"></span><span class="preprocessor">#define ACK         0x06</span>
00041 <span class="preprocessor"></span><span class="preprocessor">#define NAK         0x15</span>
00042 <span class="preprocessor"></span><span class="preprocessor">#define CAN         0x18</span>
00043 <span class="preprocessor"></span><span class="preprocessor">#define CTRLZ       0x1A</span>
00044 <span class="preprocessor"></span>
00045 <span class="comment">// xmodem timeout/retry parameters</span>
00046 <span class="preprocessor">#define XMODEM_TIMEOUT_DELAY    1000</span>
00047 <span class="preprocessor"></span><span class="preprocessor">#define XMODEM_RETRY_LIMIT      16</span>
00048 <span class="preprocessor"></span>
00049 <span class="comment">// error return codes</span>
00050 <span class="preprocessor">#define XMODEM_ERROR_REMOTECANCEL   -1</span>
00051 <span class="preprocessor"></span><span class="preprocessor">#define XMODEM_ERROR_OUTOFSYNC      -2</span>
00052 <span class="preprocessor"></span><span class="preprocessor">#define XMODEM_ERROR_RETRYEXCEED    -3</span>
00053 <span class="preprocessor"></span>
00054 <span class="comment"></span>
00055 <span class="comment">//! initialize xmodem stream I/O routines</span>
00056 <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="group__xmodem.html#ga0">xmodemInit</a>(<span class="keywordtype">void</span> (*sendbyte_func)(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> c), <span class="keywordtype">int</span> (*getbyte_func)(<span class="keywordtype">void</span>));
00057 <span class="comment"></span>
00058 <span class="comment">//! xmodem receive</span>
00059 <span class="comment"></span><span class="keywordtype">long</span> <a class="code" href="group__xmodem.html#ga1">xmodemReceive</a>( <span class="keywordtype">int</span> (*write)(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> size) );
00060 <span class="comment"></span>
00061 <span class="comment">//! xmodem transmit</span>
00062 <span class="comment"></span><span class="keywordtype">long</span> <a class="code" href="group__xmodem.html#ga2">xmodemTransmit</a>( <span class="keywordtype">int</span> (*read)(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> size) );
00063 <span class="comment"></span>
00064 <span class="comment">//! xmodem CRC/checksum error checking</span>
00065 <span class="comment"></span><span class="keywordtype">int</span> <a class="code" href="group__xmodem.html#ga3">xmodemCrcCheck</a>(<span class="keywordtype">int</span> crcflag, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> size);
00066 
00067 <span class="comment">// extra stream I/O functions</span><span class="comment"></span>
00068 <span class="comment">//! get incoming character (wait for timeout)</span>
00069 <span class="comment"></span><span class="keywordtype">int</span> <a class="code" href="group__xmodem.html#ga4">xmodemInTime</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> timeout);
00070 <span class="comment"></span>
00071 <span class="comment">//! flush incoming character stream</span>
00072 <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="group__xmodem.html#ga5">xmodemInFlush</a>(<span class="keywordtype">void</span>);
00073 
00074 <span class="preprocessor">#endif</span>
00075 <span class="preprocessor"></span><span class="comment"></span>
00076 <span class="comment">//@}</span>
</span></pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun Oct 29 03:41:08 2006 for Procyon AVRlib by&nbsp;
<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