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

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