OVH Cloud OVH Cloud

douchette code barre et rs232

19 réponses
Avatar
Christophe PEREZ
Bonjour,

Je cherche depuis quelques jours, sans succès, à faire fonctionner des
douchettes (metrologic MS951L) assez vieilles par le biais du port série.

J'ai bien le device /dev/ttyS0 qui devrait correspondre au seul port
série de ma machine, mais un cat /dev/ttyS0 ne renvoie strictement rien.

J'ai essayé plusieurs options de paramétrage à l'aide de setserial sans
plus de succès.

Dans un second temps, je voudrais que la douchette me renvoie des codes
comme si c'était une saisie clavier (ce qui semble naturel pour des
douchettes qui se connectent sur le port clavier), mais déjà, dans un
premier temps, établir la moindre communication avec ce périphérique me
semble un impératif.

Si quelqu'un en sait plus sur la question, je l'en remercie d'avance.

--
Christophe PEREZ
Écrivez moi sans _faute !

9 réponses

1 2
Avatar
Christophe PEREZ
Le Sun, 08 Apr 2007 15:16:20 -0400, Christophe PEREZ a écrit:

J'en déduis qu'il me faut 1) initialiser cette communication sur le port
série, d'une façon ou d'une autre. Puis, 2) rajouter ce "input device" à
xorg.conf de façon à ce que ces codes soient pris en compte.

Si vous avez une idée pour le 1)...


Le 1) est à priori réglé avec stty :
/bin/stty -F /dev/ttyS0 cs7 -cstopb -parenb -parodd hupcl cread clocal
-crtscts

Par contre, pour le 2), un :
Section "InputDevice"
Identifier "barcodereader"
Driver "kbd"
Option "Protocol" "auto"
Option "Device" "/dev/ttyS0"
EndSection

reste pour l'instant sans effet.

--
Christophe PEREZ
Écrivez moi sans _faute !

Avatar
Zeyes
Bon, j'ai finalement un peu avancé, grâce à vos suggestions diverses.
Manifestement, ma méconnaissance du fonctionnement d'un port série sous
Linux est la cause de mon errance.
En effet, je commence à comprendre qu'il faille "ouvrir" (initialiser?)
la communication avec le port.

J'en suis arrivé à cette conclusion puisqu'en installant cutecom, et en
lui passant les paramètres de ma douchette (9600bauds, 7 bits, parité
space, 1 bit stop) et en "ouvrant" le "device" ("Open Device" dans le
soft), je peux enfin recevoir les codes. Et là, même avec un simple cat
/dev/ttyS0.
Par contre, si je fais close device, plus rien dans le "cat".
Mais si je ferme cutecom, sans fermer le device, ça roule bien encore.

J'en déduis qu'il me faut 1) initialiser cette communication sur le port
série, d'une façon ou d'une autre. Puis, 2) rajouter ce "input device" à
xorg.conf de façon à ce que ces codes soient pris en compte.

Si vous avez une idée pour le 1)...
Même si je poursuis mes recherches.

Ah curieux... je pensais que le cat ouvrirait la comm tout seul,

effectivement, comme toi..

Avatar
Zeyes
Le Sun, 08 Apr 2007 15:16:20 -0400, Christophe PEREZ a écrit:

Le 1) est à priori réglé avec stty :
/bin/stty -F /dev/ttyS0 cs7 -cstopb -parenb -parodd hupcl cread clocal
-crtscts

T'as trouve ca comment?

man stty?

Avatar
Christophe PEREZ
Le Sun, 08 Apr 2007 22:06:45 +0200, Zeyes a écrit:

/bin/stty -F /dev/ttyS0 cs7 -cstopb -parenb -parodd hupcl cread clocal
-crtscts

T'as trouve ca comment?



Ben dans mes recherches sur ce qui était lié à l'utilisation du
/dev/ttyS0, je voyais souvent revenir cette commande pour le paramétrer,
alors j'ai essayé.

man stty?


Oui, à peine, avec stty -a -F /dev/ttyS0 on a la config complète du
port. Restait ensuite à changer ce qu'il y a de particulier dans mon cas,
et grâce au manuel, je connaissais les paramètres de communication par
défaut de la douchette (9600 etc...).

--
Christophe PEREZ
Écrivez moi sans _faute !


Avatar
Christophe PEREZ
Le Sun, 08 Apr 2007 15:51:17 -0400, Christophe PEREZ a écrit:

Par contre, pour le 2), un :
Section "InputDevice"
Identifier "barcodereader"
Driver "kbd"
Option "Protocol" "auto"
Option "Device" "/dev/ttyS0"
EndSection

