Hi Matt, Sorry for the late response.
The command line must run without 'SANE_CONFIG_DIR=/usr/local/etc/scanbd/sane.d'. Maybe you don't have the user rights to access your scanner via USB. Please try following: (1) push any button (2) sudo su -c "SANE_DEBUG_PIXMA=11 scanimage -A" Please send me the complete log response. Cheers, Rolf Am 13.10.2016 um 23:29 schrieb matt clark: > Hi Rolf, the "buttons" section in the code shows this: > > Buttons: > --button-update > Update button state > --button-1 <int> [0] [read-only] > Button 1 > --button-2 <int> [0] [read-only] > Button 2 > --original <int> [0] [read-only] > Type of original to scan > --target <int> [0] [read-only] > Target operation type > --scan-resolution <int> [0] [read-only] > Scan resolution > > None of the binary code you mentioned. Does this mean there is no > sane support for the buttons? Note that I had to use the command > SANE_CONFIG_DIR=/usr/local/etc/scanbd/sane.d SANE_DEBUG_PIXMA=11 > scanimage -A to make it work. I pushing both buttons, and sending it > via USB (yes it's connected) and the "localhost saned" option which is > I assume sending via network. > > On Fri, Oct 14, 2016 at 7:16 AM, Rolf Bensch <r...@bensch-online.de> wrote: >> Hi Matt, >> >> Have you tested that your scanner resp. the backend sends data @ a push >> button event? >> >> Please test on the console: >> (1) push any button >> (2) $ SANE_DEBUG_PIXMA=11 scanimage -A >> (3) check the response; I'm especially interested in following lines: >> >> Buttons: >> --button-update >> Update button state >> [pixma] INTR T=1.343 len=32 >> [pixma] 00000000:00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >> [pixma] 00000010:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >> [pixma] >> --button-1 <int> [1] [read-only] >> Button 1 >> --button-2 <int> [0] [read-only] >> Button 2 >> --original <int> [0] [read-only] >> Type of original to scan >> --target <int> [2] [read-only] >> Target operation type >> --scan-resolution <int> [0] [read-only] >> Scan resolution >> >> Please repeat (1) ... (3) for all scan buttons. >> >> Maybe you need to test your scanner USB connected to the pc. I haven't >> tested push buttons wireless yet. >> >> If you don't get lines starting with [pixma], your scanner has no button >> support from SANE. >> >> If you get lines starting with [pixma] with more data as shown above (I >> have a different scanner) and without data output below at the >> parameters --button-1 ... --scan-resolution, what I suppose, then please >> send me your "Buttons:" logs and I'll fix the backend code. >> >> Hope this helps. >> >> Cheers, >> Rolf >> >> Am 13.10.2016 um 13:23 schrieb Wilhelm: >>> Oh, mixed the values ... >>> >>> action btest { >>> filter = "^button.*" >>> numerical-trigger { >>> from-value = 0 >>> to-value = 1 >>> } >>> desc = "Scan to file" >>> script = "test.script" >>> } >>> >>> >>> Am 13.10.2016 um 11:16 schrieb Wilhelm: >>>> Matt, you need something like this in your config: >>>> >>>> action btest { >>>> filter = "^button.*" >>>> numerical-trigger { >>>> from-value = 1 >>>> to-value = 0 >>>> } >>>> desc = "Scan to file" >>>> script = "test.script" >>>> } >>>> >>>> -- >>>> Wilhelm >>>> >>>> Am 13.10.2016 um 09:09 schrieb matt clark: >>>>> Thanks Wilhelm. I had changed that while trying to debug the problem, >>>>> not sure why this would be a problem. Have reverted to the >>>>> scanbd.conf from source, with modifications to sane.d directory and >>>>> comment out the unnecessary manufacturer scanner.d profiles. revised >>>>> config is attached - apologies for the length of code. >>>>> >>>>> --- >>>>> >>>>> /* >>>>> * $Id: scanbd.conf 213 2015-10-05 06:52:50Z wimalopaan $ >>>>> * >>>>> * scanbd - KMUX scanner button daemon >>>>> * >>>>> * Copyright (C) 2008 - 2015 Wilhelm Meier (wilhelm.me...@fh-kl.de) >>>>> * >>>>> * This program is free software; you can redistribute it and/or modify >>>>> * it under the terms of the GNU General Public License as published by >>>>> * the Free Software Foundation; either version 2 of the License, or >>>>> * (at your option) any later version. >>>>> * >>>>> * This program is distributed in the hope that it will be useful, >>>>> * but WITHOUT ANY WARRANTY; without even the implied warranty of >>>>> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >>>>> * GNU General Public License for more details. >>>>> * >>>>> * You should have received a copy of the GNU General Public License >>>>> * along with this program; if not, write to the Free Software >>>>> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA >>>>> 02110-1301, USA. >>>>> */ >>>>> >>>>> >>>>> # global settings >>>>> global { >>>>> # turn on debugging >>>>> >>>>> # log to console >>>>> debug = true >>>>> >>>>> # debug logging >>>>> # 1=error, 2=warn, 3=info, 4-7=debug >>>>> debug-level = 7 >>>>> >>>>> # drop priviliges to this user >>>>> #============================= >>>>> # Linux (most distributions use the saned user): >>>>> # user = saned >>>>> # ArchLinux (ArchLinux doesn't have saned user) >>>>> # user = daemon >>>>> # *BSD >>>>> # user = root >>>>> user = saned >>>>> >>>>> # Group to be used >>>>> #================= >>>>> # Linux (most distributions use the lp group to access scanners) >>>>> # group = lp >>>>> # ArchLinux (ArchLinux uses the scanner group) >>>>> # group = scanner >>>>> # >>>>> # *BSD (no group lp here, use daemon instead) >>>>> # group = daemon # root >>>>> # >>>>> group = lp >>>>> >>>>> # the saned executable for manager-mode >>>>> saned = "/usr/sbin/saned" >>>>> saned_opt = {} # string-list >>>>> saned_env = { "SANE_CONFIG_DIR=/etc/scanbd/sane.d" } # list of >>>>> environment vars for saned >>>>> >>>>> # Scriptdir specifies where scanbd normally looks for scripts. >>>>> # The scriptdir option can be defined as: >>>>> # - a path relative to the configuations (<path>/etc/scanbd) >>>>> directory >>>>> # - an abosolute path >>>>> # Examples: >>>>> # scriptdir = scripts >>>>> # sets scriptdir to <path>/etc/scanbd/scripts. >>>>> # scriptdir = /some/path >>>>> # sets scriptdir to the specified absolute path >>>>> # Default scriptdir is <path>/etc/scanbd, this is normally >>>>> appropriate >>>>> scriptdir = /etc/scanbd/scripts >>>>> >>>>> # Scripts to execute upon device insertion/removal. >>>>> # It can be necessary to load firmware into the device when it is >>>>> first >>>>> # inserted. For example, scanbuttond backend does not know how to >>>>> load >>>>> # scanner firmware, and it can be rectified by making a custom >>>>> script. >>>>> # A simple command like "scanimage -L" in an example insert.script >>>>> # invokes saned and it loads the appropriate firmware if >>>>> necessary. >>>>> # These scripts receive environmental variables named in the >>>>> "environment" subsection: >>>>> # SCANBD_DEVICE - device name (fixed string "dbus device" for >>>>> dbus notification) >>>>> # SCANBD_ACTION - "insert" or "remove", so one script can be used. >>>>> # device_insert_script = "insert.script" >>>>> # device_remove_script = >>>>> >>>>> # scanbuttond_backends_dir sets the path where scanbd looks >>>>> for the scanbuttond backends >>>>> # It can be defined as relative path, starting from the scanbd config >>>>> directory or >>>>> # as an absolute path >>>>> # Default is <libdir>/scanbd/scanbutond/backends >>>>> # Example >>>>> # scanbuttond_backends_dir = "/usr/local/lib/scanbd/scanbuttond/backends" >>>>> >>>>> # poll timeout in [ms] >>>>> # (for polling the devices) >>>>> timeout = 500 >>>>> >>>>> pidfile = "/var/run/scanbd.pid" >>>>> >>>>> # env-vars for the scripts >>>>> environment { >>>>> # pass the device label as below in this env-var >>>>> device = "SCANBD_DEVICE" >>>>> # pass the action label as below in this env-var >>>>> action = "SCANBD_ACTION" >>>>> } >>>>> >>>>> # function definitions >>>>> # values of the options are simply passed via env-vars >>>>> >>>>> function function_knob { >>>>> filter = "^message.*" >>>>> desc = "The value of the function knob / wheel / >>>>> selector" >>>>> env = "SCANBD_FUNCTION" >>>>> } >>>>> function function_mode { >>>>> filter = "^mode.*" >>>>> desc = "Color mode" >>>>> env = "SCANBD_FUNCTION_MODE" >>>>> } >>>>> >>>>> multiple_actions = true # allow multiple actions per option >>>>> (up to the total amount of options) >>>>> >>>>> # action definitions >>>>> # if the filter matches and the value changes >>>>> # from from-value to to-value, >>>>> # <script> is executed >>>>> # <script> is the full pathname (do not include any parameters) >>>>> # if parameters are needed, write a script >>>>> >>>>> # since we can have only at most one action for each option, >>>>> the action-script >>>>> # can use the function definition (see above) to distinguish >>>>> different tasks >>>>> # (e.g. use the env-var SCANBD_FUNCTION defined above) >>>>> >>>>> action scan { >>>>> filter = "^scan.*" >>>>> numerical-trigger { >>>>> from-value = 1 >>>>> to-value = 0 >>>>> } >>>>> desc = "Scan to file" >>>>> # script must be an relative path starting from >>>>> scriptdir (see above), >>>>> # or an absolute pathname. >>>>> # It must contain the path to the action script >>>>> without arguments >>>>> # Absolute path example: script = "/some/path/foo.script >>>>> script = "test.script" >>>>> } >>>>> action email { >>>>> filter = "^email$" >>>>> string-trigger { >>>>> from-value = "" >>>>> to-value = "^email.*" >>>>> } >>>>> desc = "Scan to email" >>>>> # script must be an relative path starting from >>>>> scriptdir (see above), >>>>> # or an absolute pathname. >>>>> # It must contain the path to the action script >>>>> without arguments >>>>> # Absolute path example: script = "/some/path/foo.script >>>>> script = "test.script" >>>>> } >>>>> action copy { >>>>> filter = "^copy$" >>>>> string-trigger { >>>>> from-value = "" >>>>> to-value = "^copy.*" >>>>> } >>>>> desc = "Copy to printer" >>>>> # script must be an relative path starting from >>>>> scriptdir (see above), >>>>> # or an absolute pathname. >>>>> # It must contain the path to the action script >>>>> without arguments >>>>> # Absolute path example: script = "/some/path/foo.script >>>>> script = "test.script" >>>>> } >>>>> action preview { >>>>> filter = "^preview$" >>>>> numerical-trigger { >>>>> from-value = 1 >>>>> to-value = 0 >>>>> } >>>>> desc = "Preview" >>>>> # script must be an relative path starting from >>>>> scriptdir (see above), >>>>> # or an absolute pathname. >>>>> # It must contain the path to the action script >>>>> without arguments >>>>> # Absolute path example: script = "/some/path/foo.script >>>>> script = "test.script" >>>>> } >>>>> action globaltest { >>>>> filter = "^message.*" >>>>> desc = "Test (print all env vars)" >>>>> # script must be an relative path starting from >>>>> scriptdir (see above), >>>>> # or an absolute pathname. >>>>> # It must contain the path to the action script >>>>> without arguments >>>>> # Absolute path example: script = "/some/path/foo.script >>>>> script = "test.script" >>>>> } >>>>> } >>>>> >>>>> # include >>>>> # include another file at this point. This may only occur outside >>>>> general and devices blocks. >>>>> # an include statement may be relative to the direcory where >>>>> scanbd.conf is located or absolute >>>>> # include("scanner.d/myscanner.conf") >>>>> # include("/my/long/path/myscanner.conf") >>>>> >>>>> # devices >>>>> # each device can have actions and functions, you can disable not >>>>> relevant devices >>>>> #include(scanner.d/avision.conf) >>>>> #include(scanner.d/fujitsu.conf) >>>>> #include(scanner.d/hp.conf) >>>>> include(scanner.d/pixma.conf) >>>>> #include(scanner.d/snapscan.conf) >>>>> #include(scanner.d/canon.conf) >>>>> >>>>> >>>>> On Thu, Oct 13, 2016 at 4:10 PM, Wilhelm <wilhelm.me...@fh-kl.de> wrote: >>>>>> Looking at your log file it seems that action "globaltest" isn't >>>>>> installed. There may be 2 reasons for this: >>>>>> >>>>>> 1) the regex doenst't match >>>>>> >>>>>> 2) there is no trigger definition for the action >>>>>> >>>>>> HtH >>>> >>> >> >> > -- sane-devel mailing list: sane-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/sane-devel Unsubscribe: Send mail with subject "unsubscribe your_password" to sane-devel-requ...@lists.alioth.debian.org