We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I have written some code to request and receive HID reports from a printer based on the Coldfire MCF.
On my development machine it works fine (I am not saying the famous ... “well it works on mine”) in that I can receive the report from a non control endpoint with an overlapped Readfile call.
On my test PC it fails with a timeout.
So I got hold of the famous demo of Jan Alexson viz usbhidio_vc6 and complied it under Vis Studio 2008 on Win XP.
I was flabbergasted when I obtained the same results! It exchanges reports on demand on the one PC and not the other.
The report definition is:
uint8 report[] = {
0x05, 0xffbc, 0x09, 0x01, 0xa1, 0x01,
0x09, 0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x95, 0xBF, 0x75, 0x08, 0x81, 0x02,
0x09, 0x03, 0x15, 0x00, 0x26, 0xff, 0x00, 0x95, 0x02, 0x91, 0x02, 0xc0 };
I have it as USB 1.1 in the HID desciptor.
Can anyone think of where else I could look for ideas .. something at the host end I guess, something not obvious.
Cheers
Stalis
Ah well, sorry for wasting your time folks.
I have realised that this behaviour is just symptomatic of a flakey USB stack in the device.
Rather than waste my time wondering why the error symptoms differ from PC to PC I'll concentrate on fixing the stack.