2009-02-13 22 views
20

Mi piacerebbe comunicare con un dispositivo USB sotto Windows e Java ma non riesco a trovare una buona libreria per farlo. Non voglio che l'utente debba installare hardware o driver di periferica aggiuntivi per farlo funzionare. Cioè, voglio essere in grado di interagire con USB proprio come fanno altre applicazioni Windows.Come comunicare con un dispositivo USB sotto Windows e Java?

Ho familiarità con JUSB e JSR 80 ma entrambi sembrano progetti morti (almeno per Windows).

+0

Ho appena trovato questo a http://cafe.elharo.com/blogroll/what-java-still-cant-do/#comment-69109 "[ ...] su Windows, non puoi semplicemente elencare i dispositivi connessi e iniziare a parlare con loro, che è l'API Java USB. " Non capisco perfettamente il suo commento, ma suona piuttosto scoraggiante :( – Gili

risposta

2

Ho fatto un po 'di ricerche su questo qualche tempo fa, e il fatto sfortunato era che tutti gli utili progetti USB + Windows + Java gratuiti erano morti. C'è commerciale e costoso (prezzo $ 39,99 non è per sviluppatore, ma per copia del software venduto!) Libreria JCommUSB che probabilmente funziona, anche se non ne ho esperienza; abbiamo dovuto creare i nostri wrapper C personalizzati per i driver USB e comunicare con loro attraverso JNI.

+0

Sembra che anche la libreria JCommUSB sia morta.Il nome di dominio è in vendita – Cypher

9

libusb-win32 richiede l'installazione del driver generico, che rende quindi disponibile un dispositivo USB. Non sono sicuro che sia possibile effettuare l'accesso senza driver di un dispositivo USB a meno che il dispositivo non appartenga a una delle diverse classi standard (in particolare, archiviazione e HID).

C'è un Java wrapper for libusb-win32 che potrebbe funzionare per voi. Non l'ho usato da solo, però.

+0

Non tutti i dispositivi USB vengono forniti con i driver integrati che vengono installati automaticamente quando si collega il dispositivo? O è solo per dispositivi "standard"? È almeno possibile comunicare con dispositivi "standard" utilizzando Java senza driver? – Gili

+3

No, i driver integrati sono un'eccezione. , come la memoria e HID (tastiere, mouse ecc.) probabilmente funzionerebbero con il suddetto libusb-win32. Windows include driver standard per loro –

+1

Ho cercato un modo semplice per interagire con un dispositivo USB personalizzato che non ha funzionato t coinvolgere l'emulazione di un porto di comunicazione, grazie – 8bitwide

0

Il modo più semplice e veloce è l'hacking di un codice nativo :) Ho scritto un piccolo wrapper per dispositivi HID che permetteva alle mie applicazioni Java di leggere i dati dai digitalizzatori CalComp, quindi è decisamente fattibile e non troppo difficile. La cosa brutta è che il mio lavoro è ancora un codice proprietario di proprietà del mio ex datore di lavoro, quindi per ragioni legali non posso ancora rilasciarlo come open-source.

la cosa buona è che si può ottenere un inizio di volo con il codice di esempio HID dalla Microsoft DDK :)

Problemi correlati