From 0cd8982a904a53ad280657f9047edf9ed06743b0 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sat, 23 May 2015 17:51:25 +0200 Subject: OS-dependent build --- usb.go | 97 ------------------------------------------------------------------ 1 file changed, 97 deletions(-) delete mode 100644 usb.go (limited to 'usb.go') diff --git a/usb.go b/usb.go deleted file mode 100644 index 96612b6..0000000 --- a/usb.go +++ /dev/null @@ -1,97 +0,0 @@ -package robo - -import ( - "bufio" - "errors" - "log" - - "github.com/kylelemons/gousb/usb" -) - -type USB struct { - ctx *usb.Context - dev *usb.Device -} - -var ( - craftRobo = "Craft ROBO" - graphtec = usb.ID(0x0b4d) - cc200_20 = usb.ID(0x110a) - cc300_20 = usb.ID(0x111a) - silhouette_sd_1 = usb.ID(0x111c) - silhouette_sd_2 = usb.ID(0x111d) - silhouette_portrait = usb.ID(0x1123) - debug = 3 -) - -func init() { - // bump timeouts - usb.DefaultReadTimeout *= 60 - usb.DefaultWriteTimeout *= 300 -} - -func cc100(desc *usb.Descriptor) bool { - if desc.Vendor == graphtec { - switch desc.Product { - case cc200_20, cc300_20, - silhouette_sd_1, - silhouette_sd_2, - silhouette_portrait: - return true - } - } - return false -} - -func NewUSB() (USB, error) { - ctx := usb.NewContext() - ctx.Debug(debug) - devs, err := ctx.ListDevices(cc100) - if err != nil { - log.Fatal(err) - } - if len(devs) != 1 { - for _, dev := range devs { - dev.Close() - } - return USB{}, errors.New("Cannot find " + craftRobo) - } - return USB{ctx, devs[0]}, nil -} - -func (d USB) Close() { - d.dev.Close() - d.ctx.Close() -} - -func (d USB) Handle() *bufio.ReadWriter { - var ( - r *bufio.Reader - w *bufio.Writer - ) - - for _, c := range d.dev.Configs { - for _, i := range c.Interfaces { - for _, s := range i.Setups { - for _, ep := range s.Endpoints { - e, err := d.dev.OpenEndpoint( - c.Config, - i.Number, - s.Number, - ep.Address) - if err != nil { - log.Fatal(err) - } - switch ep.Direction() { - case usb.ENDPOINT_DIR_OUT: - w = bufio.NewWriter(e) - case usb.ENDPOINT_DIR_IN: - r = bufio.NewReader(e) - } - } - } - } - } - - return bufio.NewReadWriter(r, w) -} -- cgit v1.2.3