aboutsummaryrefslogtreecommitdiff
path: root/cmd/experimental/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/experimental/main.go')
-rw-r--r--cmd/experimental/main.go51
1 files changed, 51 insertions, 0 deletions
diff --git a/cmd/experimental/main.go b/cmd/experimental/main.go
new file mode 100644
index 0000000..31181af
--- /dev/null
+++ b/cmd/experimental/main.go
@@ -0,0 +1,51 @@
+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 {}
+}