[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