package main import ( "log" "mystuff/anki" "github.com/currantlabs/gatt" ) func onStateChange(d gatt.Device, s gatt.State) { log.Println("State", s) switch s { case gatt.StatePoweredOn: log.Println("Scan...") d.Scan([]gatt.UUID{}, false) default: d.StopScanning() } } func onDiscover(p gatt.Peripheral, a *gatt.Advertisement, rssi int) { sid := gatt.MustParseUUID(anki.ServiceUUID) for _, s := range a.Services { if s.Equal(sid) { log.Println("Found", p.ID()) p.Device().Connect(p) } } } func onConnect(p gatt.Peripheral, err error) { defer p.Device().CancelConnection(p) ss, err := p.DiscoverServices(nil) if err != nil { log.Println(err) return } for _, s := range ss { log.Println(s) } } func main() { d, err := gatt.NewDevice() if err != nil { log.Fatal(err) } d.Handle(gatt.PeripheralDiscovered(onDiscover)) d.Init(onStateChange) select {} }