Thank you Mirza, that worked perfectly

best regards

Jim Whelan





Mirza Garibovic <[EMAIL PROTECTED]> 
01/03/2008 03:27 PM

To
James T Whelan/Poughkeepsie/[EMAIL PROTECTED]
cc

Subject
Re: [javax-usb-devel] USB device is already claim()'ed






Hi James,

You probably need to force it from the system. See <
http://javax-usb.org/faq.html#force_claim 
 >

Something like the following:

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


On Jan 3, 2008, at 1:20 PM, James T Whelan wrote:


I am simply trying to open a device for IO.  I can detect the device 
get the  active configuration
and then the interface but when I try to claim() it I get  device is 
already claimed:

e:javax.usb.UsbPlatformException: Could not claim interface : Device 
or resource busy.

I checked that the interface is active and that it is indeed claimed 
via isActive() and isClaimed()
prior to the call.

I skipped the claim() and of course if failed to open the pipe, saying 
interface is not claimed:

e:javax.usb.UsbNotClaimedException: UsbInterface 0x00 setting 0x00 is 
not claimed.

Here is what I am trying to do, I already traverse the USB topology to 
obtain the device
I am looking for:


public static void testIO(UsbDevice device) {
   try {

     // Access to the active configuration of the USB device, obtain
     // all the interfaces available in that configuration.
     UsbConfiguration config = device.getActiveUsbConfiguration();
     List totalInterfaces = config.getUsbInterfaces();
     System.out.println(" Total interfaces: "+totalInterfaces.size());
     // Traverse through all the interfaces, and access the endpoints
     // available to that interface for I/O.
     for (int i=0; i<totalInterfaces.size(); i++) {
       UsbInterface interf = (UsbInterface) totalInterfaces.get(i);

       System.out.println(" Interface: "+interf.getInterfaceString());
       System.out.println(" NumStr   : "+interf.getNumSettings());
       System.out.println(" Active   : "+interf.isActive());
       System.out.println(" Claimed  : "+interf.isClaimed());

       interf.claim();
       List totalEndpoints = interf.getUsbEndpoints();
       System.out.println(" Total end points: "+totalEndpoints.size());
       for (int j=0; j<totalEndpoints.size(); j++) {
         // Access the particular endpoint, determine the direction
         // of its data flow, and type of data transfer, and open the
         // data pipe for I/O.
         UsbEndpoint ep = (UsbEndpoint) totalEndpoints.get(i);
         int direction = ep.getDirection();
         int type = ep.getType();
         UsbPipe pipe = ep.getUsbPipe();
         pipe.open();
         System.out.println(" Pipe opened..");
         // Perform I/O through the USB pipe here.
         pipe.close();
       }
       interf.release();
     }
   } catch (Exception e) {
     System.out.println("Error processing USB Pipe... e:"+e);
     e.printStackTrace();
   }
}

Thanks in advance and best regards,

Jim Whelan

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/_______________________________________________

javax-usb-devel mailing list
javax-usb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/javax-usb-devel


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
javax-usb-devel mailing list
javax-usb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/javax-usb-devel

Reply via email to