[sane-devel] First available backend for hp3900 series (unstable)

JKD JKD at JKDSoft.cjb.net
Mon Dec 26 21:58:08 UTC 2005


Hello,

El Fri, 23 de Dec de 2005, a las 06:43:31PM +0100, Henning Meier-Geinitz dijo:
> Do you know which other scanners of the HP3900 series work with your
> backend? Do they have the same USB product ids?
> Are the other scanners as listed in hp3900.conf also tested and working?
 
At least HP Scanjet 3970c works with my backend. There are two more
scanners wich use a Realtek RTS8822 chipset:

  - HP Scanjet 4070 Photosmart
  - HP Scanjet 4370

The first one seems to be equal to hp3970c. The second one uses a
diferent RTS8822 chipset model. But I don't have those scanners so I
didn't test them. That's why I added such scanners in hp3900.conf, to give
people choice to test them before inclusion into sane-backends.


> How well do the scanners work (complete, good, basic, minimal, see our
> scanner lists for details). I want to make a .desc file from that to
> correctly link to your page.

Backend is already in alpha development status. Basically, it makes 8 bit depth
color scans in 100, 200, 300, 600 and 1200 dpi without calibration.
Despite of backend lets make scans in 2400 dpi and slide scans, it won't
work properly in such cases. So, at this moment backend status is
"minimal".

> To my mind the readme is a bit misleading. Setting BACKENDS is
> absolutely necessary, because you don't provide a patch for
> configure(.in) to add the backend to the lists of backends.

Well, I followed backend-writing.txt, section "CHECKLIST: SUBMITTING A
NEW BACKEND" for editing necessary files and it does not mention
anything to edit in configure(.in). Editing such files may sound obvious
but it could be a good idea to add that explanation into that section,
under line "In sane-backends/" for those developers who come from
windows systems and aren't familiarized with SANE project.

> When this code is ready for inclusion into sane-backends, please
> provide a patch against current CVS. Also, I'm not sure if the code
> for the stand-alone version should stay in the SANE backend when it's
> included. A manual page would be also nice.

Next version will have stand-alone code in a different file so it won't
be necessary to include it into sane-backends. A manual page will be
available in next version too.

> Please run the code through indent -gnu.
> In sane_init(), DBG_INIT() is called too late, it must be called
> before any call of DBG. Also I don't understand why you try to read your
> own version of a environment debug variable. Please don't do that, use
> the way which is provided by sanei_debug.h. This will break if
> debugging is disabled.

I'm working on it.

> what are these big lists of numbers in hp3900_config.h? Motor
> acceleration curves? I have to admit that I don't undertand what this
> file does. Looks like black magic a bit :-)

Windows driver uses 39 config files to program RTS8822 chipset. These
files are inside code and can be extracted with a binary resources
editor. These are files:

fitcalibrate: Common config
s_rtinifile, s_usb1inifile: Config files for scanners with SONY CCD
t_rtinifile, t_usb1inifile: Config files for scanners with TOSHIBA CCD
motorcurve1 to motorcurve8: Steps for stepper motor
s_timing1 to s_timing12: Timing values for scanners with SONY CCD
t_timing1 to t_timing12: Timing values for scanners with TOSHIBA CCD

In the begining, these values were read in hp3900_rts8822.h through
"GetValue" function. But editing those files could be dangerous for
scanner so I created hp3900_config.h to get those values internally
without making big changes in hp3900_rts8822.h code.


> Generally, .h files should not contain code (implementation). So I'd
> put actual code into .c files (which can also be included).

I've renamed files to .c. Will be available in next version.


> UCHAR GetCCDTypeFromGPIO()
> Pah, ugly windows-type types. Why not use unsigned char (or SANE_Byte)?

Fixed in next version

> I get the following compilation warnings:
> hp3900_rts8822.h: In function 'fnf250':
> ...

Code is unfinished and some functions must be rewriten when
I know the purpose of all involved variables. I'll silence these
warnings in next version.


> This is the error report I get from make libcheck:
> Libraries exporting 'illegal' symbols:
> *** backend/.libs/libsane-hp3900.a:
> ...

Fixed in next version.

 
> See doc/backend-writing.txt for details.

Thank you for the advice :)


  Jonathan Bravo Lopez





More information about the sane-devel mailing list