« Trucs:Utiliser les boutons de son scanneur » : différence entre les versions

De Lea Linux
Aller à la navigation Aller à la recherche
mAucun résumé des modifications
Ligne 75 : Ligne 75 :
</code>
</code>


Essayez donc de suivre en temps réel les évènements, comme cela se passe dans le fichier /var/log/daemon  (chez moi, pas très clair dans la documentation en anglais) :
Essayez donc de suivre en temps réel les évènements, comme cela se passe dans le fichier <code>/var/log/daemon.log</code> (chez moi, pas très clair dans la documentation en anglais) :
   
   
<code>monuser@blackix:/usr/local/scanbuttond-0.2.3$ sudo -f /var/log/daemon.log
<code>monuser@blackix:/usr/local/scanbuttond-0.2.3$ tail -f /var/log/daemon.log
</code>
</code>
Et en temps réel les nouvelles pressions effectuées s'affichent ! C(h)ouette !
Et en temps réel les nouvelles pressions effectuées s'affichent ! Chouette !
On arrête bien sûr cela par CTRL+C
On arrête bien sûr cela par CTRL+C



Version du 28 mars 2006 à 09:50

Attention ! Cet article est en cours de rédaction. Il n'a donc encore été ni relu, ni corrigé, ni validé par un modérateur.
Léa vous encourage à éditer les articles pour les améliorer ou les corriger.

Introduction

Nos numériseurs sont de mieux en mieux reconnus par sane, mais je me suis trouvé un peu perplexe devant mon superbe epson 3490 : Maman ! Et les boutons qu'il y a dessus ?

Un début de solution nous est proposé par le projet scanbuttond actuellement proposé en version 0.2.3

Cet article est écrit sur la base d'un numériseur Epson Prefection Photo 3490 sur une machine tournant sur Debian Sarge.

C'est quoi scanbuttond ?

C'est en fait un petit démon que vous lancerez quand vous le désirez et qui va régulièrement poller le scanneur afin de voir si un des boutons est pressé, et donc éventuellement relaché. Dans le cas d'une action, il va lancer une numérisation et éventuellement d'autres actions sur la base d'un script que vous allez peaufiner vous-même.

Installation

Récupération du logiciel

<cadre type=note>Celui-ci se présente sous la forme d'un tarball source, il faut gcc d'installé.</cadre>

- récupérez le fichier scanbuttond-0.2.3.tar.gz sur http://sourceforge.net/project/showfiles.php?group_id=121589

Personnellement, je l'ai mis dans /usr/local mais vous faites comme vous voulez.

- Décompressez tout cela : monsuser@blackix:/usr/local$ gunzip scanbuttond-0.2.3.tar.gz monuser@blackix:/usr/local$ tar xvf scanbuttond-0.2.3.tar monuser@blackix:/usr/local$ cd scanbuttond-0.2.3

Compilation proprement dite, installation

Ce n'est que du grand classique en fait ;) monsuser@blackix:/usr/local/scanbuttond-0.2.3$ ./configure monuser@blackix:/usr/local/scanbuttond-0.2.3$ make

Tout devrait bien se passer étape par étape. Il y a, il est vrai beaucoup de lignes qui défilent, mais du moment que l'on ne finit pas sur une ligne d'erreur, ça roule.

On continue dans le classique :

monuser@blackix:/usr/local/scanbuttond-0.2.3$ sudo make install monuser@blackix:/usr/local/scanbuttond-0.2.3$ sudo ldconfig

Cette dernière ligne est à ne pas oublier, sinon attendez-vous plus tard à un message du genre : monuser@blackix:/usr/local/scanbuttond-0.2.3$ sudo scanbuttond Unable to load backend library "/usr/local/lib/libscanbtnd-backend_meta.so"!


Un petit test pour voir

Premièrement, nous allons vérifier que le démon réagit bien aux évènements :

monuser@blackix:/usr/local/scanbuttond-0.2.3$scanbuttond

