From b5588b20d8e0bb2a29ac5a656b9b9338090a46e4 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 19 Dec 2016 01:00:45 +0100 Subject: wip --- cmd/anki/anki | Bin 0 -> 1881148 bytes cmd/anki/anki.go | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100755 cmd/anki/anki create mode 100644 cmd/anki/anki.go (limited to 'cmd') diff --git a/cmd/anki/anki b/cmd/anki/anki new file mode 100755 index 0000000..9d18400 Binary files /dev/null and b/cmd/anki/anki differ diff --git a/cmd/anki/anki.go b/cmd/anki/anki.go new file mode 100644 index 0000000..33799e7 --- /dev/null +++ b/cmd/anki/anki.go @@ -0,0 +1,53 @@ +package main + +import ( + "log" + + "github.com/dim13/goble" +) + +func main() { + ble := goble.New() + ble.SetVerbose(true) + ble.On(goble.ALL, func(ev goble.Event) (done bool) { + log.Printf("ALL: %+v", ev) + return + }) + ble.On("stateChange", func(ev goble.Event) (done bool) { + log.Println("State:", ev.State) + switch ev.State { + case "poweredOn": + ble.StartScanning(nil, false) + default: + ble.StopScanning() + done = true + } + return + }) + ble.On("discover", func(ev goble.Event) (done bool) { + log.Printf("Discover: %+v", ev) + for _, sid := range ev.Peripheral.Advertisement.ServiceUuids { + if sid == "be15beef6186407e83810bd89c4d8df4" { + ble.Connect(ev.DeviceUUID) + } + } + return + }) + ble.On("connect", func(ev goble.Event) (done bool) { + log.Println("Connect:", ev.DeviceUUID) + log.Println("SUIDs:", ev.Peripheral.Advertisement.ServiceUuids) + ble.DiscoverServices(ev.DeviceUUID, nil) + return + }) + ble.On("servicesDiscover", func(ev goble.Event) (done bool) { + for sid, service := range ev.Peripheral.Services { + log.Printf("SID: %+v", sid) + ble.DiscoverCharacterstics(ev.DeviceUUID, service.Uuid, nil) + } + return + }) + ble.Init() + + done := make(chan bool) + <-done +} -- cgit v1.2.3