aboutsummaryrefslogtreecommitdiff
path: root/cmd/anki/anki.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/anki/anki.go')
-rw-r--r--cmd/anki/anki.go53
1 files changed, 53 insertions, 0 deletions
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
+}