You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在scanbd中为Fujitsu ix500扫描仪添加双击扫描按钮事件

解决Fujitsu ix500在scanbd中双击扫描按钮事件的问题

我之前帮朋友调试过Fujitsu ix500和scanbd的组合,正好碰到过类似的双击事件识别问题,给你几个实际可行的解决方向:

1. 先确认scanbd是否能捕获到ix500的按键事件

scanbd默认规则里不一定包含ix500的双击事件命名,首先得搞清楚设备实际触发的事件名称:

  • 停止scanbd服务:sudo systemctl stop scanbd
  • 启动调试模式抓事件:scanbd -d
  • 这时双击扫描仪的扫描按钮,看终端输出的日志,里面会显示触发的事件名称(比如可能是button_1_double、btn_scan_double这类非直观的命名)

2. 手动添加自定义规则文件

如果找到了对应的双击事件名称,就可以给ix500单独写规则:

  • 进入scanbd的规则目录(通常是/etc/scanbd/conf.d/,源码编译的可能在/usr/local/etc/scanbd/conf.d/)
  • 新建规则文件,比如fujitsu_ix500.conf,内容示例:
# 替换成你从调试日志里拿到的设备ID
device "fujitsu:fi-IX500:XYZ123" {
    # 替换成你捕获到的双击事件名称
    event "button_double" {
        # 替换成你的扫描脚本路径
        action "/home/yourname/scripts/double_scan.sh"
        # 替换成你的用户名,确保权限正确
        user "yourname"
    }
}
  • 保存后重启scanbd服务:sudo systemctl restart scanbd

3. 检查并修复udev权限问题

有时候scanbd抓不到事件是因为udev权限不足:

  • 用lsusb找到Fujitsu ix500的vendor和product ID(比如04c5:132b)
  • 新建udev规则文件/etc/udev/rules.d/99-scanbd.rules,内容:
SUBSYSTEM=="usb", ATTRS{idVendor}=="04c5", ATTRS{idProduct}=="132b", GROUP="scanner", MODE="0660"
  • 将你的用户加入scanner组:sudo usermod -aG scanner yourname
  • 重启udev和scanbd:sudo systemctl restart udev && sudo systemctl restart scanbd

4. 用脚本模拟双击事件(如果scanbd不原生支持)

如果调试后发现ix500根本没有触发双击事件,而是连续两次单击,那可以在扫描脚本里做时间判断来模拟:
比如写一个double_scan.sh脚本:

#!/bin/bash
# 记录上次单击时间的临时文件
LAST_CLICK="/tmp/scan_last_click"
CURRENT_TIME=$(date +%s)

if [ -f "$LAST_CLICK" ]; then
    LAST_TIME=$(cat "$LAST_CLICK")
    TIME_GAP=$((CURRENT_TIME - LAST_TIME))
    # 判断两次单击间隔是否小于2秒(可根据需求调整)
    if [ $TIME_GAP -lt 2 ]; then
        echo "检测到双击,执行批量扫描..."
        # 这里放你的双击扫描命令,比如用scanimage或scanadf
        scanadf --device-name="fujitsu:fi-IX500" --output-file="/home/yourname/scans/page_%02d.pnm"
        rm "$LAST_CLICK"
        exit 0
    fi
fi

# 记录本次单击时间
echo "$CURRENT_TIME" > "$LAST_CLICK"
# 2秒后如果没有第二次单击,就执行单次扫描(可选)
sleep 2
if [ -f "$LAST_CLICK" ] && [ $(cat "$LAST_CLICK") -eq "$CURRENT_TIME" ]; then
    rm "$LAST_CLICK"
    echo "检测到单击,执行单次扫描..."
    scanimage --device-name="fujitsu:fi-IX500" > "/home/yourname/scans/single_page.pnm"
fi
  • 给脚本加执行权限:chmod +x double_scan.sh
  • 然后在scanbd的规则里把action指向这个脚本,触发事件设为单击事件即可

内容的提问来源于stack exchange,提问作者Jian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:56:34