Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Repost - Transaction timeout on getReport...



From the USB bus perspective, the GET_REPORT request is described in section 7.2.1 of the HID Class Spec (available from http://usb.org). That request tells the device to return the specified report over the default pipe (ie, endpoint 0).

NAKs do not come from the host, they are how a device responds to an request (such as IN) when it doesn't have the data ready to send -- this is probably the problem you are having. 0xe0004051 indicates a transaction timeout (typically because the device didn't supply the data within 5 seconds).

So, you have a USB bus analyzer, but right now you aren't quite decoding what it's telling you correctly. Here are the questions you should answer for yourself.
Is the GET_REPORT request for a Feature Report well formed? Does the device NAK for more than 5 seconds? Does it NAK before all 16K of eeprom data are returned? Does the report descriptor describe this feature report correctly?


I suppose it's also possible that the HID manager can't handle reports that are 16k each. If that's what your device will normally send back, you may choose to control it directly, and prevent the HID driver and HID manager from handling the device -- search for info on code-less kexts if you need to do that.



At 4:01 PM -0400 4/25/05, Charles Reader wrote:
I'm reposting this just in case it fell through the cracks the other day.

***

I had a chance to sit down with the developer of the USB device I'm working with at the moment yesterday evening. Some of the stuff he told me didn't make a whole lot of sense to me but I took a few notes and made some changes to my code. At this point last week, prior to updating to 10.3.9, my program would cause a kernel crash when I did a getReport. Upgrading to 10.3.9 has caused the system not to crash, so I can at least get an error code from getReport when it tries to do the read. The hardware developer told me that the device stores the data at "...endpoint 2" and not zero. This concept was somewhat new to me and I didn't see how it fit into the scheme of things. So I did a bit of experimenting. I changed the 2nd parameter of the open function from 0 to 2, which caused somewhat amazing things to happen.



_______________________________________________ Do not post admin requests to the list. They will be ignored. Usb mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/usb/email@hidden

This email sent to email@hidden
References: 
 >Repost - Transaction timeout on getReport... (From: Charles Reader <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.