sane-airscan
sane-airscan copied to clipboard
Ricoh Aficio MP 201 ADF 1 page scan
Всем добра!
Сабж ни в какую не хочет сканировать с АПД более одной страницы. Проверял на последней версии сборки sane-airscan.
scanimage -A
Output format is not set, using pnm as a default.
All options specific to device `airscan:w0:RICOH Aficio MP 201':
Standard:
--resolution 100|200|300|400|600dpi [300]
Sets the resolution of the scanned image.
--mode Color|Gray [Color]
Selects the scan mode (e.g., lineart, monochrome, or color).
--source Flatbed|ADF|ADF Duplex [Flatbed]
Selects the scan source (such as a document-feeder).
Geometry:
-l 0..216.002mm [0]
Top-left x position of scan area.
-t 0..356.006mm [0]
Top-left y position of scan area.
-x 0..216.002mm [216.002]
Width of scan-area.
-y 0..356.006mm [356.006]
Height of scan-area.
Enhancement:
--brightness -100..100% (in steps of 1) [0]
Controls the brightness of the acquired image.
--contrast -100..100% (in steps of 1) [0]
Controls the contrast of the acquired image.
--shadow 0..100% (in steps of 1) [0]
Selects what radiance level should be considered "black".
--highlight 0..100% (in steps of 1) [100]
Selects what radiance level should be considered "white".
--analog-gamma 0.0999908..4 [1]
Analog gamma-correction
--negative[=(yes|no)] [no]
Swap black and white
--adf-justification-x <string> [inactive]
ADF width justification (left/right/center)
--adf-justification-y <string> [inactive]
ADF height justification (top/bottom/center)
scanimage -d 'airscan:w0:RICOH Aficio MP 201' -x 216 -y 297 --source=ADF --format=jpeg --batch='scan_out3.jpeg'
API: sane_init(): called
loading configuration file /etc/sane.d/airscan.conf
MDNS: AVAHI_CLIENT_S_RUNNING
WSDD: netif addresses update:
WSDD: + 10.0.0.10@eth0, ifindex=2
WSDD: + fe80::5246:5dff:fea1:955a@eth0, ifindex=2
WSDD: 10.0.0.10: started discovery, UDP port=35909
WSDD: fe80::5246:5dff:fea1:955a: started discovery, UDP port=43217
MDNS: browse-ipv4@eth0("_ipp._tcp"): AVAHI_BROWSER_NEW (CACHED MCAST)
MDNS: browse-ipv4
[scanimage-RICOH-Aficio-MP-201.log](https://github.com/alexpevzner/sane-airscan/files/14833719/scanimage-RICOH-Aficio-MP-201.log)
@eth0("_ipp._tcp"): "RICOH Aficio MP 201 [5123E0]" (CACHED MCAST)
API: sane_open("w0:RICOH Aficio MP 201"): called
MDNS: browse-ipv6@*("_ipp._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6@*("_ipps._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6@*("_uscan._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6@*("_uscans._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6@*("_scanner._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
zeroconf: device_list wait: requested
zeroconf: device_list wait: DNS-SD not finished...
MDNS: resolve-ipv4@eth0("_ipp._tcp", "RICOH Aficio MP 201 [5123E0]"): 10.0.0.20:631 (CACHED MCAST)
WSDD: directed probe: trying if=eth0, addr=10.0.0.20
WSDD: HTTP POST http://10.0.0.20/StableWSDiscoveryEndpoint/schemas-xmlsoap-org_ws_2005_04_discovery
WSDD: HTTP resolving 10.0.0.20 80
WSDD: HTTP trying 10.0.0.20:80
WSDD: HTTP fdpoll: {--} -> {-w}
WSDD: HTTP 804 bytes sent
WSDD: HTTP done request sending
WSDD: HTTP fdpoll: {-w} -> {rw}
WSDD: HTTP fdpoll: {rw} -> {r-}
WSDD: HTTP 203 bytes received
WSDD: HTTP POST http://10.0.0.20/StableWSDiscoveryEndpoint/schemas-xmlsoap-org_ws_2005_04_discovery: got response headers (404)
WSDD: HTTP done response reception
WSDD: HTTP POST http://10.0.0.20/StableWSDiscoveryEndpoint/schemas-xmlsoap-org_ws_2005_04_discovery: 404 Not Found
WSDD: HTTP POST http://10.0.0.20/StableWSDiscoveryEndpoint/schemas-xmlsoap-org_ws_2005_04_discovery: Not Found
WSDD: directed probe: HTTP Not Found
WSDD: HTTP POST http://10.0.0.20:53000
WSDD: HTTP resolving 10.0.0.20 53000
WSDD: HTTP trying 10.0.0.20:53000
WSDD: HTTP fdpoll: {--} -> {-w}
WSDD: HTTP 668 bytes sent
WSDD: HTTP done request sending
WSDD: HTTP fdpoll: {-w} -> {rw}
WSDD: HTTP fdpoll: {rw} -> {r-}
MDNS: browse-ipv6@*("_ipp._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
MDNS: browse-ipv6@*("_ipps._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
MDNS: browse-ipv6@*("_uscan._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_USCAN_TCP: initial scan finished
MDNS: browse-ipv6@*("_uscans._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_USCANS_TCP: initial scan finished
MDNS: browse-ipv6@*("_scanner._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: device_list wait: DNS-SD not finished...
MDNS: "RICOH Aficio MP 201 [5123E0]": publish-delay timer expired
zeroconf: ZEROCONF_MDNS_HINT: initial scan finished
zeroconf: device_list wait: WSDD not finished...
WSDD: HTTP 1448 bytes received
WSDD: HTTP POST http://10.0.0.20:53000: got response headers (200)
WSDD: HTTP 954 bytes received
WSDD: HTTP done response reception
WSDD: HTTP POST http://10.0.0.20:53000: 200 OK
WSDD: HTTP POST http://10.0.0.20:53000: OK
zeroconf: found urn:uuid:9bed92fe-1dd1-11b2-a906-a5c921a30cbb
zeroconf: method: ZEROCONF_WSD
zeroconf: interface: 2 (eth0)
zeroconf: name: -
zeroconf: model: RICOH Aficio MP 201
zeroconf: addresses:
zeroconf: 10.0.0.20
zeroconf: protocol: WSD
zeroconf: endpoints:
zeroconf: http://10.0.0.20:53002
zeroconf: device: 0000 (created)
zeroconf: device_list wait: WSDD not finished...
WSDD: fe80::5246:5dff:fea1:955a: done discovery
WSDD: 10.0.0.10: done discovery
zeroconf: ZEROCONF_WSD: initial scan finished
zeroconf: device_list wait: OK
RICOH Aficio MP 201: device created
RICOH Aficio MP 201: added image decoder: "jpeg"
RICOH Aficio MP 201: added image decoder: "tiff"
RICOH Aficio MP 201: added image decoder: "png"
RICOH Aficio MP 201: added image decoder: "bmp"
RICOH Aficio MP 201: DEVICE_STM_OPENED->DEVICE_STM_PROBING
RICOH Aficio MP 201: using protocol "WSD"
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002
RICOH Aficio MP 201: HTTP using timeout: 5000 ms
RICOH Aficio MP 201: HTTP resolving 10.0.0.20 53002
RICOH Aficio MP 201: HTTP trying 10.0.0.20:53002
RICOH Aficio MP 201: HTTP fdpoll: {--} -> {-w}
RICOH Aficio MP 201: HTTP 972 bytes sent
RICOH Aficio MP 201: HTTP done request sending
RICOH Aficio MP 201: HTTP fdpoll: {-w} -> {rw}
RICOH Aficio MP 201: HTTP fdpoll: {rw} -> {r-}
RICOH Aficio MP 201: HTTP 1448 bytes received
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002: got response headers (200)
RICOH Aficio MP 201: HTTP 1448 bytes received
RICOH Aficio MP 201: HTTP 1448 bytes received
RICOH Aficio MP 201: HTTP 878 bytes received
RICOH Aficio MP 201: HTTP done response reception
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002: 200 OK
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002: OK
RICOH Aficio MP 201: DEVICE_STM_PROBING->DEVICE_STM_IDLE
RICOH Aficio MP 201: API: sane_open("w0:RICOH Aficio MP 201"): Success
RICOH Aficio MP 201: API: device_get_option_descriptor(): called
RICOH Aficio MP 201: API: device_get_option_descriptor(): done
RICOH Aficio MP 201: API: get (0): 19
RICOH Aficio MP 201: API: device_get_option_descriptor(): called
RICOH Aficio MP 201: API: device_get_option_descriptor(): done
RICOH Aficio MP 201: API: get (0): 19
RICOH Aficio MP 201: API: device_get_option_descriptor(): called
...
RICOH Aficio MP 201: API: device_get_option_descriptor(): done
RICOH Aficio MP 201: API: get br-x: 216.002
RICOH Aficio MP 201: API: get tl-x: 0
RICOH Aficio MP 201: API: get br-y: 356.006
RICOH Aficio MP 201: API: get tl-y: 0
RICOH Aficio MP 201: API: device_get_option_descriptor(): called
RICOH Aficio MP 201: API: device_get_option_descriptor(): done
RICOH Aficio MP 201: API: device_get_option_descriptor(): called
RICOH Aficio MP 201: API: device_get_option_descriptor(): done
RICOH Aficio MP 201: API: set source: "ADF" info: reload: options params
RICOH Aficio MP 201: API: device_get_option_descriptor(): called
RICOH Aficio MP 201: API: device_get_option_descriptor(): done
RICOH Aficio MP 201: API: get (0): 19
...
RICOH Aficio MP 201: API: get tl-x: 0
RICOH Aficio MP 201: API: device_get_option_descriptor(): called
RICOH Aficio MP 201: API: device_get_option_descriptor(): done
RICOH Aficio MP 201: API: set br-x: 216 info: reload: params
RICOH Aficio MP 201: API: get tl-y: 0
RICOH Aficio MP 201: API: device_get_option_descriptor(): called
RICOH Aficio MP 201: API: device_get_option_descriptor(): done
RICOH Aficio MP 201: API: set br-y: 297 info: reload: params
RICOH Aficio MP 201: API: device_get_option_descriptor(): called
RICOH Aficio MP 201: API: device_get_option_descriptor(): done
RICOH Aficio MP 201: API: get resolution: 300
Scanning infinity pages, incrementing by 1, numbering from 1
Scanning page 1
RICOH Aficio MP 201: API: sane_start(): called
RICOH Aficio MP 201: device_start_wait: waiting
RICOH Aficio MP 201: DEVICE_STM_IDLE->DEVICE_STM_SCANNING
RICOH Aficio MP 201: PROTO_OP_PRECHECK: submitting: attempt=0
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002
RICOH Aficio MP 201: HTTP using timeout: 5000 ms
RICOH Aficio MP 201: HTTP resolving 10.0.0.20 53002
RICOH Aficio MP 201: HTTP trying 10.0.0.20:53002
RICOH Aficio MP 201: HTTP fdpoll: {--} -> {-w}
RICOH Aficio MP 201: HTTP 965 bytes sent
RICOH Aficio MP 201: HTTP done request sending
RICOH Aficio MP 201: HTTP fdpoll: {-w} -> {rw}
RICOH Aficio MP 201: HTTP fdpoll: {rw} -> {r-}
RICOH Aficio MP 201: HTTP 1289 bytes received
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002: got response headers (200)
RICOH Aficio MP 201: HTTP done response reception
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002: 200 OK
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002: OK
RICOH Aficio MP 201: PROTO_OP_PRECHECK: decoding
RICOH Aficio MP 201: PROTO_OP_PRECHECK: decoded: status="Success" next=PROTO_OP_SCAN delay=0
RICOH Aficio MP 201: PROTO_OP_SCAN: submitting: attempt=0
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002
RICOH Aficio MP 201: HTTP using timeout: 30000 ms
RICOH Aficio MP 201: HTTP resolving 10.0.0.20 53002
RICOH Aficio MP 201: HTTP trying 10.0.0.20:53002
RICOH Aficio MP 201: HTTP fdpoll: {--} -> {-w}
RICOH Aficio MP 201: HTTP 1827 bytes sent
RICOH Aficio MP 201: HTTP done request sending
RICOH Aficio MP 201: HTTP fdpoll: {-w} -> {rw}
RICOH Aficio MP 201: HTTP fdpoll: {rw} -> {r-}
zeroconf: initial scan timer expired
RICOH Aficio MP 201: HTTP 1448 bytes received
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002: got response headers (200)
RICOH Aficio MP 201: HTTP 1558 bytes received
RICOH Aficio MP 201: HTTP done response reception
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002: 200 OK
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002: OK
RICOH Aficio MP 201: PROTO_OP_SCAN: decoding
RICOH Aficio MP 201: PROTO_OP_SCAN: decoded: status="Success" next=PROTO_OP_LOAD delay=0
RICOH Aficio MP 201: PROTO_OP_LOAD: submitting: attempt=0
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002
RICOH Aficio MP 201: HTTP resolving 10.0.0.20 53002
RICOH Aficio MP 201: HTTP trying 10.0.0.20:53002
RICOH Aficio MP 201: HTTP fdpoll: {--} -> {-w}
RICOH Aficio MP 201: device_start_wait: Success
RICOH Aficio MP 201: API: sane_start(): Success
RICOH Aficio MP 201: API: sane_get_params(): called
RICOH Aficio MP 201: API: sane_get_params(): done
RICOH Aficio MP 201: HTTP 1060 bytes sent
RICOH Aficio MP 201: HTTP done request sending
RICOH Aficio MP 201: HTTP fdpoll: {-w} -> {rw}
RICOH Aficio MP 201: HTTP fdpoll: {rw} -> {r-}
RICOH Aficio MP 201: HTTP 296 bytes received
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002: got response headers (200)
RICOH Aficio MP 201: HTTP using timeout: none
RICOH Aficio MP 201: HTTP 5 bytes received
RICOH Aficio MP 201: HTTP 1122 bytes received
RICOH Aficio MP 201: HTTP 7 bytes received
RICOH Aficio MP 201: HTTP 1162 bytes received
...
RICOH Aficio MP 201: HTTP 496 bytes received
RICOH Aficio MP 201: HTTP 6 bytes received
RICOH Aficio MP 201: HTTP 47 bytes received
RICOH Aficio MP 201: HTTP 7 bytes received
RICOH Aficio MP 201: http multipart parameters:
RICOH Aficio MP 201: boundary="uuid:51bba0c2-1dd2-11b2-aea2-c0307c6bacff"
RICOH Aficio MP 201: type="application/xop+xml"
RICOH Aficio MP 201: charset="utf-8"
RICOH Aficio MP 201: start="<SOAP-ENV:Envelope>"
RICOH Aficio MP 201: start-info="application/soap+xml"
RICOH Aficio MP 201: HTTP done response reception
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002: 200 OK
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002: OK
RICOH Aficio MP 201: PROTO_OP_LOAD: decoding
RICOH Aficio MP 201: PROTO_OP_LOAD: decoded: status="Success" next=PROTO_OP_LOAD delay=0
RICOH Aficio MP 201: PROTO_OP_LOAD: submitting: attempt=0
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002
RICOH Aficio MP 201: HTTP resolving 10.0.0.20 53002
RICOH Aficio MP 201: HTTP trying 10.0.0.20:53002
RICOH Aficio MP 201: HTTP fdpoll: {--} -> {-w}
RICOH Aficio MP 201: HTTP 1060 bytes sent
RICOH Aficio MP 201: HTTP done request sending
RICOH Aficio MP 201: HTTP fdpoll: {-w} -> {rw}
RICOH Aficio MP 201: HTTP fdpoll: {rw} -> {r-}
RICOH Aficio MP 201: API: sane_read(): End of file reached
Scanned page 1. (scanner status = 5)
Scanning page 2
RICOH Aficio MP 201: API: sane_start(): called
RICOH Aficio MP 201: device_start: waiting for background scan job
RICOH Aficio MP 201: HTTP 145 bytes received
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002: got response headers (400)
RICOH Aficio MP 201: HTTP using timeout: none
RICOH Aficio MP 201: HTTP 5 bytes received
RICOH Aficio MP 201: HTTP 951 bytes received
RICOH Aficio MP 201: HTTP 7 bytes received
RICOH Aficio MP 201: HTTP done response reception
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002: 400 Bad Request
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002: Bad Request
RICOH Aficio MP 201: PROTO_OP_LOAD: decoding
RICOH Aficio MP 201: fault code: ClientErrorJobIdNotFound
RICOH Aficio MP 201: PROTO_OP_LOAD: decoded: status="Success" next=PROTO_OP_CHECK delay=0
RICOH Aficio MP 201: PROTO_OP_CHECK: submitting: attempt=0
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002
RICOH Aficio MP 201: HTTP using timeout: 5000 ms
RICOH Aficio MP 201: HTTP resolving 10.0.0.20 53002
RICOH Aficio MP 201: HTTP trying 10.0.0.20:53002
RICOH Aficio MP 201: HTTP fdpoll: {--} -> {-w}
RICOH Aficio MP 201: HTTP 965 bytes sent
RICOH Aficio MP 201: HTTP done request sending
RICOH Aficio MP 201: HTTP fdpoll: {-w} -> {rw}
RICOH Aficio MP 201: HTTP fdpoll: {rw} -> {r-}
RICOH Aficio MP 201: HTTP 1289 bytes received
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002: got response headers (200)
RICOH Aficio MP 201: HTTP done response reception
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002: 200 OK
RICOH Aficio MP 201: HTTP POST http://10.0.0.20:53002: OK
RICOH Aficio MP 201: PROTO_OP_CHECK: decoding
RICOH Aficio MP 201: PROTO_OP_CHECK: fault code: ClientErrorJobIdNotFound
RICOH Aficio MP 201: PROTO_OP_CHECK: ScannerState: Idle
RICOH Aficio MP 201: PROTO_OP_CHECK: ScannerStateReason: None
RICOH Aficio MP 201: PROTO_OP_CHECK: decoded: status="Error during device I/O" next=PROTO_OP_FINISH delay=0
RICOH Aficio MP 201: JOB status=Error during device I/O
RICOH Aficio MP 201: DEVICE_STM_SCANNING->DEVICE_STM_DONE
RICOH Aficio MP 201: DEVICE_STM_DONE->DEVICE_STM_IDLE
RICOH Aficio MP 201: API: sane_start(): Error during device I/O
scanimage: sane_start: Error during device I/O
Batch terminated, 1 page scanned
RICOH Aficio MP 201: API: sane_close(): called
RICOH Aficio MP 201: DEVICE_STM_IDLE->DEVICE_STM_CLOSED
RICOH Aficio MP 201: removed from device table
RICOH Aficio MP 201: closed protocol "WSD"
RICOH Aficio MP 201: device destroyed
RICOH Aficio MP 201: API: sane_close(): done
API: sane_exit(): called
zeroconf: device gone urn:uuid:9bed92fe-1dd1-11b2-a906-a5c921a30cbb
zeroconf: method: ZEROCONF_WSD
zeroconf: interface: 2 (eth0)
API: sane_exit(): OK
Любопытно, что даже с указанием scanimage использовать формат tiff или png, в отладочной информации все равно проскакивает сохранение в JPEG. Между тем, конечный файл сохраняется корректно в указанном в параметрах формате.
Правильно ли я понимаю, что это является особенностью самого аппарата?
Добрый вечер!
Сабж ни в какую не хочет сканировать с АПД более одной страницы
Мне бы трассу протокола. Это надо в /etc/sane.d/airscan.conf раскомментировать строчки:
[debug]
trace = ~/airscan/trace
И посканировать разок. Директория ~/airscan/trace создастся автоматически и в ней появятся файлы *.log и *.tar. Мне бы пока только *.log, тары не нужны.
В процессе разбирательств Вы сможете сами пересобрать airscan?
Правильно ли я понимаю, что это является особенностью самого аппарата?
Драйвер SANE всегда отдает приложению (в данном случае это scanimage) распакованное изображение. И scanimage сам его уже перепаковывает в то, что попросили.
JPEG, который проскакивает в логе - это формат, в котором изображение передается между драйвером и устройством. Устройство предлагает некоторый набор форматов, драйвер из них выбирает на свое усмотрение.
Большинство устройст поддерживает JPEG, но бывают и исключения.
В процессе разбирательств Вы сможете сами пересобрать airscan?
Да, разумеется.
Файл трассировки приложил. scanimage-RICOH-Aficio-MP-201.log
Как-то не очень понятно. По логу я вижу, что пришло две картинки. При этом сканирование было одностороннее. Т.е., два листа с податчика сканер сгреб, отсканировал и прислал. А сколько там всего было, я не знаю.
Кстати, если у вас выходной формат JPEG, он не поддерживает многостраничные документы. Многостраничные документы поддерживает TIFF (но я не уверен, что scanimage умеет этим пользоваться) и PDF.
в АДП установлены 3 страницы. Сканирование через scanimage с использованием --format=tiff - аналогичное? устройство прогоняет один лист и выходит в ошибку "Количество отскан.страниц достигло макс. в соотв. с настройк.ПК Отправка началась." Выходной TIFF-файл содержит одну отсканированную страницу.
Пробовал с --batch-count=3, но АПД по-прежнему забирает только одну страницу.
А следующий скан нормально забирает следущую страницу, или есть какие-то пропуски?
Я вот что хочу попросить.
Возьмите, пожалуйста, simple-scan (а не scanimage), вставьте в лоток пару листков и нажимайте кнопку "Сканировать", пока листки не кончатся, а потом еще один раз (с пустым лотком). И покажите мне потом, пожалуйста, получившуюся в результате трассу протокола.
А следующий скан нормально забирает следущую страницу, или есть какие-то пропуски?
Пропусков нет, следующая попытка сканирования с АПД берет одну страницу.
Да, simple-scan действительно показывает две страницы (одна с текстом, другая пустая), в то время, как за раз сканирует только один лист. Похоже что сканирует в режиме дуплекс.
Сканирование с АДП с установленными листами. simple-scan с настройками "Текст"+"Все страницы с автоподатчика" simple-scan-RICOH-Aficio-MP-201_all_pages_once.log
Сканирование с настройками "Текст"+"Одна страница" выполненное дважды simple-scan-RICOH-Aficio-MP-201_one_page_twice.log
Сканирование с пустым АПД с настройками "Текст"+"Все страницы с автоподатчика" simple-scan-RICOH-Aficio-MP-201_empty.log
Надо же, ему целых 10 секунд надо, чтобы с пустым автоподатчиком сообразить, что кина не будет.
Еще одна просьба. Пересоберите, пожалуйста, драйвер из свежих исходников и запустите програмку test, которая там заодно соберется. Она сделает одну попытку скана и тоже породит трассу test-...log, пришлите мне эту трассу тоже.
Будет попытка скана удачной или нет, не важно. Я там просто запросил дополнительную информацию о сканере и хочу на нее посмотреть.
Прикладываю test-RICOH-Aficio-MP-201.log
Кажется, это не самый последний коммит, b7fd125514676060247fe69cb7ca540ff150238c туда почему-то не попал...
Извиняюсь, сделал git pull, увидел коммит для airscan-wsd.c, пересобрал
test-RICOH-Aficio-MP-201.log
А попробуйте, пожалуйста, в файле airscan-wsd.c в строке 807 найти такую строчку:
xml_wr_add_text(xml, "sca:ImagesToTransfer", "0");
И "0" заменить на "10", а потом пересобрать и посканировать с податчика. Только уже не тестом, а настоящей программой.
Я обычно не говорю при таких экспериментах make install, а просто делаю символическую ссылку: /lib64/sane/libsane-airscan.so.1 -> /home/pzz/c/pzz/sane-airscan/libsane-airscan.so.1
У меня sane-вские драйвера находятся в /lib64/sane/..., но в некоторых дистрибутивах они находятся в /lib/sane/.... А /home/pzz/c/pzz/sane-airscan/ - это билдовая директория, где я работаю (подставьте вместо нее свою).
Этого достаточно, чтобы использовался свежесобраный драйвер, и не надо после каждой пересборки чего-либо переставлять.
Да! Аппарат взял три тестовые страницы с АПД и успешно их просканировал! Файлы создаются. Но, сканирование завершается ошибкой фронтенда "Error during device I/O" scanimage-RICOH-Aficio-MP-201.log
А попробуйте какое-нибудь большое число. Например, "1000".
Это бага в прошивке. "0" - значит сканировать, пока листочки не кончатся. Но сканер это воспринимает, как "1".
Беда в том, что не вижу надежного способа отличить эту модель от каких-то других. И боюсь, среди других найдутся такие, которые не будут нормально работать с большим числом. А их мне ломать тоже не хочется :(
Но, сканирование завершается ошибкой фронтенда "Error during device I/O"
Это как раз легко лечится. Этот сканер сообщает о том, что листочки кончились, нестандартным способом. А я все непонятные ошибки возвращаю, как "I/O error". Просто добавлю эту в список понятных.
Параметр 1024 отработал без ошибок.
Оставлю данные о версии FW устройства
Система: 1.10
NIB: 9.08
Web Image Monitor: 1.02
Похоже список совместимых устройств можно пополнить сабжем!
Но, сканирование завершается ошибкой фронтенда "Error during device I/O"
Это я, надеюсь, починил. Попробуйте, пожалуйста, в двух вариантах:
- В податчике что-то есть. Должно отсканироваться все, что есть, а потом "ADF empty" (которая, вероятно, не будет воспринята, как ошибка - это ожидаемое завершение сканирования с податчика)
- Податчик изначально пустой - должно быть правильное сообщение об ошибке
Насчет поставить лимит "1024" вместо "0" я еще подумаю. Боюсь другое какое-нибудь капризное устройство сломать, а как понять, что я общаюсь именно в этим (или, хотя бы, именно с каким-то Ricoh), пока не понимаю: в протоколе WSD, к сожалению, такого удобства не предусмотрено.
Боюсь другое какое-нибудь капризное устройство сломать, а как понять, что я общаюсь именно в этим (или, хотя бы, именно с каким-то Ricoh), пока не понимаю: в протоколе WSD, к сожалению, такого удобства не предусмотрено.
А возможно использовать модель из вывода zeroconf?
zeroconf: method: ZEROCONF_WSD
zeroconf: interface: 2 (eth0)
zeroconf: name: -
zeroconf: model: RICOH Aficio MP 201
zeroconf: addresses:
zeroconf: 10.0.0.20
zeroconf: protocol: WSD
zeroconf: endpoints:
zeroconf: http://10.0.0.20:53002
zeroconf: device: 0000 (created)
zeroconf: device_list wait: WSDD not finished...
Например, для Pantum 5100, модель (model) - Pantum BM5100ADW Series не редактируемое значение.
zeroconf: ZEROCONF_USCANS_TCP: initial scan finished
zeroconf: found urn:uuid:1dfd422b-4dd9-400e-8047-47282ad2c0da
zeroconf: method: ZEROCONF_USCANS_TCP
zeroconf: interface: 2 (eth0)
zeroconf: name: Pantum BM5100ADW Series 4B94CA
zeroconf: model: Pantum BM5100ADW Series
zeroconf: addresses:
zeroconf: 10.0.0.23
zeroconf: protocol: eSCL
zeroconf: endpoints:
zeroconf: https://10.0.0.23:443/eSCL/
zeroconf: device: 0000 (found)
zeroconf: device_list wait: OK
zeroconf: zeroconf_device_list_get: building list of devices
zeroconf: Pantum BM5100ADW Series 4B94CA (0): can: eSCL, use: eSCL
zeroconf: zeroconf_device_list_get: resulting list:
zeroconf: eSCL "e0:Pantum BM5100ADW Series 4B94CA"
В отличии от Служба Bonjour (name) - Pantum BM5100ADW Series 4B94CA
А возможно использовать модель из вывода zeroconf?
Ну я же работаю не только с устройствами, которых нашел zeroconf, но и можно просто в конфиге URL задать.
Я пока колеблюсь между тем, чтобы рискнуть попробовать задать большое число с запасом, в надежде, что это никого не сломает, или запросить имя модели пol IPP (принтеровский протокол). Но по IPP довольно муторно это делать...
В податчике что-то есть. Должно отсканироваться все, что есть, а потом "ADF empty" (которая, вероятно, не будет воспринята, как ошибка - это ожидаемое завершение сканирования с податчика)
Сканирование заканчивается штатно. Ошибок и информационных сообщений из фронтенда не выходит.
Податчик изначально пустой - должно быть правильное сообщение об ошибке
Ошибка "Error during device I/O"
Дополнительное тестирование выявило несколько особенностей!
- АПД в двухстороннем режиме. Второй лист сканируется в перевернутом виде.
- АПД. После сканирования каждого листа происходит задержка - переключается лампа сканера с АПД на планшет и обратно.
https://github.com/alexpevzner/sane-airscan/assets/16970072/3a8b6504-caf1-4f54-8c0a-6ad10da3bd3e
АПД в двухстороннем режиме. Второй лист сканируется в перевернутом виде.
А можно мне трассу с .tar-ом от этого случая? И не кладите важных листочков в сканер; .tar содержит картинки.
После сканирования каждого листа происходит задержка - переключается лампа сканера с АПД на планшет и обратно.
А там нижнюю сторону автоподатчика не обслуживает ли сенсор планшета?
Прикладываю .zip и .log сканирования двух страниц. Каждый лист и его сторона подписаны scanimage-RICOH-Aficio-MP-201.log scanimage-RICOH-Aficio-MP-201.zip
А там нижнюю сторону автоподатчика не обслуживает ли сенсор планшета?
Нет, сенсор планшета даже не используется. Лист заходит в АПД, сканируется через лампу АПД, затем после прогона первой стороны, загорается лампа планшета, гаснет, затем загорается лампа АПД и вторая сторона сканируется.
Т.е., он делает двухстороннее сканирование в два прохода? Тогда понятно, почему картинка перевернута - задняя сторона проходит через сенсор задом наперед.
Мда. Надо как-то научиться надежно опеделять этот девайс...
@agapovmax, добрый вечер!
Я попытался "автоматизировать" тот workaround для вашего сканера, который я тогда просил Вас сделать руками. Не могли бы вы попробовать sane-airscan на Вашем устройстве и подтвердить, что всё ОК?