Documentation
This commit is contained in:
parent
321b94a486
commit
8a29bf3351
54
README.go
Normal file
54
README.go
Normal file
|
@ -0,0 +1,54 @@
|
|||
# BLE
|
||||
|
||||
A modern, cross-platform Go library for Bluetooth Low Energy
|
||||
|
||||
This package is a working but incomplete interface for access to Bluetooth
|
||||
Low Energy. It is intended to support multiple operating systems with a
|
||||
uniform API. Currently, MacOS and Android are supported. Android support
|
||||
requires the use of [Gio](https://gioui.org).
|
||||
|
||||
The API is asyncrhonous and event driven. To access Bluetooth hardware,
|
||||
first create a `BLE` variable with `NewBLE()`. On Android, you must also
|
||||
call `Enable` with a pointer to your Gio Window.
|
||||
|
||||
```go
|
||||
import (
|
||||
...
|
||||
"git.wow.st/gmp/ble"
|
||||
"gioui.org/app"
|
||||
)
|
||||
|
||||
func runloop() {
|
||||
b := ble.NewBle()
|
||||
w := app.NewWindow()
|
||||
b.Enable(w)
|
||||
...
|
||||
```
|
||||
|
||||
Once enabled, you can call the primary API functions, `Scan`, `StopScan`,
|
||||
`Connect`, and `CancelConnection`. You can also query the state of the
|
||||
Bluetooth hardware by calling `State`.
|
||||
|
||||
Calling `Events` on your `BLE` object returns a channel on which API events
|
||||
are be delivered. These events notify your program when the state of the
|
||||
BLE hardware changes (e.g. powered on or off), peripherals are connected,
|
||||
services or characteristics are discovered, or values for characteristics
|
||||
are updated.
|
||||
|
||||
Using Gio, your main event loop will look something like this:
|
||||
|
||||
```
|
||||
for {
|
||||
select {
|
||||
case e := <-b.Events():
|
||||
switch e := e.(type) {
|
||||
// Handle BLE Events
|
||||
}
|
||||
}
|
||||
case e := <-w.Events():
|
||||
switch e := e.(type) {
|
||||
// Handle Gio events
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
Loading…
Reference in New Issue
Block a user