// Connect initiates a connection to the BLE peripheral. Returns true on successful connection. func (b *BLEClientAdaptor) Connect() (errs []error) { device, err := gatt.NewDevice(DefaultClientOptions...) if err != nil { log.Fatalf("Failed to open BLE device, err: %s\n", err) return } b.device = device // Register handlers. device.Handle( gatt.PeripheralDiscovered(b.DiscoveryHandler), gatt.PeripheralConnected(b.ConnectHandler), gatt.PeripheralDisconnected(b.DisconnectHandler), ) device.Init(b.StateChangeHandler) <-b.ready // TODO: make sure peripheral currently exists for this UUID before returning return nil }
func main() { flag.Parse() if len(flag.Args()) != 1 { log.Fatalf("usage: %s [options] peripheral-id\n", os.Args[0]) } d, err := gatt.NewDevice(option.DefaultClientOptions...) if err != nil { log.Fatalf("Failed to open device, err: %s\n", err) return } // Register handlers. d.Handle( gatt.PeripheralDiscovered(onPeriphDiscovered), gatt.PeripheralConnected(onPeriphConnected), gatt.PeripheralDisconnected(onPeriphDisconnected), ) d.Init(onStateChanged) <-done fmt.Println("Done") }