Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Control de USB

Hola.
Intento escribir un código que se conecte a un puerto usb y mande una señal positiva por el pin de datos durante los segundos que le diga. He probado varios ejemplos y siempre tengo una excepción en la línea UsbServices services = UsbHostManager.getUsbServices();
He leído que la librería jsr80 es para Linux y yo trabajo en windows, pero esto no ha cambiado en 10 años? y no se supone que Java es multiplataforma?
Perdón por mi ignoracia, soy novato en esto del Java. Agradeceré toda ayuda.

agosto 23, 2015 | Registered Commenterdavidodo

De la FAQ de JSR 80 (si sigues el enlace verás la respuesta completa):


Is there an implementation for Windows?
There is no certified implementation for Windows.
(...)

Java es multiplataforma, sí, pero precisamente por eso el acceso de bajo nivel no está disponible nativamente. Para este tipo de casos se suele usar JNI (Java Native Interface), que implica conectar código Java (multiplataforma) con bibliotecas en código nativo del sistema operativo (y, por tanto, no multiplataforma).

En StackOverflow alguien preguntó lo mismo y le contestaron esto:


Well both of these implementations have their limitations specially on windows. They both lack support for Bulk Transfer on windows.

Hay más información en ese enlace que quizá te sirva.

EDITO: acabo de encontrar este proyecto, mucho más reciente y que quizá te sirva.

agosto 24, 2015 | Registered Commenterrickiees

Gracias por la respuesta.
Voy a probar con usb4java a ver si lo puedo hacer funcionar.
Un saludo.

agosto 25, 2015 | Registered Commenterdavidodo