aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/GeertJohan/go.hid/readme.md
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/GeertJohan/go.hid/readme.md')
-rw-r--r--vendor/github.com/GeertJohan/go.hid/readme.md104
1 files changed, 104 insertions, 0 deletions
diff --git a/vendor/github.com/GeertJohan/go.hid/readme.md b/vendor/github.com/GeertJohan/go.hid/readme.md
new file mode 100644
index 0000000..994d43e
--- /dev/null
+++ b/vendor/github.com/GeertJohan/go.hid/readme.md
@@ -0,0 +1,104 @@
+
+**This package is discontinued**
+This package does not work with Go1.6+. I won't be updating this package since a better alternative is already available, please take a look at [karalabe/hid](https://github.com/karalabe/hid).
+
+
+## go.hid
+This [go](http://golang.org) package wraps the [signal11/hidapi](https://github.com/signal11/hidapi) and provides communication with USB Human Interface Devices.
+
+**This package is not completely tested yet!**
+
+### Installation:
+This project depends on libhidapi, which must be installed manually.
+```shell
+git clone git@github.com:signal11/hidapi.git
+cd hidapi
+./bootstrap
+./configure
+```
+
+Now change directory depending on your OS.
+
+For linux + hidraw: `cd linux`. (requires libudev. Package libudev-dev on debian/ubuntu.)
+
+For linux + libusb: `cd libusb`. (requires libusb. Package libusb-1.0-0-dev on debian/ubuntu.)
+
+For mac: `cd mac`.
+
+For windows: `cd windows`.
+
+Make and install.
+For linux/mac:
+```
+make
+sudo make install
+```
+For windows:
+```
+run some wizzard, probably.. (PR on readme is very welcome)
+```
+
+Lastly, for linux only:
+Create a symlink pointing libhidapi.so to the version you chose:
+
+For linux + hidraw: `cd /usr/local/lib; sudo ln -s libhidapi-hidraw.so libhidapi.so`
+
+For linux + libusb: `cd /usr/local/lib; sudo ln -s libhidapi-libusb.so libhidapi.so`
+
+For more instructions on libhidapi, please visit [signal11/hidapi](https://github.com/signal11/hidapi).
+
+When you have installed hidapi lib, install this package with `go get github.com/GeertJohan/go.hid`.
+
+### Documentation:
+[godoc.org/github.com/GeertJohan/go.hid](https://godoc.org/github.com/GeertJohan/go.hid)
+
+### Example:
+This is a simple example on how to use feature reports. For a working example view [GeertJohan/mgl](https://github.com/GeertJohan/mgl).
+```go
+package main
+
+import(
+ "log"
+ "github.com/GeertJohan/go.hid"
+)
+
+func main() {
+ // open the MSI GT leds device
+ leds, err := hid.Open(0x1770, 0xff00, "")
+ if err != nil {
+ log.Fatalf("Could not open leds device: %s", err)
+ }
+ defer leds.Close()
+
+ // create a feature report. This is always 8*n+1 bytes long, where n is >1.
+ data := make([]byte, 9)
+ data[0] = 0x42 // report ID
+ data[1] = 0x00 // dummy data
+ data[2] = 0x01 // dummy data
+ data[3] = 0x02 // dummy data
+ data[4] = 0x03 // dummy data
+ data[5] = 0x04 // dummy data
+ data[6] = 0x05 // dummy data
+ data[7] = 0x06 // dummy data
+ data[8] = 0x07 // dummy data
+
+ _, err := leds.SendFeatureReport(data)
+ if err != nil {
+ log.Fatalf("Could not send feature report to do dummy action. %s\n", err)
+ }
+}
+```
+
+### License:
+The go code in this project is licenced under a a Simplified BSD license. Please read the [LICENSE file](LICENSE).
+
+### TODO:
+At this point, the package works for linux with hidraw.
+hidapi itself is already cross-platform, so making this package work cross-platform shouldn't be a lot of work.
+- Make this package work cross-platform.
+- Add better support for hidapi init() and exit(). (At this time hidapi's init() is called once on first Open() call)
+- Add tests (find if there is a usb-hid dummy device that has expected input/output and works consistently within an OS (we can write a test file for each OS seperated))
+- Better example (preferably with a dummy test device)
+
+### History:
+I started this project to be able to communicate with the MSI leds device in the MSI GT780DX laptop. For more information about that project, visit [GeertJohan/mgl](https://github.com/GeertJohan/mgl).