[Gambas-bugtracker] Bug #1882: gb.scanner compatiblity

bugtracker at gambaswiki.org bugtracker at gambaswiki.org
Sat Sep 12 18:10:15 CEST 2020


http://gambaswiki.org/bugtracker/edit?object=BUG.1882&from=L21haW4-

Claus DIETRICH reported a new bug.

Summary
-------

gb.scanner compatiblity

Type             : Request
Priority         : Medium
Gambas version   : 3.15
Product          : Development Environment


Description
-----------

Hi
I am currently writing a full scale scanner app based on the gb.scanner component which turned out to be very useful and powerful. Since my Canon scanners didn't work with the scanner classes I implemented the source code of the classes and tried to find the reason. Here are my results and brief suggestions:

1. My Canon Pixma MG 6250 provides following information about its resolutions:

  --resolution auto||75|150|300|600|1200|2400|4800dpi [75]

This is causing an error in the scanner class at following line in the GetOptions routine:

  hOption._MinValue = a[0]

I am assuming that the class is not prepared for accepting non-number resolutions and the options-parser seems to have an issue with a double "||". So I made following quick and dirty modification in order to be compatible with my Canon Pixma:

  If InStr(a[0], "|") Then a[0] = Split(a[0], "|")[1] 'Additional line
  hOption._MinValue = a[0]

There might be better ways to avoid the error but I didn't want to dive too deep into the complex and comprehensive options parser. 

2. My second scanner CanoScan Lide 20 reports "Source" parameters, which the class is not prepared for. Besides others it provides "Normal" instead of "flatbed" in the following way:

  --source Normal|Transparency|Negative [inactive] 

This is causing the sCount variable in the Function Scan() to remain empty which prevents the class from scanning.

  If InStr(LCase(Me["Source"].Value), "flatbed") Then
     sCount = "--batch-count=1"
     ...

So I modified this part in a way, that it always sets the batch-count=1 if an unsupported source option has been reported by the scanner:

  If InStr(LCase(Me["Source"].Value), "flatbed") Or Me["Source"].Value = "" Then
    sCount = "--batch-count=1"
    ...

3. I observed the following in the IDE console after the scanner search but noticed no further problem:
  Error my backend :      out of memory 

The original options reports of both scanners are attached hereto as PDF file - for reference only.

I understand, that it might be an endless effort to make the gb.scanner component compatible with all scanners supported by SANE but it might be worth to consider at least an adaptation to some other big brands while maintaining a minimum of common features.

As we would like to publish the app in the Gambas-Buch as a use case for the component, it would be great if we could apply the original gb.scanner component instead of its modified source code.

With best regards
Claus


System information
------------------

[System]
Gambas=3.15.1
OperatingSystem=Linux
Kernel=5.4.0-45-generic
Architecture=x86_64
Distribution=Linux Mint 19.3 Tricia
Desktop=MATE
Theme=qt5ctproxy
Language=de_DE.UTF-8
Memory=7837M

[Libraries]
Cairo=libcairo.so.2.11510.0
Curl=libcurl.so.4.5.0
DBus=libdbus-1.so.3.19.4
GStreamer=libgstreamer-1.0.so.0.1405.0
GTK+2=libgtk-x11-2.0.so.0.2400.32
GTK+3=libgtk-3.so.0.2200.30
OpenGL=libGL.so.1.0.0
Poppler=libpoppler.so.73.0.0
Poppler=libpoppler.so.85.0.0
Poppler=libpoppler.so.90.0.0
QT4=libQtCore.so.4.8.7
QT5=libQt5Core.so.5.9.5
SDL=libSDL-1.2.so.0.11.4
SQLite=libsqlite3.so.0.8.6

[Environment]
CLUTTER_BACKEND=x11
COMPIZ_CONFIG_PROFILE=mate
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
DEFAULTS_PATH=/usr/share/gconf/mate.default.path
DESKTOP_SESSION=mate
DISPLAY=:0
GB_GUI=gb.qt5
GDMSESSION=mate
GDM_LANG=de_DE
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
GTK_MODULES=gail:atk-bridge
GTK_OVERLAY_SCROLLING=0
HOME=<home>
LANG=de_DE.UTF-8
LANGUAGE=de_DE.UTF-8
LC_ADDRESS=de_DE.UTF-8
LC_IDENTIFICATION=de_DE.UTF-8
LC_MEASUREMENT=de_DE.UTF-8
LC_MONETARY=de_DE.UTF-8
LC_NAME=de_DE.UTF-8
LC_NUMERIC=de_DE.UTF-8
LC_PAPER=de_DE.UTF-8
LC_TELEPHONE=de_DE.UTF-8
LC_TIME=de_DE.UTF-8
LOGNAME=<user>
MANDATORY_PATH=/usr/share/gconf/mate.mandatory.path
MATE_DESKTOP_SESSION_ID=this-is-deprecated
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
PWD=<home>
QT_ACCESSIBILITY=1
QT_AUTO_SCREEN_SCALE_FACTOR=0
QT_LOGGING_RULES=*.debug=false
QT_QPA_PLATFORMTHEME=qt5ct
QT_SCALE_FACTOR=1
SESSION_MANAGER=local/<hostname>:@/tmp/.ICE-unix/1062,unix/<hostname>:/tmp/.ICE-unix/1062
SHELL=/bin/bash
SHLVL=0
SSH_AGENT_PID=1547
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
TZ=:/etc/localtime
USER=<user>
XAUTHORITY=<home>/.Xauthority
XDG_CONFIG_DIRS=/etc/xdg/xdg-mate:/etc/xdg
XDG_CURRENT_DESKTOP=MATE
XDG_DATA_DIRS=/usr/share/mate:<home>/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/<user>
XDG_RUNTIME_DIR=/run/user/1000
XDG_SEAT=seat0
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_DESKTOP=mate
XDG_SESSION_ID=c1
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
XDG_SESSION_TYPE=x11
XDG_VTNR=7




More information about the Bugtracker mailing list