[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