From: batt Date: Mon, 10 Nov 2008 14:44:52 +0000 (+0000) Subject: Merged from external project: X-Git-Tag: 2.0.0~17 X-Git-Url: https://codewiz.org/gitweb?a=commitdiff_plain;h=a36d6c61d4b6ebb7eeff7e310625d67dc98e5d2c;hp=0ff12c45e1687c1fc34b31d851399ef45cea52ec;p=bertos.git Merged from external project: ********** r22609 | batt | 2008-11-08 14:43:34 +0100 (sab, 08 nov 2008) | 1 line Add configurable options for xmodem max retries. ********** git-svn-id: https://src.develer.com/svnoss/bertos/trunk@1917 38d2e660-2303-0410-9eaa-f027e97ec537 --- diff --git a/bertos/cfg/cfg_xmodem.h b/bertos/cfg/cfg_xmodem.h index 71ced64a..129a2118 100644 --- a/bertos/cfg/cfg_xmodem.h +++ b/bertos/cfg/cfg_xmodem.h @@ -40,7 +40,7 @@ #ifndef CFG_XMODEM_H #define CFG_XMODEM_H -/// Enable Rx +/// Enable Rx #define CONFIG_XMODEM_RECV 1 /// Enable TX @@ -49,5 +49,11 @@ /// Allow a Rx/Tx of 1Kbyte block #define CONFIG_XMODEM_1KCRC 1 +/// Max retries before giving up +#define CONFIG_XMODEM_MAXRETRIES 15 + +/// Max retries before switching to BCC +#define CONFIG_XMODEM_MAXCRCRETRIES 7 + #endif /* CFG_XMODEM_H */ diff --git a/bertos/net/xmodem.c b/bertos/net/xmodem.c index ec899cb1..ca59a993 100644 --- a/bertos/net/xmodem.c +++ b/bertos/net/xmodem.c @@ -69,9 +69,6 @@ #define XM_CAN 0x18 /**< CANcel transmission */ /*\}*/ -#define XM_MAXRETRIES 15 /**< Max retries before giving up */ -#define XM_MAXCRCRETRIES 7 /**< Max retries before switching to BCC */ - #if CONFIG_XMODEM_1KCRC == 1 #define XM_BUFSIZE 1024 /**< 1024 bytes of block buffer */ #else @@ -129,7 +126,7 @@ bool xmodem_recv(struct Serial *port, KFile *fd) ser_resync(port, 200); retries++; - if (retries >= XM_MAXRETRIES) + if (retries >= CONFIG_XMODEM_MAXRETRIES) { kfile_putc(XM_CAN, &port->fd); kfile_putc(XM_CAN, &port->fd); @@ -140,7 +137,7 @@ bool xmodem_recv(struct Serial *port, KFile *fd) /* Transmission start? */ if (blocknr == 0) { - if (retries < XM_MAXCRCRETRIES) + if (retries < CONFIG_XMODEM_MAXCRCRETRIES) { XMODEM_PROGRESS("Request Tx (CRC)\n"); kfile_putc(XM_C, &port->fd); @@ -273,7 +270,7 @@ bool xmodem_recv(struct Serial *port, KFile *fd) else { /* User callback failed: abort transfer immediately */ - retries = XM_MAXRETRIES; + retries = CONFIG_XMODEM_MAXRETRIES; purge = true; } } @@ -374,7 +371,7 @@ bool xmodem_send(struct Serial *port, KFile *fd) kfile_clearerr(&port->fd); retries++; XMODEM_PROGRESS("Retries %d\n", retries); - if (retries <= XM_MAXRETRIES) + if (retries <= CONFIG_XMODEM_MAXRETRIES) break; /* falling through! */