The options are as follows:
GET_REPORT
command.
/dev
.
An absolute path is taken to be the literal device pathname.
GET_REPORT
.
/usr/share/misc/usb_hid_usages
The default HID usage table.
Each human interface item is named by the "page it appears in, the "usage within that page, and the list of "collections containing the item. Each collection in turn is also identified by page, and the usage within that page.
On the usbhidctl command line the page name is separated from the usage name with the character `:'. The collections are separated by the character `.'.
As an alternative notation in items on the command line, the native numeric value for the page name or usage can be used instead of the full human readable page name or usage name. Numeric values can be specified in decimal, octal or hexadecimal.
Some devices give the same name to more than one item. usbhidctl supports isolating each item by appending a `#'. character and a decimal item instance number, starting at zero.
Generic_Desktop:Mouse.Generic_Desktop:Pointer.Button:Button_2
An item can generally be named by omitting one or more of the page names.
For example the
"button 2
item would usually just be referred to on the command line as:
usbhidctl
-f
/dev/mouse
Mouse.Pointer.Button_2
Items can also be named by referring to parts of the item name with the
numeric representation of the native HID usage identifiers.
This is most
useful when items are missing from the HID usage table.
The page identifier for the
"Generic Desktop
page is 1, and the usage identifier for the usage
"Button_2
is 2, so the following can be used to refer to the
"button 2
item:
usbhidctl
-f
/dev/mouse
1:Mouse.1:Pointer.Button:2
Devices with human interface outputs can be manipulated with the
-w
option.
For example, some USB mice have a Light Emitting Diode under software
control as usage 2 under page 0xffff, in the
"Mouse
collection.
The following can be used to switch this LED off:
usbhidctl
-f
/dev/mouse
-w
Mouse.0xffff:2=0
The output below is from a device that uses the same name repeatedly.
% usbhidctl -f /dev/uhid0 -a
Consumer_Control.Volume_Up=0
Consumer_Control.Volume_Down=0
Consumer_Control.Mute=0
Consumer_Control.Unassigned=0
Consumer_Control.Unassigned=0
The
"Consumer_Control.Unassigned
name is used twice.
Each can be individually accessed by providing an instance number.
For example, to set the value for the first item:
usbhidctl
-f
/dev/uhid0
-w
'Consumer_Control.Unassigned#0=1'