[sane-devel] FUJITSU fi-4340Cd ADF and page-height

Mario Goppold mgoppold at tbz-pariv.de
Tue Jun 28 11:56:05 UTC 2011


Hi,

I have some problems to scan A4 sized pages form ADF with the fujitsu
backend.

Every time the backend rounds the page to letter:

SANE_DEBUG_FUJITSU=25 scanimage -l 0 -t 0 -x 210 -y 297 --source "ADF
Duplex" --mode Gray --batch-start=1 --batch-count=2 --resolution 200
--verbose

[fujitsu] update_params: start
[fujitsu] update_params: x: max=10368, page=10200, gpw=10368, res=600
[fujitsu] update_params: y: max=72816, page=13200, gph=72816, res=600
[fujitsu] update_params: area: tlx=0, brx=10200, tly=0, bry=13200
[fujitsu] update_params: params: ppl=5100, Bpl=15300, lines=6600
[fujitsu] update_params: params: format=1, depth=8, last=1
[fujitsu] update_params: finish
...
[fujitsu] update_params: start
[fujitsu] update_params: x: max=10368, page=10200, gpw=10200, res=200
[fujitsu] update_params: y: max=72816, page=13200, gph=13200, res=200
[fujitsu] update_params: area: tlx=0, brx=9923, tly=0, bry=13200
[fujitsu] update_params: params: ppl=1653, Bpl=1653, lines=2200
[fujitsu] update_params: params: format=0, depth=8, last=1
[fujitsu] update_params: finish

The second update_param happens due to the iterpretation of the source=ADF.

The options --page-width/--page-height are inactive so I can't set them
as you suggested in "Not able to scan A3 size with Fujitsu fi-5650c"
05.02.2011

In fujitsu.c:get_page_height I find the following:

  /* current paper size for adf not overscan */
  if(s->overscan != MSEL_ON){
      return s->page_width;
  }

My questions is why returns get_page_height s->page_width an not s->max_y?

If get_page_height returns s->max_y I can scan pages in A4 and all other
greater then letter:

[fujitsu] update_params: start
[fujitsu] update_params: x: max=10368, page=10200, gpw=10368, res=600
[fujitsu] update_params: y: max=72816, page=13200, gph=72816, res=600
[fujitsu] update_params: area: tlx=0, brx=10200, tly=0, bry=13200
[fujitsu] update_params: params: ppl=5100, Bpl=15300, lines=6600
[fujitsu] update_params: params: format=1, depth=8, last=1
[fujitsu] update_params: finish
...
[fujitsu] update_params: start
[fujitsu] update_params: x: max=10368, page=10200, gpw=10200, res=200
[fujitsu] update_params: y: max=72816, page=13200, gph=72816, res=200
[fujitsu] update_params: area: tlx=0, brx=9923, tly=0, bry=14033
[fujitsu] update_params: params: ppl=1653, Bpl=1653, lines=2338
[fujitsu] update_params: params: format=0, depth=8, last=1
[fujitsu] update_params: finish


I think the problem lies in the interpretation/evaluation of br_y. But
I can not see where the value changes.

Original Code with some more debugs:

[fujitsu] sane_get_option_descriptor: 10
[fujitsu] MG get_page_height: x: max=10368, page=10200, res=200
max_basic=5184 basic_res=600
[fujitsu] MG get_page_height: y: max=72816, page=13200, res=200
max_basic=36408 basic_res=600
[fujitsu] MG get_page_height: area: tlx=0, brx=9923, tly=0, bry=13200
[fujitsu] MG get_page_height: Fall s->overscan != MSEL_ON return 13200
[fujitsu] MG get_page_height: x: max=10368, page=10200, res=200
max_basic=5184 basic_res=600
[fujitsu] MG get_page_height: y: max=72816, page=13200, res=200
max_basic=36408 basic_res=600
[fujitsu] MG get_page_height: area: tlx=0, brx=9923, tly=0, bry=13200
[fujitsu] MG get_page_height: Fall s->overscan != MSEL_ON return 13200
[fujitsu] MG sane_get_option_descriptor: option==OPT_BR_Y
get_page_height 13200
[fujitsu] MG sane_get_option_descriptor: option==OPT_BR_Y br_y_range.max
18308400
MG scanimage: option br-y = 297
[dll]
sane_control_option(handle=0x805a8b0,option=10,action=1,value=0xbfa0aeb0,info=0xbfa0addc)
[fujitsu] sane_control_option: set value for 'br-y' (10)
[fujitsu] MG sane_control_option set : OPT_BR_Y   val_c/(1 << 16)=
279.36
[fujitsu] MG sane_control_option set : OPT_BR_Y             val_c=
18308400
[fujitsu] MG sane_control_option set : OPT_BR_Y           s->br_y=
 13200
[fujitsu] MG sane_control_option set : OPT_BR_Y no update needed
MG scanimage: option br-y = 279.364
scanimage: rounded value of br-y from 297 to 279.364





and with get_page_height returns s->max_y:

[fujitsu] sane_get_option_descriptor: 10
[fujitsu] MG get_page_height: x: max=10368, page=10200, res=200
max_basic=5184 basic_res=600
[fujitsu] MG get_page_height: y: max=72816, page=13200, res=200
max_basic=36408 basic_res=600
[fujitsu] MG get_page_height: area: tlx=0, brx=9923, tly=0, bry=13200
[fujitsu] MG get_page_height: Fall s->overscan != MSEL_ON return
s->max_y 72816
[fujitsu] MG get_page_height: x: max=10368, page=10200, res=200
max_basic=5184 basic_res=600
[fujitsu] MG get_page_height: y: max=72816, page=13200, res=200
max_basic=36408 basic_res=600
[fujitsu] MG get_page_height: area: tlx=0, brx=9923, tly=0, bry=13200
[fujitsu] MG get_page_height: Fall s->overscan != MSEL_ON return
s->max_y 72816
[fujitsu] MG sane_get_option_descriptor: option==OPT_BR_Y
get_page_height 72816
[fujitsu] MG sane_get_option_descriptor: option==OPT_BR_Y br_y_range.max
100995792
MG scanimage: option br-y = 297
[dll]
sane_control_option(handle=0x805a8b0,option=10,action=1,value=0xbfb4bc40,info=0xbfb4bb6c)
[fujitsu] sane_control_option: set value for 'br-y' (10)
[fujitsu] MG sane_control_option set : OPT_BR_Y   val_c/(1 << 16)=
296.99
[fujitsu] MG sane_control_option set : OPT_BR_Y             val_c=
19463771
[fujitsu] MG sane_control_option set : OPT_BR_Y           s->br_y=
 13200
[fujitsu] MG sane_control_option set : OPT_BR_Y new br_y=14033 reload
PARAMS+OPTIONS
MG scanimage: option br-y = 296.994
scanimage: rounded value of br-y from 297 to 296.994



Why is val_c in the above Log 18308400 and not 19463771 and how depends
it on page_height?

The whole logs are available on reqest.

Thanks in advance.

Mario






More information about the sane-devel mailing list