Working Android version.
This commit is contained in:
parent
c6a4d14f34
commit
fa469ac9b9
9
go.mod
Normal file
9
go.mod
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
module git.wow.st/gmp/hrm
|
||||||
|
|
||||||
|
go 1.13
|
||||||
|
|
||||||
|
require (
|
||||||
|
gioui.org v0.0.0-20191126175243-2ca2e5462f16
|
||||||
|
git.wow.st/gmp/ble v0.0.0-20191127154437-321b94a48682
|
||||||
|
gopkg.in/yaml.v2 v2.2.7
|
||||||
|
)
|
32
go.sum
Normal file
32
go.sum
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
||||||
|
gioui.org v0.0.0-20191126175243-2ca2e5462f16 h1:p31rtmKm51xpj2QtqGNlljAyHEP1oStU8MDRl2Dv7Gs=
|
||||||
|
gioui.org v0.0.0-20191126175243-2ca2e5462f16/go.mod h1:KqFFi2Dq5gYA3FJ0sDOt8OBXoMsuxMtE8v2f0JExXAY=
|
||||||
|
git.wow.st/gmp/ble v0.0.0-20191127154437-321b94a48682 h1:8b9kt3AbWqpJwLukguXBGyUbidbgxpxrToUSX5rUSDE=
|
||||||
|
git.wow.st/gmp/ble v0.0.0-20191127154437-321b94a48682/go.mod h1:Fh9BYe6AckJS7dzv2LFPr/wSYVMROUwmtc01VyQmuZo=
|
||||||
|
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||||
|
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
|
||||||
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
|
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
|
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
|
golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3 h1:n9HxLrNxWWtEb1cA950nuEEj3QnKbtsCJ6KjcgisNUs=
|
||||||
|
golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE=
|
||||||
|
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
||||||
|
golang.org/x/image v0.0.0-20190802002840-cff245a6509b h1:+qEpEAPhDZ1o0x3tHzZTQDArnOixOzGD9HUJfcg0mb4=
|
||||||
|
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||||
|
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
|
||||||
|
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
|
||||||
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
|
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
|
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a h1:aYOabOQFp6Vj6W1F80affTUvO9UxmJRx8K0gsfABByQ=
|
||||||
|
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
|
||||||
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
|
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/yaml.v2 v2.2.7 h1:VUgggvou5XRW9mHwD/yXxIYSMtY0zoKQf/v226p2nyo=
|
||||||
|
gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
16
main.go
16
main.go
|
@ -60,9 +60,12 @@ func saveConfig() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func hrDecode(x []byte) int {
|
func hrDecode(x []byte) int {
|
||||||
|
if len(x) < 4 {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
flags := x[0]
|
flags := x[0]
|
||||||
if flags&0x80 != 0 { // uint16 format
|
if flags&0x80 != 0 { // uint16 format
|
||||||
return int(binary.BigEndian.Uint16(x[1:2]))
|
return int(binary.BigEndian.Uint16(x[1:3]))
|
||||||
} else {
|
} else {
|
||||||
return int(x[1])
|
return int(x[1])
|
||||||
}
|
}
|
||||||
|
@ -88,6 +91,7 @@ func eventloop() {
|
||||||
margin := layout.UniformInset(unit.Dp(10))
|
margin := layout.UniformInset(unit.Dp(10))
|
||||||
|
|
||||||
b := ble.NewBLE()
|
b := ble.NewBLE()
|
||||||
|
b.Enable(w)
|
||||||
|
|
||||||
state := "starting"
|
state := "starting"
|
||||||
var hr int
|
var hr int
|
||||||
|
@ -247,7 +251,8 @@ func eventloop() {
|
||||||
}
|
}
|
||||||
case ble.DiscoverCharacteristicEvent:
|
case ble.DiscoverCharacteristicEvent:
|
||||||
fmt.Printf("DiscoverCharacteristic %s\n", e.Gatt.UUID)
|
fmt.Printf("DiscoverCharacteristic %s\n", e.Gatt.UUID)
|
||||||
if e.Gatt.UUID == "2A37" {
|
//if e.Gatt.UUID == "2A37" {
|
||||||
|
if e.Gatt.IsHRV() {
|
||||||
fmt.Printf("Found heart rate value\n")
|
fmt.Printf("Found heart rate value\n")
|
||||||
e.Peripheral.SetNotifyValue(e.Characteristic)
|
e.Peripheral.SetNotifyValue(e.Characteristic)
|
||||||
}
|
}
|
||||||
|
@ -257,13 +262,6 @@ func eventloop() {
|
||||||
w.Invalidate() // refresh on any Bluetooth event
|
w.Invalidate() // refresh on any Bluetooth event
|
||||||
case e := <-w.Events():
|
case e := <-w.Events():
|
||||||
switch e := e.(type) {
|
switch e := e.(type) {
|
||||||
case system.StageEvent:
|
|
||||||
if e.Stage == system.StageRunning {
|
|
||||||
//Do not block the main loop
|
|
||||||
go func() {
|
|
||||||
b.Enable(w)
|
|
||||||
}()
|
|
||||||
}
|
|
||||||
case system.DestroyEvent:
|
case system.DestroyEvent:
|
||||||
return
|
return
|
||||||
case system.FrameEvent:
|
case system.FrameEvent:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user