Bug fix: save java peripheral object in goOnConnect().

This commit is contained in:
Greg 2019-12-10 09:04:58 -05:00
parent 57f19407dd
commit 56813159c4
1 changed files with 10 additions and 3 deletions

View File

@ -277,7 +277,7 @@ func goOnScan(cname, cid *C.char, rssi C.int, dev C.jobject) {
func goOnConnect(p C.jobject, cid *C.char) {
id := C.GoString(cid)
peripheral := gBLE.retrievePeripheral(id)
peripheral := gBLE.retrievePeripheral(id, p)
if peripheral.peripheral == 0 {
log.Printf("goOnConnect(): peripheral == null")
@ -371,15 +371,22 @@ func goOnCharacteristicChanged(cid, ccuuid *C.char, char C.jobject, cvalue *C.ch
// internal convenience functions
func (b *BLE) retrievePeripheral(id string) Peripheral {
func (b *BLE) retrievePeripheral(id string, devs ...C.jobject) Peripheral {
var dev C.jobject
if len(devs) > 0 {
dev = devs[0]
}
found := false
var peripheral Peripheral
gBLE.peripherals.Lock()
for _, item := range gBLE.peripherals.items {
for i, item := range gBLE.peripherals.items {
if item.p.Identifier == id {
peripheral = item.p
peripheral.peripheral = dev
found = true
gBLE.peripherals.items[i].p = peripheral
break
}
}