Documentation
¶
Overview ¶
Package usb provide interfaces for generic USB devices.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrDeviceClosed = errors.New("usb: device closed")
ErrDeviceClosed is returned for operations where the device closed before or during the execution.
var ErrUnsupportedPlatform = errors.New("usb: 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 interface {
// Close releases the USB device handle.
Close() error
// Write sends a binary blob to a USB device. For HID devices write uses reports,
// for low level USB write uses interrupt transfers.
Write(b []byte) (int, error)
// Read retrieves a binary blob from a USB device. For HID devices read uses
// reports, for low level USB read uses interrupt transfers.
Read(b []byte) (int, error)
}
Device is a generic USB device interface. It may either be backed by a USB HID device or a low level raw (libusb) device.
type DeviceInfo ¶
type DeviceInfo struct {
Path string // Platform-specific device path
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
// contains filtered or unexported fields
}
DeviceInfo contains all the information we know about a USB device. In case of HID devices, that might be a lot more extensive (empty fields for raw USB).
func Enumerate ¶
func Enumerate(vendorID uint16, productID uint16) ([]DeviceInfo, error)
Enumerate returns a list of all the USB devices attached to the system which match the vendor and product id. On platforms that this file implements the function is a noop and returns an empty list always.
func EnumerateHid ¶
func EnumerateHid(vendorID uint16, productID uint16) ([]DeviceInfo, error)
EnumerateHid returns a list of all the HID devices attached to the system which match the vendor and product id. On platforms that this file implements the function is a noop and returns an empty list always.
func EnumerateRaw ¶
func EnumerateRaw(vendorID uint16, productID uint16) ([]DeviceInfo, error)
EnumerateRaw returns a list of all the USB devices attached to the system which match the vendor and product id. On platforms that this file implements the function is a noop and returns an empty list always.
func (DeviceInfo) Open ¶
func (info DeviceInfo) Open() (Device, error)
Open connects to a previously discovered USB device.
type HidDevice ¶
type HidDevice struct {
DeviceInfo // Embed the infos for easier access
}
HidDevice is a live HID USB connected device handle. On platforms that this file implements, the type lacks the actual HID device and all methods are noop.
func (*HidDevice) Close ¶
Close releases the HID USB device handle. On platforms that this file implements, the method is just a noop.
type RawDevice ¶
type RawDevice struct {
DeviceInfo // Embed the infos for easier access
}
RawDevice is a live raw USB connected device handle. On platforms that this file implements, the type lacks the actual USB device and all methods are noop.
func (*RawDevice) Close ¶
Close releases the USB device handle. On platforms that this file implements, the method is just a noop.