reste pour l'instant sans effet.


Normal, j'avais oublié de le rajouter dans le layout, mais là, je bute
sur un problème de config X.
Si je mets plusieurs clavier avec CoreKeyboard :
InputDevice "Keyboard1" "CoreKeyboard"
InputDevice "barcodereader" "CoreKeyboard"
il me jette le second parce qu'il n'accepte qu'un seul CoreKeyboard.

Sur le net, je suis tombé sur une doc où il parle d'utiliser
SendCoreEvents au lieu de CoreKeyboard, et là, la douchette fonctionne un
peu, mais par contre, c'est mon clavier qui ne fonctionne plus.
Peut-être à cause de ma config du InputDevice pour la douchette (où
j'ai enlevé le Protocol qui n'a pas de sens pour un clavier).

Cependant, un (seul) fil trouvé en rapport avec mon cas ne me rassure
guère :
http://www.nabble.com/How-to-configure-an-InputDevice-attached-to-the-serial-port--(Barcode-Reader)-t2837256.html

Je sens que je vais aller poster un résumé sur fcax11 car là, je sens
que je deviens HS ;-)


--
Christophe PEREZ
Écrivez moi sans _faute !

Avatar
sansflotusspam
Christophe PEREZ a commis :


si ce sont des CodaBar, il y a des drivers spécifiques UNIX
utilisables sous Gnu/Linux et *BSD, moyennant, encore, la retouche
manuelle de la carte des codes


Là, j'avoue ne pas avoir saisi (sans jeu de mot).

bon amusement !


Merci ;-)



CodaBar est un fabricant de matériels à code barres qui a ses propres
spécifications, non standards


Avatar
Christophe PEREZ
Le Mon, 09 Apr 2007 10:38:06 +0200, sansflotusspam a écrit:

CodaBar est un fabricant de matériels à code barres qui a ses propres
spécifications, non standards


Ah bon, ben non, comme indiqué initialement, c'est une metrologic.

--
Christophe PEREZ
Écrivez moi sans _faute !

Avatar
sansflotusspam
Christophe PEREZ a commis :

Le Mon, 09 Apr 2007 10:38:06 +0200, sansflotusspam a écrit:

CodaBar est un fabricant de matériels à code barres qui a ses propres
spécifications, non standards


Ah bon, ben non, comme indiqué initialement, c'est une metrologic.



une metrologic : tu es sauvé, c'est du pur série-TTY en parallèle
clavier. Il te suffit d'un adaptateur en Y sur la prise clavier
(attention : clavier DIN standard, pas PS/2, dans ce cas il faut un
convertisseur à trouver à la casse du coin pour 1 ¤).
il conviendrait cependant de créer un "clavier" virtuel pour la
douchette, because problèmes de page de code, les systèmes de
code-barres ne connaissant généralement que le pur ASCII 128 bits en
International (8859-x, UTF8, etc, inconnus au bataillon).


Avatar
Christophe PEREZ
Le Tue, 10 Apr 2007 14:28:31 +0200, sansflotusspam a écrit:

une metrologic : tu es sauvé, c'est du pur série-TTY en parallèle
clavier. Il te suffit d'un adaptateur en Y sur la prise clavier


Ah bon ?
Pourtant, j'ai bien une prise série au bout...
C'est un vieux modèle comme précisé au départ.
Tu es sûr que ça se connecte sur cet adaptateur ?
Et tu aurais un lien pour me montrer de quel adaptateur tu parles ?

(attention : clavier DIN standard, pas PS/2, dans ce cas il faut un
convertisseur à trouver à la casse du coin pour 1 ¤).


Oui, ça j'ai pour mes tests.

il conviendrait cependant de créer un "clavier" virtuel pour la
douchette, because problèmes de page de code, les systèmes de
code-barres ne connaissant généralement que le pur ASCII 128 bits en
International (8859-x, UTF8, etc, inconnus au bataillon).


Ah oui, je veux bien, mais ne vais-je pas alors me retrouver avec le même
problème que j'ai évoqué sur fcax11 (de conf de xorg) ?
Parce que finalement, que m'apportera dans ce cas l'adaptateur en Y si je
dois configurer autre chose (puisqu'à l'heure actuelle, je reçois mes
codes humainement lisibles sur /dev/ttyS0, et que je peux configurer ce
périphérique comme clavier dans xorg) ?

Merci pour ton aide.

--
Christophe PEREZ
Écrivez moi sans _faute !

1 2