2016-02-22 1 views
0

Comment envoyer et lire des octets de données depuis une configuration LPC1347 avec HID en utilisant Java et la bibliothèque USB4Java?LPC1347 USB4Java

Je peux identifier l'appareil avec les propriétés suivantes:

private static short VENDORID = 0x1fc9;// 8137 
private static short PRODUCTID = 0x2000;// 8192 

Les points de terminaison sur le LPC1347 sont:

private static short HID_ENDPOINT_OUT = 0x01; 
private static short HID_ENDPOINT_IN = 0x81; 

Dans mon code, j'utilisé comme suit:

UsbEndpoint endpoint = iface.getUsbEndpoint((byte) 0x55); 
UsbPipe pipe = endpoint.getUsbPipe(); 
pipe.open(); 
try { 
// read 
byte[] data = new byte[8]; 
int received = pipe.syncSubmit(data); 
System.out.println(received + " bytes received"); 
} finally { 
pipe.close(); 
} 

Et je reçois l'erreur suivante:

erreur USB 1: Erreur de transfert de point d'extrémité d'interruption: Erreur Entrée/Sortie

Toujours dans le LPC1347 est paramétré comme suit: extern uint8_t InReport [23]; extern uint8_t OutReport [23];

Pour le premier octet, je lis le rapport (INPUT_REPORT) 0x55 et j'écris (OUTPUT REPORT) 0xAA.

Répondre

0

Je ne vois pas que vous avez revendiqué l'interface avant d'avoir envoyé des données. Essayez ceci:

iface.claim(new UsbInterfacePolicy() 
    {    
     @Override 
     public boolean forceClaim(UsbInterface usbInterface) 
     { 
      return true; 
     } 
    }); 

Ensuite, vous pouvez insérer votre code. Et à la fin de tout ce que vous devez libérer l'interface (je ferais dans une clause-finale):

iface.release(); 
+0

merci, cela fonctionne maintenant. –