Newsgroup: it.comp.os.linux.sys
Titolo: Lettore di banda magnetica USB in modalità simulaz tastiera

Ciao a tutti,
sto provando ad utilizzare Lettore di banda magnetica USB in modalità
simulazione tastiera su un linux versione Slackware 11.0.0 che scrive sulla
shell 1 di sistema (tty=1).
Ho fatto un programmino in C che legge il "file" /dev/vc/0 per intercettare
tutti i caratteri (e quindi i codici delle carte strisciate) stampati a
video sulla shell sopra, ma purtroppo alcuni caratteri (o strisciate
complete) non passano, e quindi non li posso elaborare.
Mi sapete dare un consiglio per poter risolvere il problema ? Magari cercare
di reindirizzare su file l'output del lettore...o...boh...
Potrebbe anche andare bene se mi aiutate ad intercettare i caratteri
digitati in una particolare shell....Il problema che riscontro leggendo il
file /dev/vc/0 purtroppo non si risolve..."perdo" in maniera randomica
caratteri.
Fatemi sapere.
Grazie,
Leo

 
randomico...
dov'e' che l'ho gia' sentito?
;-P
-- 
Paolo opg
BE AWARE that this post uses a fake reply-to address
to contact me write to:
janickg ( at ) hotmail ( dot ) com
--

 ;-P
;-P
Spiegando meglio il problema...Su Linux i lettori di codici a barre USB 
(almeno i modelli che sono riuscito
a trovare io) funzionano in modalità simulazione tastiera, quindi è come se
dalla tastiera si digitassero dei caratteri (e invece vengono stampati
quelli presenti nella banda magnetica strisciata). Non essendoci driver, non
c'è nemmeno un sistema di correzione errori, o di timeout (o meglio, dovrei
simulare qualcosa io)...
Nella stringa viene riportato solamente il codice del lettore (primi 5
caratteri) e il codice della carta (successivi fino al /n, che dev'essere
interpretato come carattere di fine stringa).
Io ho un certo programma che gira (lanciato da crontab) e dovrebbe leggere
quello che viene passato dalla banda magnetica.
Il modo nel quale avevo pensato di risolvere il problema è quello di
piazzare il server Linux (Slackware 11.00) con la shell 1 attiva (senza
bisogno di essere loggati) e leggere quello che viene scritto nel "file" 
/dev/vc/0
(corrispondente alla shell detta prima). Questo viene aperto con una open, e
letto con una read (all'interno di un ciclo while (1)).
Il problema è che sembra esserci una sorta di "chi prima arriva meglio
alloggia", nel senso che i caratteri o li leggo io con la read, o il SO mi
anticipa e li stampa a video.
Questo non mi permette di essere sicuro che quello che leggo sia veramente
tutto quello che è stato passato dal lettore. Diciamo che, facendo una
veloce statistica, circa il 20% delle strisciate vengono perse.
Hai mica un'idea di come posso fare ad acquisire SEMPRE quello che il
lettore spara ? Sbaglio qualcosa ?
Un grazie anticipato,
Leo 

 quello che viene passato dalla banda magnetica.
Cioe?
Tu hai un programma (presumo un demone) che quindi deve sempre girare
in modo da intercettare le strisciate
ma che cosa centra crontab?
Non lancerai mica il demone da crontab.... Ti conviene lanciarlo in
respawn (se possibile) o dagli script di startup
Crontab cosa centra?

news.eutelia.it
 wrote:

...provo a dire la mia...
se è un lettore di badge magnetici usb leggendo dal relativo device dovresti
poter prendere tutti i caratteri come se fosse una seriale e quindi
trattarlo come tale, o meglio dovrebbe essere possibile accederci come se
fosse una seriale,  poi se hai bisogno di stampare ciò che leggi reindrizzi
quei caratteri sulla shell che preferisci...
non mi punite se ho detto castronerie ;-)
Umberto