2009-02-13 12 views
20

Chciałbym komunikować się z urządzeniem USB w systemie Windows i Java, ale nie mogę znaleźć dobrej biblioteki, aby to zrobić. Nie chcę, aby użytkownik musiał zainstalować dodatkowy sprzęt lub sterowniki urządzeń, aby to działało. To znaczy, chcę mieć możliwość interakcji z USB tak, jak robią to inne aplikacje Windows.Jak komunikować się z urządzeniem USB w systemie Windows i Java?

Jestem zaznajomiony z jUSB i JSR 80, ale oba wydają się być martwymi projektami (przynajmniej dla Windows).

+0

Właśnie znalazłem to w http://cafe.elharo.com/blogroll/what-java-still-cant-do/#comment-69109 „[ ...] w systemie Windows, nie można wyświetlić listy podłączonych urządzeń i zacząć z nimi rozmawiać, do czego służy API Java USB. " Nie w pełni rozumiem jego komentarz, ale brzmi to raczej zniechęcająco :( – Gili

Odpowiedz

2

Zrobiłem całkiem sporo badań na ten temat jakiś czas temu, a niefortunnym faktem było to, że wszystkie użyteczne darmowe projekty USB + Windows + Java były martwe. Jest komercyjne i drogie (cena 39,99 dolarów nie jest na programistę, ale na kopię sprzedanego oprogramowania!) JCommUSB biblioteka, która prawdopodobnie działa, chociaż nie mam tego doświadczenia; musieliśmy zbudować własne niestandardowe opakowania C na sterowniki USB i komunikować się z nimi za pośrednictwem JNI.

+0

Wygląda na to, że biblioteka JCommUSB również nie działa. Domena jest na sprzedaż. – Cypher

9

libusb-win32 wymaga zainstalowania ogólnego sterownika, który następnie udostępnia urządzenie USB. Nie jestem pewien, czy możliwe jest uzyskanie dostępu do urządzenia USB bez użycia sterowników, chyba że urządzenie należy do jednej z kilku klas standardowych (w szczególności pamięci masowej i pamięci HID).

Istnieje Java wrapper for libusb-win32, który może pracować dla Ciebie. Sam jednak tego nie użyłem.

+0

Nie wszystkie urządzenia USB są dostarczane z zainstalowanymi sterownikami, które zostaną zainstalowane automatycznie po podłączeniu urządzenia? Czy jest to tylko dla "standardowych" urządzeń? Czy jest co najmniej możliwe komunikowanie się ze "standardowymi" urządzeniami za pomocą Java bez sterowników? – Gili

+3

Nie, sterowniki pokładowe są wyjątkiem. , takie jak przechowywanie i HID (klawiatury, myszki itp.) prawdopodobnie działałoby z wyżej wspomnianą biblioteką libusb-win32. Windows zawiera standardowe sterowniki dla nich .. –

+1

Szukałem prostego sposobu na interakcję z niestandardowym urządzeniem USB, które nie zrobiło ". t obejmować emulowanie portu komunikacyjnego, Dzięki – 8bitwide

0

Najszybszym i najłatwiejszym sposobem jest zhakowanie jakiegoś kodu natywnego :) Napisałem małe opakowanie urządzeń HID, które umożliwiło aplikacjom Java odczytywanie danych z digitizerów CalComp, więc jest zdecydowanie wykonalne i niezbyt trudne. Złe jest to, że moja praca jest nadal zastrzeżonym kodem należącym do mojego byłego pracodawcy, więc z przyczyn prawnych nie mogę tego jeszcze opublikować jako open-source.

Dobrą rzeczą jest to, że można dostać lotny start z HID przykład kodu z Microsoft DDK :)

Powiązane problemy