I'm resending this as I currently don't have the time to do much SANE
development. Could someone merge this patch into the CVS tree?
Thanks,
--david
--pZZmKD1tXo
Content-Type: message/rfc822
Content-Transfer-Encoding: 7bit
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary=dDRMvlgZJXvWKvBx
Return-Path: <psfales@lucent.com>
Received: from localhost (dyn1-tnt4-67.chicago.il.ameritech.net [199.179.164.67])
by panda.mostang.com (8.9.3/8.9.3) with SMTP id SAA05007
for <davidm@mostang.com>; Tue, 14 Dec 1999 18:07:42 -0800
Received: from localhost (4764 bytes) by localhost
via sendmail with P:stdio/R:inet_hosts/T:smtp
(sender: <psfales>) (ident <psfales> using unix)
id <m11y3rQ-00AIp8C@localhost>
for <davidm@mostang.com>; Tue, 14 Dec 1999 20:08:12 -0600 (CST)
(Smail-3.2.0.101 1997-Dec-17 #3 built 1999-Jul-8)
Message-ID: <19991214200811.A22601@lucent.com>
X-Mailer: Mutt 0.95i
From: Peter Fales <psfales@lucent.com>
To: David Mosberger-Tang <davidm@mostang.com>
Subject: Re: Kodak DC-20/25 Backend
Date: Tue, 14 Dec 1999 20:08:12 -0600
--dDRMvlgZJXvWKvBx
Content-Type: text/plain; charset=us-ascii
David,
I saw that the 991212 version came out recently. Here are a few
more patches to the DC-25 backend. I thought I sent these back in
October, but apparently they didn't make it in:
- The most significant is a retry capability for missing data or bad checksums
in the data from the camera. This has resulted in a dramatic
reduction in download failures.
- Include HAVE_CFMAKERAW in config.h.in and dc25.c.
- Updated dc25.desc
- Symbol clash in xscanimage with recent version of the gimp library
Peter Fales
--dDRMvlgZJXvWKvBx
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="sane-devel-19991212+DC25.patch"
diff -r sane-devel-19991212/backend/dc25.c sane-devel-19991212+DC25/backend/dc25.c
101a102
> #include <sane/config.h>
345a347,352
> /*
> * List of speeds to try to establish connection with the camera.
> * Check 9600 first, as it's the speed the camera comes up in, then
> * 115200, as that is the one most likely to be configured from a
> * previous run
> */
347,348c354,356
< { B19200, { 0x19, 0x20 } },
< { B38400, { 0x38, 0x40 } },
--- > #ifdef B115200 > { B115200, { 0x11, 0x52 } }, > #endif 352,354c360,361 < #ifdef B115200 < { B115200, { 0x11, 0x52 } } < #endif--- > { B38400, { 0x38, 0x40 } }, > { B19200, { 0x19, 0x20 } }, 426c433 < #ifdef HAVE_cfmakeraw--- > #ifdef HAVE_CFMAKERAW 435c442 < tty_new.c_cc[VTIME] = 10;--- > tty_new.c_cc[VTIME] = 50; 584a592 > int retries=0; 589,590c597,604 < for (n = 0; n < sz && (r = read (fd, (char *)&buf[n], sz - n)) > 0; n += r) < ;--- > while ( retries++ < 5 ) { > > /* > * If this is not the first time through, then it must be > * a retry - signal the camera that we didn't like what > * we got. In either case, start filling the packet > */ > if ( retries != 1 ) { 592,595c606,611 < if (r <= 0) { < DBG (2,"read_data: error: read returned -1\n"); < return -1; < }--- > DBG (2, "Attempt retry %d\n",retries); > c=0xe3; > if (write (fd, (char *)&c, 1) != 1) { > DBG (2,"read_data: error: write ack\n"); > return -1; > } 597,600c613 < if (n < sz || read (fd, &rcsum, 1) != 1) { < DBG (2,"read_data: error: buffer underrun or no checksum\n"); < return -1; < }--- > } 602,603c615,621 < for (i = 0, ccsum = 0; i < n; i++) < ccsum ^= buf[i];--- > for (n = 0; n < sz && (r = read (fd, (char *)&buf[n], sz - n)) > 0; n += r) > ; > > if (r <= 0) { > DBG (2,"read_data: error: read returned -1\n"); > continue; > } 605,607c623,637 < if (ccsum != rcsum) { < DBG (2,"read_data: error: bad checksum (%02x != %02x)\n",rcsum, ccsum); < return -1;--- > if (n < sz || read (fd, &rcsum, 1) != 1) { > DBG (2,"read_data: error: buffer underrun or no checksum\n"); > continue; > } > > for (i = 0, ccsum = 0; i < n; i++) > ccsum ^= buf[i]; > > if (ccsum != rcsum) { > DBG (2,"read_data: error: bad checksum (%02x != %02x)\n",rcsum, ccsum); > continue; > } > > /* If we got this far, then the packet is OK */ > break; diff -r sane-devel-19991212/backend/dc25.desc sane-devel-19991212+DC25/backend/dc25.desc 4,5c4,5 < :version "1.1" ; version of backend < :status :alpha ; :alpha, :beta, :stable, :new--- > :version "1.2" ; version of backend > :status :beta ; :alpha, :beta, :stable, :new 7c7 < :url "http://www.megsinet.net/~psfales/DC-25.html";--- > :url "http://peter.fales.com/DC-25.html"; 13c13 < :comment "DC-20 is untested!" ;--- > :comment "DC-20 untested by author but reported to work" ; diff -r sane-devel-19991212/frontend/xscanimage.c sane-devel-19991212+DC25/frontend/xscanimage.c 78c78 < STANDALONE, GIMP_EXTENSION--- > STANDALONE, GIMP_EXTENSION_FIX_COLLISION 304c304 < scan_win.mode = GIMP_EXTENSION;--- > scan_win.mode = GIMP_EXTENSION_FIX_COLLISION; 459c459 < if (scan_win.mode == GIMP_EXTENSION)--- > if (scan_win.mode == GIMP_EXTENSION_FIX_COLLISION) 806c806 < if (scan_win.mode == GIMP_EXTENSION && scan_win.tile)--- > if (scan_win.mode == GIMP_EXTENSION_FIX_COLLISION && scan_win.tile) diff -r sane-devel-19991212/include/sane/config.h.in sane-devel-19991212+DC25/include/sane/config.h.in 325a326,328 > /* Define if you have cfmakeraw() */ > #undef HAVE_CFMAKERAW >--dDRMvlgZJXvWKvBx--
--pZZmKD1tXo--
-- Source code, list archive, and docs: http://www.mostang.com/sane/ To unsubscribe: echo unsubscribe sane-devel | mail majordomo@mostang.com