blob: fd884302358ce4d3cfeac9a33999a03bfad597e0 [file] [log] [blame]
package service
import (
"fmt"
"log"
"time"
"github.com/paypal/gatt"
)
func NewCountService() *gatt.Service {
n := 0
s := gatt.NewService(gatt.MustParseUUID("09fc95c0-c111-11e3-9904-0002a5d5c51b"))
s.AddCharacteristic(gatt.MustParseUUID("11fac9e0-c111-11e3-9246-0002a5d5c51b")).HandleReadFunc(
func(rsp gatt.ResponseWriter, req *gatt.ReadRequest) {
fmt.Fprintf(rsp, "count: %d", n)
n++
})
s.AddCharacteristic(gatt.MustParseUUID("16fe0d80-c111-11e3-b8c8-0002a5d5c51b")).HandleWriteFunc(
func(r gatt.Request, data []byte) (status byte) {
log.Println("Wrote:", string(data))
return gatt.StatusSuccess
})
s.AddCharacteristic(gatt.MustParseUUID("1c927b50-c116-11e3-8a33-0800200c9a66")).HandleNotifyFunc(
func(r gatt.Request, n gatt.Notifier) {
cnt := 0
for !n.Done() {
fmt.Fprintf(n, "Count: %d", cnt)
cnt++
time.Sleep(time.Second)
}
})
return s
}