Documentation
¶
Overview ¶
Package hid provides an interface for USB HID devices.
Index ¶
- Variables
- func Supported() bool
- type Device
- func (dev *Device) Close() error
- func (dev *Device) GetFeatureReport(b []byte) (int, error)
- func (dev *Device) GetInputReport(b []byte) (int, error)
- func (dev *Device) Read(b []byte) (int, error)
- func (dev *Device) ReadTimeout(b []byte, timeout int) (int, error)
- func (dev *Device) SendFeatureReport(b []byte) (int, error)
- func (dev *Device) SetNonblocking(b bool) error
- func (dev *Device) Write(b []byte) (int, error)
- type DeviceInfo
Constants ¶
This section is empty.
Variables ¶
var ErrDeviceClosed = errors.New("hid: device closed")
ErrDeviceClosed is returned for operations where the device closed before or during the execution.
var ErrUnsupportedPlatform = errors.New("hid: unsupported platform")
ErrUnsupportedPlatform is returned for all operations where the underlying operating system is not supported by the library.
Functions ¶
Types ¶
type Device ¶
type Device struct { DeviceInfo // Embed the infos for easier access // contains filtered or unexported fields }
Device is a live HID USB connected device handle.
func (*Device) GetFeatureReport ¶
GetFeatureReport retrieves a feature report from a HID device
Set the first byte of []b to the Report ID of the report to be read. Make sure to allow space for this extra byte in []b. Upon return, the first byte will still contain the Report ID, and the report data will start in b[1].
func (*Device) GetInputReport ¶
GetInputReport retrieves a input report from a HID device
Set the first byte of []b to the Report ID of the report to be read. Make sure to allow space for this extra byte in []b. Upon return, the first byte will still contain the Report ID, and the report data will start in b[1].
func (*Device) Read ¶
Read is a wrapper to ReadTimeout that will check if device blocking is enabled and set timeout accordingly.
This reproduces C.hid_read() behaviour in wrapping hid_read_timeout: return hid_read_timeout(dev, data, length, (dev->blocking)? -1: 0);
func (*Device) ReadTimeout ¶
ReadTimeout retrieves an input report from a HID device with a timeout. If timeout is -1 a blocking read is performed, else a non-blocking that waits timeout milliseconds
func (*Device) SendFeatureReport ¶
SendFeatureReport sends a feature report to a HID device
Feature reports are sent over the Control endpoint as a Set_Report transfer. The first byte of b must contain the Report ID. For devices which only support a single report, this must be set to 0x0. The remaining bytes contain the report data. Since the Report ID is mandatory, calls to SendFeatureReport() will always contain one more byte than the report contains. For example, if a hid report is 16 bytes long, 17 bytes must be passed to SendFeatureReport(): the Report ID (or 0x0, for devices which do not use numbered reports), followed by the report data (16 bytes). In this example, the length passed in would be 17.
func (*Device) SetNonblocking ¶
SetNonblocking sets the device handle to be non-blocking.
In non-blocking mode calls to Read() will return immediately with a value of 0 if there is no data to be read. In blocking mode, Read() will wait (block) until there is data to read before returning.
type DeviceInfo ¶
type DeviceInfo struct { Path string // Platform-specific device path LegacyMacPath string VendorID uint16 // Device Vendor ID ProductID uint16 // Device Product ID Release uint16 // Device Release Number in binary-coded decimal, also known as Device Version Number Serial string // Serial Number Manufacturer string // Manufacturer String Product string // Product string UsagePage uint16 // Usage Page for this Device/Interface (Windows/Mac only) Usage uint16 // Usage for this Device/Interface (Windows/Mac only) // The USB interface which this logical device // represents. Valid on both Linux implementations // in all cases, and valid on the Windows implementation // only if the device contains more than one interface. Interface int }
DeviceInfo is a hidapi info structure.
func Enumerate ¶
func Enumerate(vendorID uint16, productID uint16) []DeviceInfo
Enumerate returns a list of all the HID devices attached to the system which match the vendor and product id:
- If the vendor id is set to 0 then any vendor matches.
- If the product id is set to 0 then any product matches.
- If the vendor and product id are both 0, all HID devices are returned.
func (DeviceInfo) Open ¶
func (info DeviceInfo) Open() (*Device, error)
Open connects to an HID device by its path name.