From 408b7ee43006fd4f7f86371be0098cf7dd66ad52 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 26 Dec 2016 13:30:44 +0100 Subject: wip --- cmd/experimental/main.go | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ vehicle_gatt.go | 6 +++--- 2 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 cmd/experimental/main.go 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 {} +} diff --git a/vehicle_gatt.go b/vehicle_gatt.go index accb09c..6127470 100644 --- a/vehicle_gatt.go +++ b/vehicle_gatt.go @@ -1,7 +1,7 @@ package anki var ( - ServiceUUID, _ = ParseUUID("BE15BEEF-6186-407E-8381-0BD89C4D8DF4") - ChrReadUUID, _ = ParseUUID("BE15BEE0-6186-407E-8381-0BD89C4D8DF4") - ChrWriteUUID, _ = ParseUUID("BE15BEE1-6186-407E-8381-0BD89C4D8DF4") + ServiceUUID = "BE15BEEF-6186-407E-8381-0BD89C4D8DF4" + ChrReadUUID = "BE15BEE0-6186-407E-8381-0BD89C4D8DF4" + ChrWriteUUID = "BE15BEE1-6186-407E-8381-0BD89C4D8DF4" ) -- cgit v1.2.3