Rien ne se passe, c'est bon signe... Si vous avez un message d'erreur, quelque chose s'est mal passé ;(

Appuyons donc sur quelques uns des boutons et recherchons si quelque chose est arrivé :

monuser@blackix:/usr/local/scanbuttond-0.2.3$ sudo grep -R scanbuttond /var/log

et là : normalement le plaisir du style :

/var/log/daemon.log:Mar 24 16:19:32 localhost scanbuttond: scanbuttond started /var/log/daemon.log:Mar 24 16:19:38 localhost scanbuttond: button 4 has been pressed. /var/log/daemon.log:Mar 24 16:19:39 localhost scanbuttond: button 4 has been released. /var/log/daemon.log:Mar 24 16:19:41 localhost scanbuttond: button 3 has been pressed. /var/log/daemon.log:Mar 24 16:19:41 localhost scanbuttond: button 2 has been pressed. /var/log/daemon.log:Mar 24 16:19:42 localhost scanbuttond: button 2 has been released. /var/log/daemon.log:Mar 24 16:19:42 localhost scanbuttond: button 1 has been pressed. /var/log/daemon.log:Mar 24 16:19:43 localhost scanbuttond: button 1 has been released.

Essayez donc de suivre en temps réel les évènements, comme cela se passe dans le fichier /var/log/daemon.log (chez moi, pas très clair dans la documentation en anglais) :

monuser@blackix:/usr/local/scanbuttond-0.2.3$ tail -f /var/log/daemon.log Et en temps réel les nouvelles pressions effectuées s'affichent ! Chouette ! On arrête bien sûr cela par CTRL+C

Configuration suivant ses besoins

Tout se passe dans le fichier buttonpressed.sh Chez moi, je ne l'ai pas bougé et laissé dans /usr/local/etc/scanbuttond On trouve dans la documentation beaucoup de possibilités de gérer le fichier .lock, mais dans mon cas, n'ayant qu'un scanner et le le partageant pas, je ne me suis pas embêté avec. J'ai configuré mon scanner pour que le bouton 1 fasse un scan en couleurs et ouvre Gimp avec, le bouton 2 pour la même chose en noir et blanc, les boutons 3 et 4 pour un simple scan dans un fichier (couleur et noir et blanc), histoire de pouvoir faire des scans multi-pages sans quitter le scanner situé à 2 mètres de la tour :

Donc mon fichier buttonpressed.sh :

  1. !/bin/sh
  1. This script is started by scanbuttond whenever a scanner button has been pressed.
  2. Scanbuttond passes the following parameters to us:
  3. $1 ... the button number
  4. $2 ... the scanner's SANE device name, which comes in handy if there are two or
  5. more scanners. In this case we can pass the device name to SANE programs
  6. like scanimage.

BUTTON="$1" DEVICE="$2" PICDIR="/tmp/" TMPFILE="/tmp/scan-`date +%Y%m%d%H%M%S`.png" LOCKFILE="/tmp/${DEVICE}.lock"

case $1 in

       1)
               scanimage --mode Color >$TMPFILE && \
               gimp $TMPFILE &
               ;;
       2)
                scanimage --mode Gray >$TMPFILE &&\
                gimp $TMPFILE &
               ;;
       3)
               /usr/local/bin/scanimage --mode Color >$TMPFILE
               ;;
       4)
               /usr/local/bin/scanimage --mode Gray >$TMPFILE
               ;;

esac

buttonpressed.sh (END)

Et les scans, je les récupère dans le répertoire /tmp avec des noms horodatés commençant par scan. De temps en temps, faire le ménage à la main...


Quelques liens de référence (dans la langue de Shakespeare)

Le site sur sourceforge bien sûr : http://scanbuttond.sourceforge.net/

Copyright

© 2006 Glorfindel (Frédéric POUPON) et Lea-linux.org

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike icon
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique 4.0 :
https://creativecommons.org/licenses/by-sa/4.0/