rdg.lua is a report descriptor generator (or 'compiler') written in lua, works with Lua 5.3+ which has bitwise operations built-in.
./rdg.lua [options] <input_file>
lua5.3 ./rdg.lua [options] <input_file>See ./rdg.lua -h for more details.
For example:
# convert report descriptor source code file 'keyboard.rds' to binary file 'keyboard.rdb'
./rdg.lua -o ./keyboard.rdb ./keyboard.rdsSource code file format.
See rds.md
Binary compiled file, which can be directly written to 'report_desc' in configfs.
Main Items
- Input()
- Output()
- Feature()
- Collection()
- End_Collection()
Global Items
- Usage_Page()
- Logical*()
- Physical*()
- Unit_Exponent()
- Unit()
- Report_Size()
- Report_ID()
- Report_Count()
- Push()
- Pop()
Local Items
- Usage*()
- Designator*()
- String*()
- Delimiter()
- Generic Desktop
- Simulation Controls
- VR Controls
- Sport Controls
- Game Controls
- Generic Device Controls
- Keyboard/Keypad
- LED
- Button
- Ordinal
- Telephony Device
- Consumer
- Digitizers
- Haptics
- Physical Input Device
- Unicode
- SoC
- Eye and Head Trackers
- Auxiliary Display
- Sensors
- Medical Instrument
- Braille Display
- Lighting And Illumination
- Minitor
- Minitor Enumerated
- VESA Virtual Controls
- Power
- Battery System
- Barcode Scanner
- Scales
- Magnetic Stripe Reader
- Camera Control
- Aecade
- Gaming Device
- FIDO Alliance
github.com, HID-PID Descriptor tool
usb.org, Device Class Definition for Human Interface Devices (HID) Firmware Specification
usb.org, HID Usage Tables FOR Universal Serial Bus (USB)
gist.github.com, USB HID keycode table + JSON, extracted from HID Usage Tables v1.21