[sane-devel] HP Scanjet 2400c for genesys

Stéphane VOLTZ stefdev at modulonet.fr
Thu Jul 6 06:08:11 UTC 2006


Le mardi 4 juillet 2006 11:51, Thomas Mader a écrit :
> Hello,
>
> I have a HP Scanjet 2400c and would like to know if I can help somehow to
> speed up the development of the driver for this?
> Can I provide some information about it or something else?
>
	
	Hello,

	this topic has come a few time on the list. The way I see 2400 support added 
is to record usb activity under windows, decode it. Then modify the genesys 
backend accordingly. Test the changes, and compare debug output until it is 
close enough to windows behaviour.

	However, I think there is a 'roadmap': take the functions one after the other 
in the sequence they are used by the  backend. For instance, it make no sense 
to directly jump to the final scan and trying to hack it, since it relies on 
values detected by previous functions.

	Here's the call graph for a preview:

sane_open
	gl646_init
		gl646_init_regs
		sanei_genesys_create_slope_table
		sanei_genesys_create_gamma_table
		gl646_set_fe
		gl646_slow_back_home
		gl646_send_gamma_table
		gl646_set_powersaving

sane_start
	gl646_save_power
	gl646_set_fe

	gl646_search_start_position
		gl646_setup_sensor
		sanei_genesys_exposure_time
		gl646_setup_steps
		sanei_genesys_create_slope_table
		gl646_send_slope_table
		gl646_set_fe
		gl646_begin_scan
		sanei_genesys_read_data_from_scanner
			 this function generates a searh_position16.pnm and search_position.pnm
			which are pictures of the innings of the scanner. These should contain
		 	black and white areas that will be basis for postion detection.
		gl646_end_scan
		sanei_genesys_search_reference_point

	... more to come ... 

	I'm currently compelting this, but I think making gl646_search_start_position 
working will take enough time to let me finish.


		Some on these functions already test for HP2300. You can add tests and 
values for 2400 there. However, there are two points to take into account:
	- for the HP2300 I made the analog frontend work like the MD5345 one since
		I couldn't make it work like it is in usb logs.
	-  motor slope creation should favor sanei_genesys_create_slope_table3() over
		the sanei_genesys_create_slope_table() currently used.

	I append the latest version of the scripts that I use for log decoding.  The 
cmd.sh takes a decoded log and emits scanner status at each motor start 
(which is used as a 'commit'). It is usefull since you can take it's output 
to compare scanner internal state with the one from the backend log (output 
of gl646_bulk_write_register() ) right before gl646_begin_scan().

	Don't hesitate to ask for more or send patches ...

Regards,
	Stef



-------------- next part --------------
A non-text attachment was scrubbed...
Name: scripts.tar.bz2
Type: application/x-tbz
Size: 15628 bytes
Desc: not available
Url : http://lists.alioth.debian.org/pipermail/sane-devel/attachments/20060706/db074ddb/scripts.tar.bin


More information about the sane-devel mailing list