Hello,
I'm still trying to send data to a HID device but it doesn't work. I  
don't have any errors or exceptions but the syncSubmit method never  
ends and if I use the asynchSubmit method, the actual lentgh is always  
null. I'm sure it's possible to send data to the device because  
there's a software given with the device which does that. I've checked  
the packets sent by this software to the device with an usb monitor  
and I tried to send the same.
Does anyone knows the problem?

Thanks.

Here is my code :

public static void main(String argv[]){
                try{
                        UsbServices services = UsbHostManager.getUsbServices();
                        UsbHub virtualRootUsbHub = services.getRootUsbHub();
                        List LL_DevList = 
getUsbDevicesWithId(virtualRootUsbHub,  
(short)0x4242, (short)0xee01);
                        UsbDevice LCl_Device = (UsbDevice)LL_DevList.get(0);

                        UsbInterface LCl_UsbInterface =  
LCl_Device.getActiveUsbConfiguration().getUsbInterface((byte)0);

                        UsbInterfacePolicy LCl_uiP = new UsbInterfacePolicy()
                        {
                                public boolean forceClaim (UsbInterface 
LCl_Interface)
                                {
                                        return true;
                                }
                        };


                        try
                        {
                                LCl_UsbInterface.claim(LCl_uiP);
                        }catch(UsbException LCl_Exception){
                                System.out.println("Could not claim interface 
to drive majook : "+  
LCl_Exception.getMessage());
                        }



                                UsbInterface LCl_UsbActiveInterface = 
LCl_UsbInterface.getActiveSetting();

                                byte LN_EndpointOutAdress = (byte)0x04;
                                UsbEndpoint LCl_UsbEndpointOut =  
LCl_UsbActiveInterface.getUsbEndpoint(LN_EndpointOutAdress);

                                UsbPipe LCl_UsbPipeOut = 
LCl_UsbEndpointOut.getUsbPipe();

                                try
                                {
                                        LCl_UsbPipeOut.open();
                                }catch (UsbException e){
                                        System.out.println("Could not open 
endpoint to communicate with  
majook : "+ e.getMessage());

                                }

                                byte[] LT_WriteData = new byte[64];


                                for (int i=0; i< 64; i++)
                                {
                                        LT_WriteData[i]=(byte)0x00;
                                }
                                LT_WriteData[1] = (byte)0x30;

                                try
                                {
                                        LCl_UsbPipeOut.syncSubmit(LT_WriteData);


                                }catch(UsbException LCl_UsbException){

                                        System.out.println("Unable to submit 
data buffer to majook : " +  
LCl_UsbException.getMessage());

                                }
                                try
                                {
                                        LCl_UsbPipeOut.abortAllSubmissions();
                                        LCl_UsbPipeOut.close();
                                }catch (UsbException LCl_Exception){
                                        System.out.println("Could not open 
endpoint to communicate with  
majook : "+ LCl_Exception.getMessage())
                                }

                        }
                }catch(UsbException LCl_Exception){

                }


        }

        public static List getUsbDevicesWithId(UsbDevice usbDevice, short  
vendorId, short productId)
        {
                List list = new ArrayList();

                if (vendorId == usbDevice.getUsbDeviceDescriptor().idVendor() &&
                        productId == 
usbDevice.getUsbDeviceDescriptor().idProduct())
                        list.add(usbDevice);

                if (usbDevice.isUsbHub()) {
                        List devices = 
((UsbHub)usbDevice).getAttachedUsbDevices();
                        for (int i=0; i<devices.size(); i++)
                                
list.addAll(getUsbDevicesWithId((UsbDevice)devices.get(i),  
vendorId, productId));
                }

                return list;
        }
}


-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
javax-usb-devel mailing list
javax-usb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/javax-usb-devel

Reply via email to