[libhid-discuss] usage path help
Andreas Starlinger
andreas.starlinger at gmail.com
Fri May 1 13:47:59 UTC 2009
Hi,
I'm new to libhid and I have the following situation: I have a Wacom
tablet (it's recognized as a HID device in Windows) and I'm trying to
access the device on my linux system by using the libhid library
(package version 0.2.15, libusb version 1.0). It looks to me that it's
recognized by the linux kernel (see lsusb_output below).
I compiled the test_libhid.c and the simple open and close looks good
to me (see test_libhid_output below) but I can't find the HID usage
paths for the device, none of the 0x80 paths (0x90 is not available at
all) from the hid_dump_tree (see hid_dump_tree_output below) or via
the suggested calculation method in the sourcecode can be used for
e.g. hid_set_output_report, it always leads to a warning that the
object can't be found and a timeout.
Is there any other possibility to find the correct usage paths for
this device or is the only way contacting the vendor for this
information?
Thanks in advance for your help.
Best regards
Andreas
lsusb_output:
Bus 006 Device 046: ID 056a:00a1 Wacom Co., Ltd
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x056a Wacom Co., Ltd
idProduct 0x00a1
bcdDevice 1.01
iManufacturer 1 Wacom Co.,Ltd.
iProduct 2 STU-500
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 300mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
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 294
Report Descriptor: (length is 294)
Item(Global): Usage Page, data= [ 0x0d ] 13
Digitizer
Item(Local ): Usage, data= [ 0x01 ] 1
Digitizer
Item(Main ): Collection, data= [ 0x01 ] 1
Application
Item(Global): Report ID, data= [ 0x01 ] 1
Item(Main ): Collection, data= [ 0x00 ] 0
Physical
Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
(null)
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Report Count, data= [ 0x06 ] 6
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
Item(Global): Report ID, data= [ 0x10 ] 16
Item(Main ): Collection, data= [ 0x00 ] 0
Physical
Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
(null)
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Report Count, data= [ 0x10 ] 16
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
Item(Global): Report ID, data= [ 0x14 ] 20
Item(Main ): Collection, data= [ 0x00 ] 0
Physical
Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
(null)
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Report Count, data= [ 0x10 ] 16
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
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0x03 ] 3
Item(Global): Report Count, data= [ 0x04 ] 4
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0x04 ] 4
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0x08 ] 8
Item(Global): Report Count, data= [ 0x10 ] 16
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0x09 ] 9
Item(Global): Report Count, data= [ 0x10 ] 16
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0x0a ] 10
Item(Global): Report Count, data= [ 0x04 ] 4
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0x13 ] 19
Item(Global): Report Count, data= [ 0x10 ] 16
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0x14 ] 20
Item(Global): Report Count, data= [ 0x10 ] 16
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0x15 ] 21
Item(Global): Report Count, data= [ 0x04 ] 4
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0x16 ] 22
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0x1a ] 26
Item(Global): Report Count, data= [ 0x10 ] 16
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0x1b ] 27
Item(Global): Report Count, data= [ 0x02 ] 2
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0x20 ] 32
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0x21 ] 33
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0x22 ] 34
Item(Global): Report Count, data= [ 0x04 ] 4
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0x25 ] 37
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0x26 ] 38
Item(Global): Report Count, data= [ 0xff ] 255
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0x27 ] 39
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0xa0 ] 160
Item(Global): Report Count, data= [ 0x04 ] 4
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0xa2 ] 162
Item(Global): Report Count, data= [ 0x04 ] 4
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0xa3 ] 163
Item(Global): Report Count, data= [ 0x10 ] 16
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0xa5 ] 165
Item(Global): Report Count, data= [ 0x10 ] 16
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0xa6 ] 166
Item(Global): Report Count, data= [ 0x3f ] 63
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0xa7 ] 167
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0xa8 ] 168
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0xa9 ] 169
Item(Global): Report Count, data= [ 0x10 ] 16
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0xaa ] 170
Item(Global): Report Count, data= [ 0x02 ] 2
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0xab ] 171
Item(Global): Report Count, data= [ 0x0b ] 11
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position
Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report ID, data= [ 0xac ] 172
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Main ): Feature, 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 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Device Status: 0x0000
(Bus Powered)
test_libhid_output:
NOTICE: hid_init(): libhid 0.2.15+20060325.0.0 is being initialized.
TRACE: hid_init(): initialising USB subsystem...
TRACE: hid_init(): scanning for USB busses...
TRACE: hid_init(): scanning for USB devices...
NOTICE: hid_init(): successfully initialised HID library.
TRACE: hid_new_HIDInterface(): creating a new HIDInterface instance...
TRACE: hid_force_open(): forcefully opening a device interface
according to matching criteria...
TRACE: hid_get_usb_handle(): acquiring handle for a USB device...
TRACE: hid_find_usb_device(): enumerating USB busses...
TRACE: hid_find_usb_device(): enumerating USB devices on bus 002...
TRACE: hid_find_usb_device(): inspecting USB device 002/001[0]...
TRACE: hid_compare_usb_device(): comparing match specifications to
USB device...
TRACE: hid_compare_usb_device(): inspecting vendor ID...
TRACE: hid_compare_usb_device(): match on vendor ID: 0x1d6b.
TRACE: hid_compare_usb_device(): inspecting product ID...
TRACE: hid_compare_usb_device(): no match on product ID.
TRACE: hid_compare_usb_device(): no custom matching function supplied.
NOTICE: hid_find_usb_device(): product 0x0002 of USB device
002/001[0] does not match 0x00a1.
TRACE: hid_find_usb_device(): enumerating USB devices on bus 007...
TRACE: hid_find_usb_device(): inspecting USB device 007/003[0]...
TRACE: hid_compare_usb_device(): comparing match specifications to
USB device...
TRACE: hid_compare_usb_device(): inspecting vendor ID...
TRACE: hid_compare_usb_device(): no match on vendor ID.
TRACE: hid_compare_usb_device(): inspecting product ID...
TRACE: hid_compare_usb_device(): no match on product ID.
TRACE: hid_compare_usb_device(): no custom matching function supplied.
NOTICE: hid_find_usb_device(): vendor 0x045e of USB device 007/003[0]
does not match 0x056a.
TRACE: hid_find_usb_device(): inspecting USB device 007/001[0]...
TRACE: hid_compare_usb_device(): comparing match specifications to
USB device...
TRACE: hid_compare_usb_device(): inspecting vendor ID...
TRACE: hid_compare_usb_device(): match on vendor ID: 0x1d6b.
TRACE: hid_compare_usb_device(): inspecting product ID...
TRACE: hid_compare_usb_device(): no match on product ID.
TRACE: hid_compare_usb_device(): no custom matching function supplied.
NOTICE: hid_find_usb_device(): product 0x0001 of USB device
007/001[0] does not match 0x00a1.
TRACE: hid_find_usb_device(): enumerating USB devices on bus 006...
TRACE: hid_find_usb_device(): inspecting USB device 006/037[0]...
TRACE: hid_compare_usb_device(): comparing match specifications to
USB device...
TRACE: hid_compare_usb_device(): inspecting vendor ID...
TRACE: hid_compare_usb_device(): match on vendor ID: 0x056a.
TRACE: hid_compare_usb_device(): inspecting product ID...
TRACE: hid_compare_usb_device(): match on product ID: 0x00a1.
TRACE: hid_compare_usb_device(): no custom matching function supplied.
NOTICE: hid_find_usb_device(): found a matching USB device 006/037[0].
TRACE: hid_force_open(): claiming USB device 006/037[0].
TRACE: hid_os_force_claim(): failed to claim USB device 006/037[0],
trying 2 more time(s)...
TRACE: hid_os_force_claim(): detaching kernel driver from USB device
006/037[0]...
TRACE: hid_os_force_claim(): trying again to claim USB device 006/037[0]...
NOTICE: hid_force_open(): successfully claimed USB device 006/037[0].
TRACE: hid_init_parser(): initialising the HID parser for USB Device
006/037[0]...
TRACE: hid_init_parser(): allocating space for HIDData structure...
TRACE: hid_init_parser(): successfully allocated memory for HIDData strcture.
TRACE: hid_init_parser(): allocating space for HIDParser structure...
TRACE: hid_init_parser(): successfully allocated memory for
HIDParser strcture.
NOTICE: hid_init_parser(): successfully initialised the HID parser
for USB Device 006/037[0].
TRACE: hid_prepare_hid_descriptor(): initialising the HID descriptor
for USB device 006/037[0]...
TRACE: hid_prepare_hid_descriptor(): retrieving HID descriptor for
USB device 006/037[0]...
NOTICE: hid_prepare_hid_descriptor(): successfully initialised HID
descriptor for USB device 006/037[0] (294 bytes).
TRACE: hid_prepare_report_descriptor(): initialising the report
descriptor for USB device 006/037[0]...
TRACE: hid_prepare_report_descriptor(): retrieving report descriptor
for USB device 006/037[0]...
NOTICE: hid_prepare_report_descriptor(): successfully initialised
report descriptor for USB device 006/037[0].
TRACE: hid_prepare_parser(): setting up the HID parser for USB
device 006/037[0]...
TRACE: hid_reset_parser(): resetting the HID parser for USB device
006/037[0]...
TRACE: hid_prepare_parser(): dumping the raw report descriptor
TRACE: hid_prepare_parser(): 0x000: 0x05 0x0d 0x09 0x01 0xa1 0x01 0x85 0x01
TRACE: hid_prepare_parser(): 0x008: 0xa1 0x00 0x06 0x00 0xff 0x09 0x01 0x15
TRACE: hid_prepare_parser(): 0x010: 0x00 0x26 0xff 0x00 0x75 0x08 0x95 0x06
TRACE: hid_prepare_parser(): 0x018: 0x81 0x02 0xc0 0x85 0x10 0xa1 0x00 0x06
TRACE: hid_prepare_parser(): 0x020: 0x00 0xff 0x09 0x01 0x15 0x00 0x26 0xff
TRACE: hid_prepare_parser(): 0x028: 0x00 0x75 0x08 0x95 0x10 0x81 0x02 0xc0
TRACE: hid_prepare_parser(): 0x030: 0x85 0x14 0xa1 0x00 0x06 0x00 0xff 0x09
TRACE: hid_prepare_parser(): 0x038: 0x01 0x15 0x00 0x26 0xff 0x00 0x75 0x08
TRACE: hid_prepare_parser(): 0x040: 0x95 0x10 0x81 0x02 0xc0 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x048: 0x03 0x95 0x04 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x050: 0x04 0x95 0x01 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x058: 0x08 0x95 0x10 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x060: 0x09 0x95 0x10 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x068: 0x0a 0x95 0x04 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x070: 0x13 0x95 0x10 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x078: 0x14 0x95 0x10 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x080: 0x15 0x95 0x04 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x088: 0x16 0x95 0x01 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x090: 0x1a 0x95 0x10 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x098: 0x1b 0x95 0x02 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x0a0: 0x20 0x95 0x01 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x0a8: 0x21 0x95 0x01 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x0b0: 0x22 0x95 0x04 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x0b8: 0x25 0x95 0x01 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x0c0: 0x26 0x95 0xff 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x0c8: 0x27 0x95 0x01 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x0d0: 0xa0 0x95 0x04 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x0d8: 0xa2 0x95 0x04 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x0e0: 0xa3 0x95 0x10 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x0e8: 0xa5 0x95 0x10 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x0f0: 0xa6 0x95 0x3f 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x0f8: 0xa7 0x95 0x01 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x100: 0xa8 0x95 0x01 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x108: 0xa9 0x95 0x10 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x110: 0xaa 0x95 0x02 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x118: 0xab 0x95 0x0b 0xb1 0x02 0x09 0x01 0x85
TRACE: hid_prepare_parser(): 0x120: 0xac 0x95 0x01 0xb1 0x02 0xc0
TRACE: hid_prepare_parser(): parsing the HID tree of USB device 006/037[0]...
NOTICE: hid_prepare_parser(): successfully set up the HID parser for
USB device 006/037[0].
NOTICE: hid_force_open(): successfully opened USB device 006/037[0].
TRACE: hid_reset_parser(): resetting the HID parser for USB device
006/037[0]...
TRACE: hid_dump_tree(): iterating the parse tree for USB device 006/037[0]...
TRACE: hid_reset_parser(): resetting the HID parser for USB device
006/037[0]...
TRACE: hid_close(): closing USB device 006/037[0]...
TRACE: hid_close(): closing handle of USB device 006/037[0]...
NOTICE: hid_close(): successfully closed USB device 006/037[0].
TRACE: hid_reset_parser(): resetting the HID parser for USB device
006/037[0]...
TRACE: hid_close(): freeing memory allocated for HID parser...
TRACE: hid_close(): resetting HIDInterface...
NOTICE: hid_cleanup(): successfully deinitialised HID library.
hid_dump_tree_output:
device identification of HIDInterface 006/046[0]:
dev_handle: 0x02357cc0
device: 0x02363430
location: 006/046
manufacturer: Wacom Co.,Ltd.
product: STU-500
parse tree of HIDInterface 006/046[0]:
path: 0x000d0001.0x00000000.0xff000001; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0xff000001; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0xff000001; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0x00000000.0x00000000; type: 0x80
path: 0x000d0001.0xff000001; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0xff000001; type: 0xb0
path: 0x000d0001.0xff000001; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0xff000001; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0xff000001; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
path: 0x000d0001.0xff000001; type: 0xb0
path: 0x000d0001.0x00000000; type: 0xb0
....
More information about the libhid-discuss
mailing list