Developer Tools
Command-line tools for HID device development.
Overview
The hid_tools package provides three essential tools:
validate_schema: YAML schema validation
inspect_device: Live USB HID device monitor
generate_hid_descriptor: HID descriptor generator
validate_schema
Validates YAML schemas before code generation.
Usage
# Validate a schema
ros2 run hid_tools validate_schema schema/hid_device.yaml
# Strict mode (warnings as errors)
ros2 run hid_tools validate_schema --strict schema/hid_device.yaml
Features
Required field checking
Type validation
Report ID validation
Duplicate field detection
Best practice warnings
inspect_device
Live USB HID device inspector.
Usage
# List all HID devices
ros2 run hid_tools inspect_device --list
# Monitor a specific device
ros2 run hid_tools inspect_device --vid 0xCAFE --pid 0x4000
# Read 10 reports
ros2 run hid_tools inspect_device --vid 0xCAFE --pid 0x4000 --count 10
# Read for 5 seconds
ros2 run hid_tools inspect_device --vid 0xCAFE --pid 0x4000 --duration 5.0
# Send output report
ros2 run hid_tools inspect_device --vid 0xCAFE --pid 0x4000 \
--send 1:0x00,0x00,0x80,0x3F
Features
Device enumeration
Live report monitoring
Output report sending
Multiple data decodings
Rate statistics
generate_hid_descriptor
Generates HID descriptor C code from schema.
Usage
# Print summary
ros2 run hid_tools generate_hid_descriptor schema/hid_device.yaml
# Generate header file
ros2 run hid_tools generate_hid_descriptor schema/hid_device.yaml -o hid_desc.h
# Print full descriptor
ros2 run hid_tools generate_hid_descriptor schema/hid_device.yaml --print
Features
Complete HID descriptor generation
Type-safe report structures
Firmware-ready output
Standalone operation
For more examples, see the examples section.