ms-tools/cli/hid.go
Bertold Van den Bergh 680e4f77ab Initial commit of code
2021-07-25 23:09:00 +02:00

41 lines
789 B
Go

package main
import (
"os"
"github.com/sstallion/go-hid"
"errors"
)
func SearchDevice(foundHandler func(info *hid.DeviceInfo) error) error {
return hid.Enumerate(uint16(CLI.VID), uint16(CLI.PID), func(info *hid.DeviceInfo) error {
if CLI.Serial != "" && info.SerialNbr != CLI.Serial {
return nil
}
if CLI.RawPath != "" && info.Path != CLI.RawPath {
return nil
}
return foundHandler(info)
})
}
func OpenDevice() (*hid.Device, error) {
var dev *hid.Device
err := SearchDevice(func(info *hid.DeviceInfo) error {
d, err := hid.Open(info.VendorID, info.ProductID, info.SerialNbr)
if err == nil {
dev = d
return errors.New("Done")
}
return err
})
if dev != nil {
return dev, nil
}
if err == nil {
err = os.ErrNotExist
}
return nil, err
}