LibusbJava

libusb for Java

User Tools

Site Tools


first_steps:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
first_steps:start [2015/05/27 16:14] akalbererfirst_steps:start [2016/07/12 10:36] akalberer
Line 1: Line 1:
-====== First Steps with Libusb-Java ====== +====== First Steps with LibusbJava ====== 
-The following short example will show you how to use Libusb-Java in your Java-Project.+The following short example will show you how to use LibusbJava in your Java-Project.
 The following code describes the required steps to do a bulk transfer to your device. The following code describes the required steps to do a bulk transfer to your device.
     - Create a new Context (initialises the libusb, returns a context)     - Create a new Context (initialises the libusb, returns a context)
Line 10: Line 10:
     - Release interface     - Release interface
     - Close the device     - Close the device
 +
 +<box 35% red right | **Important note for Windows**>
 +  * getDeviceList() of libusb and Device.search() of LibusbJava return the first device with the corresponding VID, PID. In Windows a composite device is represented by multiple devices with the same VID, PID, so you will have to search for the one you want to use (see [[http://libusb.6.n5.nabble.com/libusb-How-to-access-composite-devices-properly-on-Windows-td5714029.html#a5714031|libusb Mailing List]]).
 +</box>
  
 <code java>Context useCtx = null;                            <code java>Context useCtx = null;                           
 Device usbDev = null; Device usbDev = null;
 try { try {
-        useCtx = new Context();                                                 /* 1 */+        useCtx = new Context();                                                  /* 1 */
 } catch (LibusbException e) { } catch (LibusbException e) {
         System.out.println("Init failed:");         System.out.println("Init failed:");
Line 33: Line 37:
 try { try {
  usbDev.open();                                                           /* 4 */  usbDev.open();                                                           /* 4 */
- usbDev.claimInterface(0);                                              /* 5 */+ usbDev.claimInterface(0);                                                /* 5 */
  byte[] data = {(byte)0x40, (byte)0x80, (byte)0x12, (byte)0x16};  byte[] data = {(byte)0x40, (byte)0x80, (byte)0x12, (byte)0x16};
- int res = usbDev.bulkTransfer(2, data, data.length, 0);               /* 6 */+ int res = usbDev.bulkTransfer(2, data, data.length, 0);                  /* 6 */
  if(res == data.length){  if(res == data.length){
          System.out.println("Bulk tranfer 1 successful.");          System.out.println("Bulk tranfer 1 successful.");
Line 44: Line 48:
  usbDev.reset();  usbDev.reset();
  res = 0;  res = 0;
- res = usbDev.bulkTransfer(2, data, data.length, 0);                   /* 6 */+ res = usbDev.bulkTransfer(2, data, data.length, 0);                      /* 6 */
  if(res == data.length){  if(res == data.length){
  System.out.println("Bulk tranfer 2 successful.");  System.out.println("Bulk tranfer 2 successful.");
Line 51: Line 55:
  System.out.println("Bulk transfer 2 failed.");  System.out.println("Bulk transfer 2 failed.");
  }  }
- usbDev.releaseInterface(0);                                            /* 7 */+ usbDev.releaseInterface(0);                                              /* 7 */
  usbDev.close();                                                          /* 8 */  usbDev.close();                                                          /* 8 */
  System.out.println("Device closed.");  System.out.println("Device closed.");
first_steps/start.txt · Last modified: 2016/07/12 10:37 by akalberer