¿Existe alguna biblioteca o API en Java que transmita datos a través de USB, que requiera que un terminal envíe datos USB en un formato determinado para que el otro terminal pueda recibirlos?
API de alto nivel (javax-usb)import?javax.usb.*;
import?java.util.List
public?class?TraverseUSB;
{
public?static?void?main(String?argv[])
{
probar
{
//?Acceder?a?los?servicios?USB?del?sistema?,?y?acceder?a?la?raíz?
//hub.?Luego?recorrer ?a través?de?root?hub.
UsbServices?services?=?UsbHostManager.getUsbServices();
UsbHub?rootHub?=?services.getRootUsbHub();
traverse(rootHub);
}?catch?(Exception?e)?{}
}
public?static?void?traverse (DispositivoUsb?dispositivo)
{
if?(device.isUsbHub())
{?
//?¿Esto? es?un?concentrador?USB?,?recorra?a través?el?concentrador.
List?attachedDevices?=?((UsbHub)?device).getAttachedUsbDevices();
para ?(int?i=0;?i
{
traverse((UsbDevice)?attachedDevices.get(i));
}
}
else
{
//?Esta?es?una?función?USB?,?no?un?hub. p>
//?Hacer?algo.
}
}
público?estático?void?testIO(Dispositivo USB?dispositivo)
{
prueba
{
//?Acceder?a?la?configuración?activa?del?dispositivo?USB?,? obtener?
//?todas?las?interfaces?disponibles?en?esa?configuración.
UsbConfiguration?config?=?device.getActiveUsbConfiguration();
List?totalInterfaces?=?config.getUsbInterfaces();
//?Atravesar?todas?las?interfaces?y?acceder?a?los?puntos finales?
//?
disponible?para?esa?interfaz?para?E/S.
para?(int?i=0;?i
{
Interfaz USB?interf ?=?(UsbInterface)?totalInterfaces.get(i);
interf.claim();
Lista?totalEndpoints?=?interf.getUsbEndpoints();
for?(int?j=0;?j
{
//?Acceder?al?punto?particular?,?determinar?la?dirección
//?de?su?flujo?de?datos?,?y?el?tipo?de?transferencia?de?datos?,?y?abrir?el?
///?canal?de?datos?para?I/ O.
UsbEndpoint?ep?=?(UsbEndpoint)?totalEndpoints.get(i);
int?direction?=?ep.getDirection();
int?type?=?ep.getType();
UsbPipe?pipe?=?ep.getUsbPipe();
pipe.open();
//?Realice?E/S?a través?del?USB?pipe?aquí.
pipe.close();
}
interf.release();
}
}?catch?(¿Excepción?e)?{}?
}
}