hidtools.hidraw module¶
-
class
HidrawDevice(device)¶ Bases:
objectA device as exposed by the kernel
hidrawmodule.hidrawallows direct access to the HID device, both for reading and writing.with open('/dev/hidraw0', 'r+b') as fd: dev = HidrawDevice(fd) while True: dev.read_events() # this blocks print(f'We received {len(dev.events)} events so far')
- Parameters
device (File) – a file-like object pointing to
/dev/hidrawX
-
name¶ The device name
-
bustype¶ The numerical bus type (
0x3for USB,0x5for Bluetooth, seelinux/input.h)
-
vendor_id¶ 16-bit numerical vendor ID
-
product_id¶ 16-bit numerical product ID
-
report_descriptor¶ The
hidtools.hid.ReportDescriptorfor this device
-
events¶ All events accumulated so far, a list of
HidrawEvent
… attribute:: time_offset
The offset to be used for recording events. By default the offset is the timestamp of the first event. When recording multiple devices, the time_offset from the first device to receive an event should be copied to the other device to ensure all recordings are in sync.
-
dump(file=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, from_the_beginning=False)¶ Format this device in a file format in the form of
R: 123 43 5 52 2 ... # the report descriptor size, followed by the integers N: the device name I: 3 124 abcd # bustype, vendor, product # comments are allowed E: 00001.000002 AB 12 34 56 # sec, usec, length, data ...
This method is designed to be called repeatedly and only print the new events on each call. To repeat the dump from the beginning, set
from_the_beginningto True.- Parameters
file (File) – the output file to write to
from_the_beginning (bool) – if True, print everything again instead of continuing where we left off
-
read_events()¶ Read events from the device and store them in the device.
This function simply calls
os.read(), it is the caller’s task to either make sure the device is set nonblocking or to handle anyKeyboardInterruptif this call does end up blocking.- Returns
a tuple of
(index, count)of theeventsadded.