fujitsu backend v133 2017-04-08, MAN

- initial support for fi-7600/7700
- autodetect various double feed capabilities using VPD
- call send_lut if we are using a downloaded gamma table
merge-requests/1/head
m. allan noah 2017-04-08 21:44:27 -04:00
rodzic 5edb87f9ac
commit 9712e2aa25
5 zmienionych plików z 79 dodań i 34 usunięć

Wyświetl plik

@ -377,6 +377,10 @@ putnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes)
#define get_IN_read_size(in) getbitfield(in+0x78, 1, 6)
#define get_IN_start_end_ms(in) getbitfield(in+0x78, 1, 5)
#define get_IN_battery(in) getbitfield(in+0x79, 1, 7)
#define get_IN_battery_save(in) getbitfield(in+0x79, 1, 6)
#define get_IN_op_reverse(in) getbitfield(in+0x79, 1, 1)
#define get_IN_op_halt(in) getbitfield(in+0x7a, 1, 7)
/* some scanners need evpd inquiry data manipulated */

Wyświetl plik

@ -596,6 +596,10 @@
- set ipc mode based on other options
- cleanup inverted logic DTC options
- fixes threshold option reported in #315069
v133 2017-04-08, MAN
- initial support for fi-7600/7700
- autodetect various double feed capabilities using VPD
- call send_lut if we are using a downloaded gamma table
SANE FLOW DIAGRAM
@ -645,7 +649,7 @@
#include "fujitsu.h"
#define DEBUG 1
#define BUILD 132
#define BUILD 133
/* values for SANE_DEBUG_FUJITSU env var:
- errors 5
@ -1701,6 +1705,9 @@ init_vpd (struct fujitsu *s)
DBG (15, " skew check: %d\n", get_IN_skew_check(in));
DBG (15, " new feed roller: %d\n", get_IN_new_fd_roll(in));
s->has_adv_paper_prot = get_IN_paper_prot_2(in);
DBG (15, " paper protection: %d\n", s->has_adv_paper_prot);
}
if (get_IN_page_length (in) > 0x70-5) {
@ -1708,7 +1715,10 @@ init_vpd (struct fujitsu *s)
DBG (15, " paper count: %d\n", get_IN_paper_count(in));
DBG (15, " paper number: %d\n", get_IN_paper_number(in));
DBG (15, " ext send to: %d\n", get_IN_ext_send_to(in));
DBG (15, " staple det: %d\n", get_IN_staple_det(in));
s->has_staple_detect = get_IN_staple_det(in);
DBG (15, " staple det: %d\n", s->has_staple_detect);
DBG (15, " pause host: %d\n", get_IN_pause_host(in));
DBG (15, " pause panel: %d\n", get_IN_pause_panel(in));
DBG (15, " pause conf: %d\n", get_IN_pause_conf(in));
@ -1720,7 +1730,9 @@ init_vpd (struct fujitsu *s)
DBG (15, " imprint chk b: %d\n", get_IN_imprint_chk_b(in));
DBG (15, " imprint chk f: %d\n", get_IN_imprint_chk_f(in));
DBG (15, " force w bg: %d\n", get_IN_force_w_bg(in));
DBG (15, " mf recover lvl: %d\n", get_IN_mf_recover_lvl(in));
s->has_df_recovery = get_IN_mf_recover_lvl(in);
DBG (15, " mf recover lvl: %d\n", s->has_df_recovery);
DBG (15, " first read time: %d\n", get_IN_first_read_time(in));
DBG (15, " div scanning: %d\n", get_IN_div_scanning(in));
@ -2033,7 +2045,8 @@ init_model (struct fujitsu *s)
/* if scanner has built-in gamma tables, we use the first one (0) */
/* otherwise, we use the first downloaded one (0x80) */
/* note that you may NOT need to send the table to use it? */
/* note that you may NOT need to send the table to use it, */
/* the scanner will fall back to the brightness/contrast LUT */
if (!s->num_internal_gamma && s->num_download_gamma){
s->window_gamma = 0x80;
}
@ -2280,10 +2293,8 @@ init_model (struct fujitsu *s)
}
else if (strstr (s->model_name,"fi-6800")
|| strstr (s->model_name,"fi-5900")){ /* guessing this scanner too */
/* missing from vpd */
s->has_staple_detect=1; /* may not actually work? */
s->has_df_recovery=1;
|| strstr (s->model_name,"fi-5900")){
/* do not need overrides */
}
else if (strstr (s->model_name,"iX500")){
@ -2342,10 +2353,6 @@ init_model (struct fujitsu *s)
s->max_y_by_res[2].len = 260268;
s->max_y_by_res[3].res = 200;
s->max_y_by_res[3].len = 266268;
/* missing from vpd */
s->has_df_recovery=1;
s->has_adv_paper_prot=1;
}
else if (strstr (s->model_name,"fi-7280")
@ -2361,8 +2368,6 @@ init_model (struct fujitsu *s)
s->max_y_by_res[3].len = 266268;
/* missing from vpd */
s->has_df_recovery=1;
s->has_adv_paper_prot=1;
s->max_x_fb = 10764;
s->max_y_fb = 14032; /* some scanners can be slightly more? */
}
@ -2378,10 +2383,6 @@ init_model (struct fujitsu *s)
s->max_y_by_res[2].len = 260268;
s->max_y_by_res[3].res = 200;
s->max_y_by_res[3].len = 266268;
/* missing from vpd */
s->has_df_recovery=1;
s->has_adv_paper_prot=1;
}
else if (strstr (s->model_name,"fi-7030")){
@ -2394,7 +2395,19 @@ init_model (struct fujitsu *s)
s->max_y_by_res[2].len = 258000;
s->max_y_by_res[3].res = 200;
s->max_y_by_res[3].len = 264000;
}
else if (strstr (s->model_name,"fi-7700")
|| strstr (s->model_name,"fi-7600")){
/* weirdness */
/* these machines have longer max paper at lower res */
s->max_y_by_res[1].res = 400;
s->max_y_by_res[1].len = 192000;
s->max_y_by_res[2].res = 300;
s->max_y_by_res[2].len = 258000;
s->max_y_by_res[3].res = 200;
s->max_y_by_res[3].len = 264000;
}
DBG (10, "init_model: finish\n");
@ -6919,8 +6932,9 @@ sane_start (SANE_Handle handle)
if (ret != SANE_STATUS_GOOD)
DBG (5, "sane_start: WARNING: cannot send_endorser %d\n", ret);
/* send lut if scanner has no hardware brightness/contrast */
if (!s->late_lut && (!s->brightness_steps || !s->contrast_steps)){
/* send lut if scanner has no hardware brightness/contrast,
* or we are going to ask it to use a downloaded gamma table */
if (!s->late_lut && (!s->brightness_steps || !s->contrast_steps || s->window_gamma & 0x80)){
ret = send_lut(s);
if (ret != SANE_STATUS_GOOD)
DBG (5, "sane_start: WARNING: cannot early send_lut %d\n", ret);
@ -6933,8 +6947,9 @@ sane_start (SANE_Handle handle)
goto errors;
}
/* send lut if scanner has no hardware brightness/contrast */
if (s->late_lut && (!s->brightness_steps || !s->contrast_steps)){
/* send lut if scanner has no hardware brightness/contrast,
* or we are going to ask it to use a downloaded gamma table */
if (s->late_lut && (!s->brightness_steps || !s->contrast_steps || s->window_gamma & 0x80)){
ret = send_lut(s);
if (ret != SANE_STATUS_GOOD)
DBG (5, "sane_start: WARNING: cannot late send_lut %d\n", ret);

Wyświetl plik

@ -258,3 +258,13 @@ usb 0x04c5 0x151e
#fi-7030
usb 0x04c5 0x151f
#fi-7700
usb 0x04c5 0x1520
#fi-7600
usb 0x04c5 0x1521
#fi-7700S
usb 0x04c5 0x1522

Wyświetl plik

@ -12,9 +12,9 @@
:backend "fujitsu" ; name of backend
:url "http://www.thebility.com/fujitsu/"
:version "129" ; version of backend
:version "133" ; version of backend
:manpage "sane-fujitsu" ; name of manpage (if it exists)
:comment "Backend updated for SANE release 1.0.25, see sane-fujitsu manpage"
:comment "Backend updated for SANE release 1.0.26, see sane-fujitsu manpage"
:devicetype :scanner ; start of a list of devices....
; other types: :stillcam, :vidcam,
; :meta, :api
@ -556,7 +556,7 @@
:usbid "0x04c5" "0x14ac"
;==================================================
; 2015/2016 NEW MODELS, UNORDERED
; 2015/2016/2017 NEW MODELS, UNORDERED
:model "fi-6420"
:interface "SCSI USB"
@ -575,21 +575,21 @@
:model "ScanPartner SP25"
:interface "USB"
:status :untested
:status :unsupported
:usbid "0x04c5" "0x1409"
:comment "Possibly does not use a Fujitsu protocol?"
:comment "Possibly Genesys protocol?"
:model "ScanPartner SP30"
:interface "USB"
:status :untested
:status :unsupported
:usbid "0x04c5" "0x140a"
:comment "Possibly does not use a Fujitsu protocol?"
:comment "Possibly Genesys protocol?"
:model "ScanPartner SP30F"
:interface "USB"
:status :untested
:status :unsupported
:usbid "0x04c5" "0x140c"
:comment "Possibly does not use a Fujitsu protocol?"
:comment "Possibly Genesys protocol?"
:model "N7100"
:interface "USB Ethernet"
@ -663,5 +663,20 @@
:model "fi-7030"
:interface "USB"
:status :untested
:status :good
:usbid "0x04c5" "0x151f"
:model "fi-7700"
:interface "USB"
:status :good
:usbid "0x04c5" "0x1520"
:model "fi-7600"
:interface "USB"
:status :good
:usbid "0x04c5" "0x1521"
:model "fi-7700S"
:interface "USB"
:status :untested
:usbid "0x04c5" "0x1522"

Wyświetl plik

@ -1,4 +1,4 @@
.TH sane\-fujitsu 5 "31 Aug 2015" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy"
.TH sane\-fujitsu 5 "08 Apr 2017" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy"
.IX sane\-fujitsu
.SH NAME
@ -10,7 +10,7 @@ The
library implements a SANE (Scanner Access Now Easy) backend which
provides access to most Fujitsu flatbed and ADF scanners.
This document describes backend version 127, which shipped with SANE 1.0.25.
This document describes backend version 133, which shipped with SANE 1.0.26.
.SH SUPPORTED HARDWARE
This version supports every known model which speaks the Fujitsu SCSI and
@ -42,6 +42,7 @@ SP\-Jr M3097E+/DE S300/S300M
SP\-10/10C M3099A/EH/EX S1300/S1100
SP\-15C/300C fi\-60F
SP\-600C/620C fi\-5015C
SP\-2x/3x
.fi
.ft R
.RE