Skip to content

Commit 7f3b96c

Browse files
ysoldakdeadprogram
authored andcommitted
adapter: address
1 parent 501b0ae commit 7f3b96c

File tree

4 files changed

+34
-2
lines changed

4 files changed

+34
-2
lines changed

adapter_linux.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
package bluetooth
77

88
import (
9+
"errors"
10+
911
"github.com/muka/go-bluetooth/api"
1012
"github.com/muka/go-bluetooth/bluez/profile/adapter"
1113
)
@@ -41,3 +43,14 @@ func (a *Adapter) Enable() (err error) {
4143
}
4244
return nil
4345
}
46+
47+
func (a *Adapter) Address() (MACAddress, error) {
48+
if a.adapter == nil {
49+
return MACAddress{}, errors.New("adapter not enabled")
50+
}
51+
mac, err := ParseMAC(a.adapter.Properties.Address)
52+
if err != nil {
53+
return MACAddress{}, err
54+
}
55+
return MACAddress{MAC: mac}, nil
56+
}

adapter_nrf51.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,3 +106,12 @@ func handleEvent() {
106106
}
107107
}
108108
}
109+
110+
func (a *Adapter) Address() (MACAddress, error) {
111+
var addr C.ble_gap_addr_t
112+
errCode := C.sd_ble_gap_address_get(&addr)
113+
if errCode != 0 {
114+
return MACAddress{}, Error(errCode)
115+
}
116+
return MACAddress{MAC: addr.addr}, nil
117+
}

adapter_nrf528xx.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,12 @@ func (a *Adapter) enable() error {
5454
errCode = C.sd_ble_enable(&appRAMBase)
5555
return makeError(errCode)
5656
}
57+
58+
func (a *Adapter) Address() (MACAddress, error) {
59+
var addr C.ble_gap_addr_t
60+
errCode := C.sd_ble_gap_addr_get(&addr)
61+
if errCode != 0 {
62+
return MACAddress{}, Error(errCode)
63+
}
64+
return MACAddress{MAC: addr.addr}, nil
65+
}

examples/advertisement/main.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@ func main() {
1717
must("start adv", adv.Start())
1818

1919
println("advertising...")
20+
address, _ := adapter.Address()
2021
for {
21-
// Sleep forever.
22-
time.Sleep(time.Hour)
22+
println("Go Bluetooth /", address.MAC.String())
23+
time.Sleep(time.Second)
2324
}
2425
}
2526

0 commit comments

Comments
 (0)