PORTS Forum
Ports and Interfaces => USB => Topic started by: ftariq68 on February 17, 2012, 08:07:50 am
-
Hello All:
Is it possible to append a Report ID with Input and output to a Non-Vendor Specific Report and utilize it to pass Vendor proprietary data.
For example in a multi-touch Report Descriptor as shown below, we are explicitly telling Windows OS that we have a collection for touch screen can we create another collection at the bottom (with new Report ID) for Vendor-specific Report, (without creating a Vendor-Specific Report)? Would this work? I do understand it will be a little kludgy.
Thanks for your help.
0x05, 0x0D, // USAGE_PAGE (Digitizers)
0x09, 0x04, // USAGE (Touch Screen)
0xA1, 0x01, // COLLECTION (Application)
0x85, 0x01, // REPORT_ID (Touch)
0x09, 0x22, // USAGE (Finger)
0xA1, 0x02, // COLLECTION (Logical)
0x09, 0x42, // USAGE (Tip Switch)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x01, // LOGICAL_MAXIMUM (1)
0x75, 0x01, // REPORT_SIZE (1)
0x95, 0x01, // REPORT_COUNT (1)
0x81, 0x02, // INPUT (Data,Var,Abs)
0x09, 0x32, // USAGE (In Range)
0x81, 0x02, // INPUT (Data,Var,Abs)
0x95, 0x06, // REPORT_COUNT (6)
0x81, 0x03, // INPUT (Cnst,Ary,Abs)
0x75, 0x08, // REPORT_SIZE (
0x09, 0x51, // USAGE (Contact Identifier)
0x95, 0x01, // REPORT_COUNT (1)
0x81, 0x02, // INPUT (Data,Var,Abs)
0x05, 0x01, // USAGE_PAGE (Generic Desk..
0x26, 0xFF, 0x0F, // LOGICAL_MAXIMUM (4095)
0x75, 0x10, // REPORT_SIZE (16)
0x55, 0x00, // UNIT_EXPONENT (0)
0x65, 0x00, // UNIT (None)
0x09, 0x30, // USAGE (X)
0x35, 0x00, // PHYSICAL_MINIMUM (0)
0x46, 0x00, 0x00, // PHYSICAL_MAXIMUM (0)
0x81, 0x02, // INPUT (Data,Var,Abs)
0x26, 0xFF, 0x0B, // LOGICAL_MAXIMUM (3071)
0x09, 0x31, // USAGE (Y)
0x81, 0x02, // INPUT (Data,Var,Abs)
0xC0, // END_COLLECTION
0x05, 0x0D, // USAGE_PAGE (Digitizers)
0x09, 0x54, // USAGE (Actual count)
0x95, 0x01, // REPORT_COUNT (1)
0x75, 0x08, // REPORT_SIZE (
0x81, 0x02, // INPUT (Data,Var,Abs)
0x85, 0x02, // REPORT_ID (Feature)
0x09, 0x55, // USAGE(Maximum Count)
0x25, 0x02, // LOGICAL_MAXIMUM (2)
0xB1, 0x02, // FEATURE (Data,Var,Abs)
0xC0 // END_COLLECTION
-
Each report ID defines a report. For vendor-specific data, use a vendor-specific report.
Jan
-
Hi Jan (and all):
My question is not academic. I am seriously running into an issue where I can't create a Vendor Speicific Report. Does anyone know if this will work?
Thanks
-
What happens when you try to create a vendor-specific report?
Jan
-
I have a system, that will not allow Vendor Specific Report. (Unfortunately, I can't divulge any more information on this).
Thanks
Faisal
-
What information do you need to send, or if you can't say that, how much data and who sends it (host or device)?
For example, the device can store information in a string descriptor that the host can retrieve with HidD_GetIndexedString.
Jan
-
Thanks Jan. The data will be sent by both the host and the device. Your suggestion was good, but I don't have String Descriptors either... ouch!