Ok, if you say so. You know that *reading* with a 64-byte buffer and
*writing* 64 bytes are completely different. Maybe you have have
confused the device's max-packet-size with its communication data.
Devices do not need you to send extra zeros, and I've never seen one
that required it before (it's just a waste of bandwidth to send 62
zeros).
But since you are sure, I don't see anything obviously wrong then, so
the only thing I can suggest is getting a bus trace to see what's
going on. Good luck!
On Fri, Jul 18, 2008 at 4:01 AM, Marion Decrouez
<[EMAIL PROTECTED]> wrote:
> The device communicates with packets of 64 bytes. It's weird beacause I can
> read data from it but I can't send data to it.
>
> Quoting Dan Streetman <[EMAIL PROTECTED]>:
>
>> Are you sure you want to send 62 zeros? Is that what the device's spec
>> says?
>>
>> On Thu, Jul 17, 2008 at 12:10 PM, Marion Decrouez
>> <[EMAIL PROTECTED]> wrote:
>>>
>>> I'm trying to send a packet of 64 bytes, the first one (or the second)
>>> equal
>>> to 0x30 and the others equals to 0.
>>>
>>> Dan Streetman a écrit :
>>>>
>>>> What data (specific bytes) are you intending to send?
>>>>
>>>> On Wed, Jul 9, 2008 at 4:14 AM, Marion Decrouez
>>>> <[EMAIL PROTECTED]> wrote:
>>>>
>>>>>
>>>>> 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
>>>>> [email protected]
>>>>> https://lists.sourceforge.net/lists/listinfo/javax-usb-devel
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>
>
>
>
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
javax-usb-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/javax-usb-devel