Interrupt In Endpoint 1 Question
Posted: Sun Feb 03, 2008 7:41 am
My client program is using AVRUSB and I have a interupt in endpoint 1 as well as a interupt out endpoint. I have it working fine with 6 bytes being transfered to the windows host with a interupt in.
My question is how do I send more than 8 bytes to the host with a interupt in endpoint?
I've tried to break it up into several report id's. That seems to work for windows as the data I'm sending is for a HID joystick. The data gets transfered to windows and I can look at the joystick data from the control panel and all of the data is getting there in 2 report id's.
The problem I'm having is when I use LIBUSB and I use -
Data gets transfered, but there is no way to tell it to get data from Report ID 1 or Report ID 2. Depending on when the read happens, data from either Report ID 1 or Report ID 2 will end up being read. I tried to increase the read length constant, but it will only read 1 Report ID at a time, and not both at one time.
Perhaps there is a better way? I need to transfer 14 bytes to the host. How can I do that if the max transfer size in AVRUSB is only 8 bytes?
My question is how do I send more than 8 bytes to the host with a interupt in endpoint?
I've tried to break it up into several report id's. That seems to work for windows as the data I'm sending is for a HID joystick. The data gets transfered to windows and I can look at the joystick data from the control panel and all of the data is getting there in 2 report id's.
The problem I'm having is when I use LIBUSB and I use -
Code: Select all
nBytes = usb_interrupt_read(handle, 0x81, (char *)buffer, 7, 5000);
Data gets transfered, but there is no way to tell it to get data from Report ID 1 or Report ID 2. Depending on when the read happens, data from either Report ID 1 or Report ID 2 will end up being read. I tried to increase the read length constant, but it will only read 1 Report ID at a time, and not both at one time.
Perhaps there is a better way? I need to transfer 14 bytes to the host. How can I do that if the max transfer size in AVRUSB is only 8 bytes?