|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
[Java] Pistola laser USB
Salve a tutti. Ho bisogno di sviluppare un programma che riconosca un codice letto da un pezzo di carta con una pistola laser USB (tipo quelle che usano nei super mercati con i codici a barre) e confrontarlo con uno presente nel database.
Avrei bisogno per prima cosa di capire: come posso catturare l'input in ingresso di questa periferica? E' possibile oppure solo il programma in dotazione alla pistola può farlo? Se è possibile catturare l'input con Java, sapete dirmi come fare di preciso? Esiste qualche guida? In che modo potrei poi salvare questo codice a barre? Vi prego è urgente, spero che qualcuno sappia aiutarmi ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
I dispositivi di questo tipo che mi e' capitato di vedere, erano di due tipi:
1 - "Simulavano" l'introduzione dei numeri, come se fossero premuti dalla tastiera; 2 - Spedivano i dati come se fossero una normalissima porta seriale; Nel primo caso, praticamente non si deve far niente di particolare: e' proprio come se si battesse sulla tastiera. Ovviamente nel secondo caso devi lavorare un po' di piu', ma mica poi tanto. Sicuramente esisteranno altri tipi, ma non so dirti altro
__________________
In God we trust; all others bring data |
![]() |
![]() |
![]() |
#3 | |
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
Quote:
Vorrei però capire in dettaglio come funzionano questi apparecchi. Devo fare un programma non complicato quindi uno che simula una tastiera andrebbe benissimo. Allora, se io su un foglio di carta leggo delle lettere o dei numeri con questo dispositivo, mi converte automaticamente l'input in oggetto String?? E cosa succede invece se leggo un codice a barre oppure degli scarabocchi? Io dovrei sviluppare un programma che salva in una tabella la lista di alcune persone. Ad ogni persona è associato un codice a barre, queste persone devono poter effettuare una sorta di "autenticazione" mostrando il loro codice a barre che hanno su un pezzo di carta. Il lettore dovrebbe leggere questo codice a barre ed interpretarlo, e fare quindi un confronto col codice a barre presente nel database... come potrei sviluppare una cosa del genere? |
|
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
Vi prego aiutatemiiiiii, nessuno mi sa dare informazioni al riguardo?
|
![]() |
![]() |
![]() |
#5 | |
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21777
|
Quote:
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Se la sequenza fosse appunto tutte le cifre del codice seguite da invio sarebbe semplice ricostruire una String che ti potrebbe, come avevi già detto, fare da Key per l'HashMap in cui hai caricato tutte le coppie "codice a barre -> persona" presenti nel db.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
Quindi il lettore barcode che simula la tastiera, legge il codice e lo converte automaticamente in valori stringa? Però leggendo su internet ho trovato che ci sono vari algoritmi di codici, devo impostare qualcosa per specificare a quale algoritmo riferirsi? Oppure non c'è ne bisogno e interpreta tutto automaticamente?
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Oct 1999
Messaggi: 1565
|
Questo tipo di lettore "è" una tastiera connessa in parallelo alla tastiera normale (se serve) oppure esclusivamente. Per realizzare il tuo programma devi gestire il normale input da tastiera.
I codici a barre sono di diverse famiglie, in europa e in italia si usa normalmente lo standard EAN-13 che consiste in 12 cifre più una cifra di controllo. Non dovrebbe essere necessario configurare il lettore, ogni codice a barre ritorna una specifica serie di byte quindi puoi limitarti a contare i byte (12) e verificare che siano tutti valori numerici. |
![]() |
![]() |
![]() |
#9 |
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
Quindi se ho capito bene, questo dispositivo funziona proprio come se fosse una tastiera vera e propria? Mi spiego meglio: creo un codice a barre partendo da una stringa: "my string".
Stampo questo codice a barre e uso il lettore ottico, questo lettore legge questo codice e ritorna al programma proprio la stringa "my string" come se fosse stata data dalla tastiera? |
![]() |
![]() |
![]() |
#10 | ||
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Quote:
Una tastiera che fa, dal punto di vista di Java? Genera degli eventi diretti sul Component che ha il focus in quel momento, intercettabili con un Listener. Mi aspetterei quindi quindi che il dispositivo, letto un codice a barre, generi una sequenza di KeyEvent da dover intercettare e da processare in uno o più tra questi metodi tipici di un KeyListener: - KeyPressed(), KeyReleased(), KeyTyped(). Insomma, tenterei con questo approccio, farei delle prove almeno! Questo appunto tu avessi a che fare con un dispositivo del primo tipo. La prima cosa da fare è capire con che tipo di dispositivo hai a che fare: dovresti dircelo tu questo ![]()
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
||
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Poi la prova è abbastanza facile, colleghi il lettore, metti il focus su un editor di testo e leggi un codice a barre, così vedi quello che ti legge.
Ovviamente se è USB avrà bisogno anche di un suo driver (che è fornito dal produttore). Generalmente possono funzionare in entrambi i modi, o in simulazione tastiera o in simulazione di seriale. |
![]() |
![]() |
![]() |
#12 |
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
Raga quindi è come ho detto nell'ultimo mio post (quello prima di questo)? Comunque ho creato un piccolo programma di test, e ho creato un codice a barre con la libreria barbecue, devo solo aspettare che il mio cliente (primo cliente
![]() |
![]() |
![]() |
![]() |
#13 | ||
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Quando dici: Quote:
Nel tuo esempio, dove il codice letto è: "my string", lato Java dovresti vedere arrivare una sequenza di KeyEvent, dove ogni singolo evento decodificato è, in questo caso, la singola lettera spedita. Quindi la stringa (intesa come oggetto String) "my string" se tu che te la devi ricostruire a partire dai KeyEvent, non è che ti arriva dal lettore otticco gà bella e pronta, se era questo il tuo dubbio.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
||
![]() |
![]() |
![]() |
#14 |
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
Allora, io ho fatto una classe di test in questo modo:
Codice PHP:
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Mmm...
Penso che dovrebbe andare, se il focus è sul textField costruito dal JOptionPane, non appena il lettore ottico legge il codice a barre, dovrebbe generare eventi di tastiera: questi dovrebbero quindi venire catturati e processati. Ma oltre alla sequenza rappresentante i caratteri del codice a barre, il lettore ti invia anche un ENTER a fine lettura?
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
![]() |
![]() |
![]() |
#16 | |
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21777
|
Quote:
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
![]() |
![]() |
![]() |
#17 | |
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
Quote:
Grazie a tutti poi vi farò sapere se il test va a buon fine ![]() |
|
![]() |
![]() |
![]() |
#18 |
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
Grazie mille a tutti, funziona! E' stato semplice
![]() |
![]() |
![]() |
![]() |
#19 |
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21777
|
prego
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
![]() |
![]() |
![]() |
#20 |
Member
Iscritto dal: Aug 2008
Messaggi: 51
|
Salve,
scusate se riesumo questo vecchio thread, ma mi chiedevo se foste a conoscenza di qualche lettore di codici a barre con queste caratteristiche: 1. Laser 2. Portabile con memoria interna 3. Con interfaccia USB per poterlo poi connettere al PC e scaricare i codici letti In merito al 3° punto, il download avviene tramite un software apposito oppure secondo uno standard (ad esempio creazione di un file di testo in formato CSV)? Grazie |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:10.