Gianluca ha scritto: > Giorgio Luciani ha scritto: > > Gianluca ha scritto: > >> Giorgio Luciani ha scritto: > >>> [EMAIL PROTECTED] ha scritto: > >>>> Salve a tutti, > >>>> ho la necessità di scrivere un programmino C che sia ingrado di > >>>> leggere ciò che una tastiera USB invia. > >>>> [cut] > >>> Ciao, in generale becchi l'output semplicemente con un cat sul device > >>> corretto in /dev/input/ (nel mio caso, per la tastiera ps2, > >>> /dev/input/event0) e puoi redirigerlo come ti pare (ad es. via pipe) > >>> (devi essere root o comunque avere i diritti in lettura). > >>> Per trovare a realtime il nome esatto del device usb puoi provare > a fare > >>> un grep su > >>> cat /proc/bus/input/devices > >>> Il problema è poi interpretare i raw data ottenuti come stringhe di > >>> caratteri. > >>> [cut] > >> > > [cut] > > char decode_key(int key); > > const char decode_key(int key) { > > switch(key){ > > case(2): return '1'; break; // num row // > > case(3): return '2'; break; > > case(4): return '3'; break; > > case(5): return '4'; break; > > ... ... > > ... ... > > } > > } > > Per avere le associazioni giuste con le tastiere italiane, prova a > scaricarti lkl: > > http://sourceforge.net/projects/lkl/ > > [cut] > > > Grazie per il tuo consiglio. > Giorni fa sono partito proprio da lkl e stavo dando uno sguardo ai > sorgenti ma da quello che ho capito lkl usa l'indirizzo fisico della > tastiera e non il file di input quindi non sò se mi può essere utile. > > Gianluca > L'idea era quella di riutilizzare da lkl solo la mappatura italiana da inserire nella funzione di decode_key che ho proposto. Il resto può non interessarti. Ovvero: ti leggi l'input come ti pare (ad es. da /dev/input/eventx) e lo decodi tramite la mappatura che copi da lkl. Non è così semplice e lineare, ma secondo me è una via praticabile. Saluti
ps: temo che per le eventuali successive risposte sia meglio usare canali privati, visto che siamo ot e la lista ha già sopportato a sufficienza la nostra conversazione Saluti -- Giorgio Luciani http://www.lucius.it -- Per REVOCARE l'iscrizione alla lista, inviare un email a [EMAIL PROTECTED] con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a [EMAIL PROTECTED] To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]