[sane-devel] [Scanbd] Set up for Canon PIXMA multifunction scanner - no button response
Wilhelm
wilhelm.meier at fh-kl.de
Thu Oct 13 09:16:57 UTC 2016
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.meier at 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.meier at 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
>
--
Wilhelm
More information about the sane-devel
mailing list