Hello,
i'm writing a driver for a multitouch monitor.
The USB device has only 1 configuration with two interfaces:
- the 1st interface (ID = 0) is the multitouch interface with only 1 input endpoint (interrupt type with address 0x82)
- the 2nd interface (ID = 1) is the singletouch interface with only 1 input endpoint (interrupt type with address 0x81)
If i claim the 2nd interface i can receive singletouch packets from the endpoint 0x81.
If i claim the 1st interface i don't receive any packet from the endpoint 0x82.
The problem is the same both with a Function Driver, or with an Interface Driver.
Anyone has any idea why I am not getting messages from the 0x82 endpoint?
Thanks!
USB device with multiple interfaces
- AlfredOne
- Beta Tester
- Posts: 135
- Joined: Wed Dec 22, 2010 11:45 pm
- Location: Terlizzi (BA) , Italy
- Contact:
USB device with multiple interfaces
Amiga500 Kickstart1.3
AmigaONE XE G4 833MHz - 2GB RAM - Radeon9200 256MB
AmigaONE X1000 - 2GB RAM
AmigaONE XE G4 833MHz - 2GB RAM - Radeon9200 256MB
AmigaONE X1000 - 2GB RAM
- Radeon R9-280X 3GB
- Radeon HIS4670 1GB DDR3
- Radeon RX550
-
- Posts: 314
- Joined: Mon May 14, 2012 10:26 pm
- Location: 日本千葉県松戸市 / Matsudo City, Chiba, Japan
- Contact:
Re: USB device with multiple interfaces
Is it letting you select single vs multi touch support by which end-point you claim?
- AlfredOne
- Beta Tester
- Posts: 135
- Joined: Wed Dec 22, 2010 11:45 pm
- Location: Terlizzi (BA) , Italy
- Contact:
Re: USB device with multiple interfaces
I observed this:
1) when i claim the Interface 0 and i request the HID Report Descriptor, i get an HID Report descriptor for a touchscreen with 10 touch points.
2) when i claim the Interface 1 and i request the HID Report Descriptor, i get an HID Report descriptor with only one touch point.
In the Interface descriptors i see that:
- interface 0 has the endpoint 0x82
- interface 1 has the endpoint 0x81
Both endpoints are of the same type (INPUT INTERRUPT) and with the same packet size (64 bytes).
So I thought that to receive multitouch events I had to claim interface 0 and then receive from its endpoint (0x82).
Is it possible that some type of standard HID request is needed to initialize access of the interface 0?
1) when i claim the Interface 0 and i request the HID Report Descriptor, i get an HID Report descriptor for a touchscreen with 10 touch points.
2) when i claim the Interface 1 and i request the HID Report Descriptor, i get an HID Report descriptor with only one touch point.
In the Interface descriptors i see that:
- interface 0 has the endpoint 0x82
- interface 1 has the endpoint 0x81
Both endpoints are of the same type (INPUT INTERRUPT) and with the same packet size (64 bytes).
So I thought that to receive multitouch events I had to claim interface 0 and then receive from its endpoint (0x82).
Is it possible that some type of standard HID request is needed to initialize access of the interface 0?
Amiga500 Kickstart1.3
AmigaONE XE G4 833MHz - 2GB RAM - Radeon9200 256MB
AmigaONE X1000 - 2GB RAM
AmigaONE XE G4 833MHz - 2GB RAM - Radeon9200 256MB
AmigaONE X1000 - 2GB RAM
- Radeon R9-280X 3GB
- Radeon HIS4670 1GB DDR3
- Radeon RX550