web-dev-qa-db-fra.com

Implémentation du scanner de code à barres sur Java

Bon messieurs, j'ai une question. Le projet d'école Java sur lequel je travaille actuellement nécessite que je dispose d'un scanner de codes à barres USB comme entrée externe pour pouvoir être connecté à mon ordinateur portable. Je n'ai pas acheté le scanner USB, car il coûte assez cher pour un étudiant. Je dois donc rassembler des preuves que ce scanner fonctionnerait avec mon programme. 

Le scanneur pourrait-il lire un code à barres (probablement imprimé en ligne) et le stocker dans une variable? Si tel est le cas, est-il vrai que l'événement d'action pour la presse du scanner serait lu exactement comme un appui sur une touche du clavier? Si oui, à quoi ressemblerait la ligne de code? 

En outre, si vous pouviez publier vos expériences avec les scanners de codes à barres, ou donner des conseils, tels que les scanners à acheter, cela aiderait beaucoup. À votre santé!

24
user976123

Le scanner bardcode que j'ai utilisé agissait comme un périphérique clavier (il se présentait comme un périphérique USB à clavier HID dans le système d'exploitation). Lorsque le code à barres a été numérisé, le code a été envoyé comme s'il avait été saisi. Aucune API spéciale n'était nécessaire pour interagir avec elle.

9
prunge

Je sais que c'est un vieux fil, mais la recherche peut vous mener là.

Cela peut être traité comme un ajout à la réponse de Geronimo:

Pour le système d'exploitation Linux, il n'est pas nécessaire d'installer de pilotes pour les scanners de codes à barres en mode d'émulation série, car les ports série USB sont pris en charge en natif. Nous utilisons plusieurs types de scanners Honeywell et tous fonctionnent immédiatement, ces scanners en émulation série apparaissent dans nos systèmes sous les noms/dev/ttyACM0,/dev/ttyACM1, etc.

Récemment, nous sommes passés de javax.comm à jssc en tant que bibliothèque Java pour l’interface des ports série. Si je me souviens bien, sous Windows 7 64 bits, la bibliothèque javax.comm ne peut ni lire ni écrire de/vers le port série et jssc a une API très similaire.

5
Pavel Kucera

Je réalise que c’était une vieille question, mais j’ai pensé ajouter une solution supplémentaire pour simuler la saisie du scanner de codes à barres. Cette solution ne fonctionne que pour simuler une entrée de scanner sous forme de données de clavier.

Comme le scanner utilise souvent une simple saisie au clavier, nous pouvons simuler cela à l'aide d'un script AutoHotkey . Voici un exemple de script:

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

; Barcode 1
; Hotkey = ctrl + alt + 1
^!1::
    SendInput [BC200015]
Return

; Barcode 2
; Hotkey = ctrl + alt + 2
^!2::
    SendInput [BC300013]
Return

Il suffit de remplacer [BC300013] et [BC200015] par le type d’entrée que vous attendez du scanner. 

0
philosowaffle