[libhid-discuss] Announce hidmon and some questions and remarks
about libhid
Frederik Reiß
frederik.reiss at gmx.de
Tue Jan 23 14:51:20 CET 2007
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Charles Lepple schrieb:
> On Jan 23, 2007, at 7:11 AM, drd wrote:
>
>> Charles Lepple schrieb:
>>> On Jan 22, 2007, at 7:11 PM, Frederik Reiß wrote:
>>>> Is there any way to get the needed buffer size for
>>>> hid_get_input_report
>>>> and friends ?
>>>
>>> I admit that I don't know much about the MGE HIDParser code - there
>>> should be a way to extract it from the parsed report structures that
>>> it creates, but I am not sure the exact syntax.
>>>
>>> That function was meant for a device where the buffer size was known
>>> ahead of time.
>> that's not good, because it makes something like this necessary (at
>> last
>> for me):
>>
>>
>> hid_ret=hid_get_feature_report(dev, path, c->path.size, buffer, 0);
>> ...
>> size_bits=dev->hid_data->Size;
>> while(size_bits % 8 != 0)
>> size_bits++;
>> size_bytes=size_bits / 8;
>
> If you are just trying to convert size_bits to bytes, you could do
> this:
>
> size_bytes = (size_bits + 7) / 8;
>
yes, much shorter :)
>> ...
>> hid_ret=hid_get_feature_report(dev, path, c->path.size, buffer,
>> size_bytes+1);
>>
>> n.b. when using the linux HID api you don't need to know the size.
>
> I think that hiddev keeps internal tables of what size to request
> for each report ID.
>
> I really want to rewrite the HID parser, because the only people who
> understand how it works have less free time than I do (and I don't
> have much).
I have (too) much free time at the moment, and if you tell me your
plan i maybe able to help you, but i don't know much about USB and HID
Programming.
> But in the mean time, the code is there, and most of the values you
> are looking for should be available.
yes, there is everything i need.
>
> Again, the hid_get_*_report() functions were not meant to cover this
> case. In HID PDC UPSes, a lot of the reports are single values, and
> that's all I had available to test (besides detaching the Linux
> input driver from the mouse or keyboard, and doing remote debugging).
>
>>>> hid_get_item_value does not return a proper value for me (but
>>>> all/some
>>>> of the other fields in HIDInterface get filled correctly).
>>>
>>> Please note the TODO items:
>>>
>>>
http://www.ghz.cc/~clepple/libhid/doc/html/hid__exchange_8c.html#3d57558be35776185e33c4cdce3d6b19
>>>
>>>
>>>
>>> Do you have an idea of what the value should look like? Are you sure
>>> the report descriptor is correct?
>> Yes, first i wrote the programm so, that it used hid_get_input_report
>> which worked (returns e.g. 200), then i just repleaced
>> hid_get_input_report with hid_get_item_value, but hid_get_item_value
>> returned always zero.
>
> There appears to be a size mismatch in the requested size and the
> returned size. Since USB devices are sensitive to the requested
> size, you might want to double-check that 16 is a valid size -
> especially if it is a low-speed device.
>
> Once the kernel HID driver has been detached, what does 'lsusb -vvv'
> say for the monitor?
much, see the attachment.
regards Fred
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFFthLYcLHece3p3gARAve/AJ45EVQ/igFHKQ/HlLY/IAIk/BIsugCdHYyg
eiJ78Tm3HjlqbyM06FxBD+I=
=Z7pq
-----END PGP SIGNATURE-----
-------------- next part --------------
Bus 001 Device 095: ID 056d:0002 EIZO Corp.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x056d EIZO Corp.
idProduct 0x0002
bcdDevice 75.30
iManufacturer 4 EIZO
iProduct 14 EIZO USB HID Monitor
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Devices
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 955
Report Descriptor: (length is 955)
Item(Global): Usage Page, data= [ 0x80 ] 128
USB Monitor
Item(Local ): Usage, data= [ 0x01 ] 1
Monitor Control
Item(Main ): Collection, data= [ 0x01 ] 1
Application
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Report Count, data= [ 0x80 ] 128
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report ID, data= [ 0x01 ] 1
Item(Local ): Usage, data= [ 0x02 ] 2
EDID Information
Item(Main ): Feature, data= [ 0x02 0x01 ] 258
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Buffered Bytes
Item(Global): Usage Page, data= [ 0x82 ] 130
Monitor VESA Virtual Controls
Item(Global): Report Size, data= [ 0x10 ] 16
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Global): Logical Maximum, data= [ 0x64 ] 100
Item(Global): Report ID, data= [ 0x20 ] 32
Item(Local ): Usage, data= [ 0x12 ] 18
Contrast
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x12 ] 18
Contrast
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0xc8 0x00 ] 200
Item(Global): Report ID, data= [ 0x21 ] 33
Item(Local ): Usage, data= [ 0x10 ] 16
Brightness
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x10 ] 16
Brightness
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report ID, data= [ 0x22 ] 34
Item(Local ): Usage, data= [ 0x16 ] 22
Red Video Gain
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x16 ] 22
Red Video Gain
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report ID, data= [ 0x23 ] 35
Item(Local ): Usage, data= [ 0x18 ] 24
Green Video Gain
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x18 ] 24
Green Video Gain
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report ID, data= [ 0x24 ] 36
Item(Local ): Usage, data= [ 0x1a ] 26
Blue Video Gain
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x1a ] 26
Blue Video Gain
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Minimum, data= [ 0x80 0x02 ] 640
Item(Global): Logical Maximum, data= [ 0x40 0x06 ] 1600
Item(Global): Report ID, data= [ 0x30 ] 48
Item(Local ): Usage, data= [ 0x20 ] 32
Horizontal Position
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x20 ] 32
Horizontal Position
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Minimum, data= [ 0x0a ] 10
Item(Global): Logical Maximum, data= [ 0x64 ] 100
Item(Global): Report ID, data= [ 0x38 ] 56
Item(Local ): Usage, data= [ 0x30 ] 48
Vertical Position
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x30 ] 48
Vertical Position
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Size, data= [ 0x20 ] 32
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0x40 0x0d 0x03 0x00 ] 200000
Item(Global): Report ID, data= [ 0x10 ] 16
Item(Local ): Usage, data= [ 0xac ] 172
Horizontal Frequency in Hz
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0xac ] 172
Horizontal Frequency in Hz
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Size, data= [ 0x10 ] 16
Item(Global): Logical Maximum, data= [ 0x20 0x4e ] 20000
Item(Local ): Usage, data= [ 0xae ] 174
Vertical Frequency in 0.1 Hz
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0xae ] 174
Vertical Frequency in 0.1 Hz
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Size, data= [ 0x02 ] 2
Item(Global): Logical Minimum, data= [ 0x01 ] 1
Item(Global): Logical Maximum, data= [ 0x02 ] 2
Item(Global): Report ID, data= [ 0x02 ] 2
Item(Local ): Usage, data= [ 0x60 ] 96
Input Source Select
Item(Main ): Collection, data= [ 0x02 ] 2
Logical
Item(Global): Usage Page, data= [ 0x81 ] 129
USB Monitor Enumerated Values
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Local ): Usage, data= [ 0x02 ] 2
(null)
Item(Main ): Input, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Item(Global): Report Size, data= [ 0x06 ] 6
Item(Main ): Input, data= [ 0x03 ] 3
Constant Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Usage Page, data= [ 0x82 ] 130
Monitor VESA Virtual Controls
Item(Global): Report Size, data= [ 0x02 ] 2
Item(Local ): Usage, data= [ 0x60 ] 96
Input Source Select
Item(Main ): Collection, data= [ 0x02 ] 2
Logical
Item(Global): Usage Page, data= [ 0x81 ] 129
USB Monitor Enumerated Values
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Local ): Usage, data= [ 0x02 ] 2
(null)
Item(Main ): Feature, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Item(Global): Report Size, data= [ 0x06 ] 6
Item(Main ): Feature, data= [ 0x03 ] 3
Constant Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Usage Page, data= [ 0x82 ] 130
Monitor VESA Virtual Controls
Item(Global): Report Size, data= [ 0x02 ] 2
Item(Global): Report ID, data= [ 0x18 ] 24
Item(Local ): Usage, data= [ 0xb0 ] 176
Settings
Item(Main ): Collection, data= [ 0x02 ] 2
Logical
Item(Global): Usage Page, data= [ 0x81 ] 129
USB Monitor Enumerated Values
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Local ): Usage, data= [ 0x02 ] 2
(null)
Item(Main ): Feature, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Item(Global): Report Size, data= [ 0x06 ] 6
Item(Main ): Feature, data= [ 0x03 ] 3
Constant Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
(null)
Item(Global): Report Size, data= [ 0x10 ] 16
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Global): Logical Maximum, data= [ 0xff 0xff 0x00 0x00 ] 65535
Item(Global): Report ID, data= [ 0x50 ] 80
Item(Local ): Usage, data= [ 0x09 ] 9
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x09 ] 9
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Count, data= [ 0x02 ] 2
Item(Global): Report ID, data= [ 0x64 ] 100
Item(Local ): Usage, data= [ 0x2f ] 47
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x2f ] 47
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Global): Report ID, data= [ 0x51 ] 81
Item(Local ): Usage, data= [ 0x30 ] 48
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report ID, data= [ 0x52 ] 82
Item(Local ): Usage, data= [ 0x31 ] 49
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Size, data= [ 0x20 ] 32
Item(Global): Logical Maximum, data= [ 0xff 0xff 0xff 0x00 ] 16777215
Item(Global): Report ID, data= [ 0x53 ] 83
Item(Local ): Usage, data= [ 0x32 ] 50
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report ID, data= [ 0x54 ] 84
Item(Local ): Usage, data= [ 0x33 ] 51
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Count, data= [ 0x80 ] 128
Item(Global): Report ID, data= [ 0x55 ] 85
Item(Local ): Usage, data= [ 0x34 ] 52
(null)
Item(Main ): Feature, data= [ 0x02 0x01 ] 258
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Buffered Bytes
Item(Global): Report Size, data= [ 0x10 ] 16
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Global): Logical Maximum, data= [ 0x06 ] 6
Item(Global): Report ID, data= [ 0x56 ] 86
Item(Local ): Usage, data= [ 0xbc ] 188
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0xbc ] 188
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Report Count, data= [ 0x10 ] 16
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report ID, data= [ 0x57 ] 87
Item(Local ): Usage, data= [ 0x35 ] 53
(null)
Item(Main ): Feature, data= [ 0x02 0x01 ] 258
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Buffered Bytes
Item(Global): Report Count, data= [ 0x03 ] 3
Item(Global): Report ID, data= [ 0x58 ] 88
Item(Local ): Usage, data= [ 0x37 ] 55
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Count, data= [ 0x11 ] 17
Item(Global): Report ID, data= [ 0x59 ] 89
Item(Local ): Usage, data= [ 0x36 ] 54
(null)
Item(Main ): Feature, data= [ 0x02 0x01 ] 258
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Buffered Bytes
Item(Global): Report Count, data= [ 0x21 ] 33
Item(Global): Report ID, data= [ 0x5a ] 90
Item(Local ): Usage, data= [ 0x38 ] 56
(null)
Item(Main ): Feature, data= [ 0x02 0x01 ] 258
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Buffered Bytes
Item(Global): Report ID, data= [ 0x5b ] 91
Item(Local ): Usage, data= [ 0x39 ] 57
(null)
Item(Main ): Feature, data= [ 0x02 0x01 ] 258
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Buffered Bytes
Item(Global): Report ID, data= [ 0x5c ] 92
Item(Local ): Usage, data= [ 0x3a ] 58
(null)
Item(Main ): Feature, data= [ 0x02 0x01 ] 258
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Buffered Bytes
Item(Global): Report Count, data= [ 0x11 ] 17
Item(Global): Report ID, data= [ 0x5d ] 93
Item(Local ): Usage, data= [ 0x3b ] 59
(null)
Item(Main ): Feature, data= [ 0x02 0x01 ] 258
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Buffered Bytes
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Global): Logical Maximum, data= [ 0x01 ] 1
Item(Global): Report ID, data= [ 0x5e ] 94
Item(Local ): Usage, data= [ 0xbf ] 191
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report ID, data= [ 0x5f ] 95
Item(Local ): Usage, data= [ 0xbd ] 189
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Count, data= [ 0x04 ] 4
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report ID, data= [ 0x60 ] 96
Item(Local ): Usage, data= [ 0xbe ] 190
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Global): Logical Maximum, data= [ 0x01 ] 1
Item(Global): Report ID, data= [ 0x61 ] 97
Item(Local ): Usage, data= [ 0xb8 ] 184
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0xb8 ] 184
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Global): Report Size, data= [ 0x10 ] 16
Item(Global): Report ID, data= [ 0x81 ] 129
Item(Local ): Usage, data= [ 0xc1 ] 193
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0xc1 ] 193
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0x1f ] 31
Item(Global): Report ID, data= [ 0x82 ] 130
Item(Local ): Usage, data= [ 0xc5 ] 197
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Report Count, data= [ 0x02 ] 2
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Global): Logical Maximum, data= [ 0x77 ] 119
Item(Global): Report ID, data= [ 0x83 ] 131
Item(Local ): Usage, data= [ 0xc6 ] 198
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Logical Maximum, data= [ 0x02 ] 2
Item(Global): Report ID, data= [ 0x86 ] 134
Item(Local ): Usage, data= [ 0xc9 ] 201
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Size, data= [ 0x10 ] 16
Item(Global): Logical Maximum, data= [ 0x0a ] 10
Item(Global): Report ID, data= [ 0x90 ] 144
Item(Local ): Usage, data= [ 0xe1 ] 225
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Logical Maximum, data= [ 0x01 ] 1
Item(Global): Report ID, data= [ 0x91 ] 145
Item(Local ): Usage, data= [ 0xe2 ] 226
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Count, data= [ 0x80 ] 128
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report ID, data= [ 0x92 ] 146
Item(Local ): Usage, data= [ 0xe3 ] 227
(null)
Item(Main ): Feature, data= [ 0x02 0x01 ] 258
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Buffered Bytes
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Global): Report Size, data= [ 0x10 ] 16
Item(Global): Logical Maximum, data= [ 0x06 ] 6
Item(Global): Report ID, data= [ 0xc3 ] 195
Item(Local ): Usage, data= [ 0x15 ] 21
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x15 ] 21
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0x7f ] 127
Item(Global): Report ID, data= [ 0xa4 ] 164
Item(Local ): Usage, data= [ 0x86 ] 134
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x86 ] 134
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report ID, data= [ 0xa5 ] 165
Item(Local ): Usage, data= [ 0x87 ] 135
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x87 ] 135
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report ID, data= [ 0xa6 ] 166
Item(Local ): Usage, data= [ 0x88 ] 136
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x88 ] 136
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report ID, data= [ 0xa7 ] 167
Item(Local ): Usage, data= [ 0x89 ] 137
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x89 ] 137
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report ID, data= [ 0xa8 ] 168
Item(Local ): Usage, data= [ 0x8a ] 138
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x8a ] 138
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report ID, data= [ 0xa9 ] 169
Item(Local ): Usage, data= [ 0x8b ] 139
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x8b ] 139
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report ID, data= [ 0xaa ] 170
Item(Local ): Usage, data= [ 0x8c ] 140
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x8c ] 140
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0x00 0x05 ] 1280
Item(Global): Logical Minimum, data= [ 0x40 0x01 ] 320
Item(Global): Report ID, data= [ 0xb1 ] 177
Item(Local ): Usage, data= [ 0xca ] 202
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0x00 0x04 ] 1024
Item(Global): Logical Minimum, data= [ 0xc8 0x00 ] 200
Item(Global): Report ID, data= [ 0xb9 ] 185
Item(Local ): Usage, data= [ 0xcb ] 203
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0x06 ] 6
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Report ID, data= [ 0xc0 ] 192
Item(Local ): Usage, data= [ 0x10 ] 16
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x10 ] 16
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0xff 0xff 0x00 0x00 ] 65535
Item(Global): Report ID, data= [ 0xc2 ] 194
Item(Local ): Usage, data= [ 0x0f ] 15
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x0f ] 15
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0x01 ] 1
Item(Global): Report ID, data= [ 0xc4 ] 196
Item(Local ): Usage, data= [ 0xa8 ] 168
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0xa8 ] 168
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0x17 ] 23
Item(Global): Report ID, data= [ 0xc5 ] 197
Item(Local ): Usage, data= [ 0xaa ] 170
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0xaa ] 170
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0x04 ] 4
Item(Global): Report ID, data= [ 0xc7 ] 199
Item(Local ): Usage, data= [ 0xab ] 171
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0xab ] 171
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0x01 ] 1
Item(Global): Report ID, data= [ 0xc9 ] 201
Item(Local ): Usage, data= [ 0xac ] 172
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0xac ] 172
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0xfe 0x0f ] 4094
Item(Global): Report ID, data= [ 0xcb ] 203
Item(Local ): Usage, data= [ 0xa0 ] 160
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0xa0 ] 160
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0x1f ] 31
Item(Global): Report ID, data= [ 0xcc ] 204
Item(Local ): Usage, data= [ 0xa1 ] 161
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0xa1 ] 161
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0x0f ] 15
Item(Global): Report ID, data= [ 0xcd ] 205
Item(Local ): Usage, data= [ 0x81 ] 129
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x81 ] 129
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report ID, data= [ 0xce ] 206
Item(Local ): Usage, data= [ 0xc4 ] 196
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report ID, data= [ 0xcf ] 207
Item(Local ): Usage, data= [ 0x82 ] 130
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x82 ] 130
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Global): Logical Maximum, data= [ 0x0f ] 15
Item(Global): Report ID, data= [ 0xd6 ] 214
Item(Local ): Usage, data= [ 0x07 ] 7
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x07 ] 7
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report ID, data= [ 0xd7 ] 215
Item(Local ): Usage, data= [ 0xb3 ] 179
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0xb3 ] 179
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0x40 ] 64
Item(Global): Report ID, data= [ 0xd8 ] 216
Item(Local ): Usage, data= [ 0xb4 ] 180
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0xb4 ] 180
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0xff 0x01 ] 511
Item(Global): Report ID, data= [ 0xd9 ] 217
Item(Local ): Usage, data= [ 0xb5 ] 181
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0xb5 ] 181
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report ID, data= [ 0xda ] 218
Item(Local ): Usage, data= [ 0xb6 ] 182
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0xb6 ] 182
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report ID, data= [ 0xdb ] 219
Item(Local ): Usage, data= [ 0xb7 ] 183
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0xb7 ] 183
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Report Count, data= [ 0x07 ] 7
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report ID, data= [ 0x80 ] 128
Item(Local ): Usage, data= [ 0xc3 ] 195
(null)
Item(Main ): Feature, data= [ 0x02 0x01 ] 258
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Buffered Bytes
Item(Global): Report Size, data= [ 0x10 ] 16
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Global): Report ID, data= [ 0xf0 ] 240
Item(Local ): Usage, data= [ 0x75 ] 117
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x75 ] 117
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report ID, data= [ 0xf1 ] 241
Item(Local ): Usage, data= [ 0x73 ] 115
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x73 ] 115
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report ID, data= [ 0xf2 ] 242
Item(Local ): Usage, data= [ 0x74 ] 116
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x74 ] 116
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0x3f ] 63
Item(Global): Report ID, data= [ 0xab ] 171
Item(Local ): Usage, data= [ 0x8d ] 141
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x8d ] 141
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report ID, data= [ 0xac ] 172
Item(Local ): Usage, data= [ 0x8e ] 142
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x8e ] 142
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report ID, data= [ 0xad ] 173
Item(Local ): Usage, data= [ 0x8f ] 143
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x8f ] 143
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0x05 ] 5
Item(Global): Report ID, data= [ 0xf3 ] 243
Item(Local ): Usage, data= [ 0x76 ] 118
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x76 ] 118
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Logical Maximum, data= [ 0x08 ] 8
Item(Global): Report ID, data= [ 0xd4 ] 212
Item(Local ): Usage, data= [ 0x66 ] 102
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x66 ] 102
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Global): Logical Maximum, data= [ 0x43 ] 67
Item(Global): Report ID, data= [ 0x62 ] 98
Item(Local ): Usage, data= [ 0x3d ] 61
(null)
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Count, data= [ 0x80 ] 128
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report ID, data= [ 0x63 ] 99
Item(Local ): Usage, data= [ 0x3e ] 62
(null)
Item(Main ): Feature, data= [ 0x02 0x01 ] 258
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Buffered Bytes
Item(Global): Report ID, data= [ 0x70 ] 112
Item(Local ): Usage, data= [ 0xcd ] 205
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Device Status: 0x0001
Self Powered
More information about the libhid-discuss
mailing list