Compare commits
2 Commits
90ab682a44
...
6da0474e59
Author | SHA1 | Date | |
---|---|---|---|
6da0474e59 | |||
a6cc776a0d |
|
@ -326,7 +326,7 @@ func goOnDiscoverService(cid, cuuid *C.char, serv C.jobject) {
|
||||||
}
|
}
|
||||||
|
|
||||||
//export goOnDiscoverCharacteristic
|
//export goOnDiscoverCharacteristic
|
||||||
func goOnDiscoverCharacteristic(cid, csuuid *C.char, serv C.jobject, ccuuid *C.char, char C.jobject) {
|
func goOnDiscoverCharacteristic(cid, csuuid *C.char, serv C.jobject, ccuuid *C.char, characteristic C.jobject) {
|
||||||
id := C.GoString(cid)
|
id := C.GoString(cid)
|
||||||
suuid := C.GoString(csuuid)
|
suuid := C.GoString(csuuid)
|
||||||
cuuid := C.GoString(ccuuid)
|
cuuid := C.GoString(ccuuid)
|
||||||
|
@ -339,34 +339,34 @@ func goOnDiscoverCharacteristic(cid, csuuid *C.char, serv C.jobject, ccuuid *C.c
|
||||||
service: serv,
|
service: serv,
|
||||||
}
|
}
|
||||||
|
|
||||||
characteristic := Characteristic{
|
ch := Characteristic{
|
||||||
UUID: cuuid,
|
UUID: cuuid,
|
||||||
characteristic: char,
|
characteristic: characteristic,
|
||||||
}
|
}
|
||||||
|
|
||||||
gBLE.events <- DiscoverCharacteristicEvent{
|
gBLE.events <- DiscoverCharacteristicEvent{
|
||||||
Peripheral: peripheral,
|
Peripheral: peripheral,
|
||||||
Service: service,
|
Service: service,
|
||||||
Characteristic: characteristic,
|
Characteristic: ch,
|
||||||
Gatt: gatt.Characteristic{cuuid},
|
Gatt: gatt.Characteristic{cuuid},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//export goOnCharacteristicChanged
|
//export goOnCharacteristicChanged
|
||||||
func goOnCharacteristicChanged(cid, ccuuid *C.char, char C.jobject, cvalue *C.char, length C.jint) {
|
func goOnCharacteristicChanged(cid, ccuuid *C.char, characteristic C.jobject, cvalue *C.char, length C.jint) {
|
||||||
id := C.GoString(cid)
|
id := C.GoString(cid)
|
||||||
cuuid := C.GoString(ccuuid)
|
cuuid := C.GoString(ccuuid)
|
||||||
|
|
||||||
peripheral := gBLE.retrievePeripheral(id)
|
peripheral := gBLE.retrievePeripheral(id)
|
||||||
|
|
||||||
characteristic := Characteristic{
|
ch := Characteristic{
|
||||||
UUID: cuuid,
|
UUID: cuuid,
|
||||||
characteristic: char,
|
characteristic: characteristic,
|
||||||
}
|
}
|
||||||
|
|
||||||
gBLE.events <- UpdateValueEvent{
|
gBLE.events <- UpdateValueEvent{
|
||||||
Peripheral: peripheral,
|
Peripheral: peripheral,
|
||||||
Characteristic: characteristic,
|
Characteristic: ch,
|
||||||
Data: C.GoBytes(unsafe.Pointer(cvalue), length),
|
Data: C.GoBytes(unsafe.Pointer(cvalue), length),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -156,7 +156,7 @@ func (p Peripheral) DiscoverCharacteristics(serv Service) {
|
||||||
|
|
||||||
//SetNotifyValue subscribes to a characteristic
|
//SetNotifyValue subscribes to a characteristic
|
||||||
func (p Peripheral) SetNotifyValue(c Characteristic) {
|
func (p Peripheral) SetNotifyValue(c Characteristic) {
|
||||||
p.p.SetNotifyValue(1, c)
|
p.p.SetNotifyValue((ns.BOOL)(true), c)
|
||||||
}
|
}
|
||||||
|
|
||||||
//NewBLE returns a pointer to a BLE struct after setting up the OS
|
//NewBLE returns a pointer to a BLE struct after setting up the OS
|
||||||
|
@ -207,7 +207,8 @@ func (b *BLE) Enable(v uintptr) {
|
||||||
|
|
||||||
// Core Bluetooth callback functions
|
// Core Bluetooth callback functions
|
||||||
|
|
||||||
func didUpdateState(c *ns.CBCentralManager) {
|
func didUpdateState(d ns.CBDelegate, c *ns.CBCentralManager) {
|
||||||
|
fmt.Print("didUpdateState")
|
||||||
b := cdLookup[c.Ptr()]
|
b := cdLookup[c.Ptr()]
|
||||||
st := c.CBManager.State()
|
st := c.CBManager.State()
|
||||||
if st == (ns.CBManagerState)(ns.CBManagerStatePoweredOn) {
|
if st == (ns.CBManagerState)(ns.CBManagerStatePoweredOn) {
|
||||||
|
@ -230,7 +231,7 @@ func didUpdateState(c *ns.CBCentralManager) {
|
||||||
b.events <- UpdateStateEvent{State: b.stringState()}
|
b.events <- UpdateStateEvent{State: b.stringState()}
|
||||||
}
|
}
|
||||||
|
|
||||||
func didDiscoverPeripheral(c *ns.CBCentralManager, p *ns.CBPeripheral, d *ns.NSDictionary, rssi *ns.NSNumber) {
|
func didDiscoverPeripheral(d_ ns.CBDelegate, c *ns.CBCentralManager, p *ns.CBPeripheral, d *ns.NSDictionary, rssi *ns.NSNumber) {
|
||||||
b := cdLookup[c.Ptr()]
|
b := cdLookup[c.Ptr()]
|
||||||
peripheral := newPeripheral(p)
|
peripheral := newPeripheral(p)
|
||||||
peripheral.RSSI = (int)(rssi.IntValue())
|
peripheral.RSSI = (int)(rssi.IntValue())
|
||||||
|
@ -247,7 +248,7 @@ func _didDiscoverPeripheral(b *BLE, peripheral Peripheral) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func didConnectPeripheral(c *ns.CBCentralManager, p *ns.CBPeripheral) {
|
func didConnectPeripheral(d ns.CBDelegate, c *ns.CBCentralManager, p *ns.CBPeripheral) {
|
||||||
fmt.Printf("Did connect peripheral\n")
|
fmt.Printf("Did connect peripheral\n")
|
||||||
b := cdLookup[c.Ptr()]
|
b := cdLookup[c.Ptr()]
|
||||||
|
|
||||||
|
@ -280,7 +281,7 @@ func didConnectPeripheral(c *ns.CBCentralManager, p *ns.CBPeripheral) {
|
||||||
fmt.Printf("Go: didConnectPeripheral returning\n")
|
fmt.Printf("Go: didConnectPeripheral returning\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
func didDisconnectPeripheral(c *ns.CBCentralManager, p *ns.CBPeripheral, e *ns.NSError) {
|
func didDisconnectPeripheral(d ns.CBDelegate, c *ns.CBCentralManager, p *ns.CBPeripheral, e *ns.NSError) {
|
||||||
fmt.Printf("Did disconnect peripheral\n");
|
fmt.Printf("Did disconnect peripheral\n");
|
||||||
b := cdLookup[c.Ptr()]
|
b := cdLookup[c.Ptr()]
|
||||||
|
|
||||||
|
@ -311,7 +312,7 @@ func didDisconnectPeripheral(c *ns.CBCentralManager, p *ns.CBPeripheral, e *ns.N
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
func didDiscoverServices(p *ns.CBPeripheral, e *ns.NSError) {
|
func didDiscoverServices(d ns.CBDelegate, p *ns.CBPeripheral, e *ns.NSError) {
|
||||||
b := pdLookup[p.Ptr()]
|
b := pdLookup[p.Ptr()]
|
||||||
fmt.Printf("Did discover services\n")
|
fmt.Printf("Did discover services\n")
|
||||||
p.Services().ObjectEnumerator().ForIn(func(o *ns.Id) bool {
|
p.Services().ObjectEnumerator().ForIn(func(o *ns.Id) bool {
|
||||||
|
@ -327,7 +328,7 @@ func didDiscoverServices(p *ns.CBPeripheral, e *ns.NSError) {
|
||||||
fmt.Printf("Go: didDiscoverServices returning\n")
|
fmt.Printf("Go: didDiscoverServices returning\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
func didDiscoverCharacteristics(p *ns.CBPeripheral, s *ns.CBService, e *ns.NSError) {
|
func didDiscoverCharacteristics(d ns.CBDelegate, p *ns.CBPeripheral, s *ns.CBService, e *ns.NSError) {
|
||||||
b := pdLookup[p.Ptr()]
|
b := pdLookup[p.Ptr()]
|
||||||
fmt.Printf("Did discover characteristics\n")
|
fmt.Printf("Did discover characteristics\n")
|
||||||
s.Characteristics().ObjectEnumerator().ForIn(func(o *ns.Id) bool {
|
s.Characteristics().ObjectEnumerator().ForIn(func(o *ns.Id) bool {
|
||||||
|
@ -345,7 +346,7 @@ func didDiscoverCharacteristics(p *ns.CBPeripheral, s *ns.CBService, e *ns.NSErr
|
||||||
fmt.Printf("Go: didDiscoverCharacteristics returning\n")
|
fmt.Printf("Go: didDiscoverCharacteristics returning\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
func didUpdateValue(p *ns.CBPeripheral, chr *ns.CBCharacteristic, e *ns.NSError) {
|
func didUpdateValue(d ns.CBDelegate, p *ns.CBPeripheral, chr *ns.CBCharacteristic, e *ns.NSError) {
|
||||||
b := pdLookup[p.Ptr()]
|
b := pdLookup[p.Ptr()]
|
||||||
v := chr.Value()
|
v := chr.Value()
|
||||||
b.events <-UpdateValueEvent{
|
b.events <-UpdateValueEvent{
|
||||||
|
|
|
@ -15,27 +15,20 @@ import "C"
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"unsafe"
|
"unsafe"
|
||||||
|
"fmt"
|
||||||
)
|
)
|
||||||
|
|
||||||
//export CBDelegateCentralManagerDidUpdateState
|
|
||||||
func CBDelegateCentralManagerDidUpdateState(o unsafe.Pointer, central unsafe.Pointer) {
|
|
||||||
CBDelegateMux.RLock()
|
|
||||||
cb := CBDelegateLookup[o].CentralManagerDidUpdateState
|
|
||||||
CBDelegateMux.RUnlock()
|
|
||||||
if cb == nil { return }
|
|
||||||
a1 := &CBCentralManager{}; a1.ptr = central
|
|
||||||
cb(a1)
|
|
||||||
}
|
|
||||||
|
|
||||||
//export CBDelegateCentralManagerDidConnectPeripheral
|
//export CBDelegateCentralManagerDidConnectPeripheral
|
||||||
func CBDelegateCentralManagerDidConnectPeripheral(o unsafe.Pointer, central unsafe.Pointer, peripheral unsafe.Pointer) {
|
func CBDelegateCentralManagerDidConnectPeripheral(o unsafe.Pointer, central unsafe.Pointer, peripheral unsafe.Pointer) {
|
||||||
CBDelegateMux.RLock()
|
CBDelegateMux.RLock()
|
||||||
cb := CBDelegateLookup[o].CentralManagerDidConnectPeripheral
|
cb := CBDelegateLookup[o].CentralManagerDidConnectPeripheral
|
||||||
CBDelegateMux.RUnlock()
|
CBDelegateMux.RUnlock()
|
||||||
if cb == nil { return }
|
if cb == nil { return }
|
||||||
|
self := CBDelegate{}
|
||||||
|
self.ptr = o
|
||||||
a1 := &CBCentralManager{}; a1.ptr = central
|
a1 := &CBCentralManager{}; a1.ptr = central
|
||||||
a2 := &CBPeripheral{}; a2.ptr = peripheral
|
a2 := &CBPeripheral{}; a2.ptr = peripheral
|
||||||
cb(a1, a2)
|
cb(self, a1, a2)
|
||||||
}
|
}
|
||||||
|
|
||||||
//export CBDelegateCentralManagerDidDisconnectPeripheral
|
//export CBDelegateCentralManagerDidDisconnectPeripheral
|
||||||
|
@ -44,10 +37,12 @@ func CBDelegateCentralManagerDidDisconnectPeripheral(o unsafe.Pointer, central u
|
||||||
cb := CBDelegateLookup[o].CentralManagerDidDisconnectPeripheral
|
cb := CBDelegateLookup[o].CentralManagerDidDisconnectPeripheral
|
||||||
CBDelegateMux.RUnlock()
|
CBDelegateMux.RUnlock()
|
||||||
if cb == nil { return }
|
if cb == nil { return }
|
||||||
|
self := CBDelegate{}
|
||||||
|
self.ptr = o
|
||||||
a1 := &CBCentralManager{}; a1.ptr = central
|
a1 := &CBCentralManager{}; a1.ptr = central
|
||||||
a2 := &CBPeripheral{}; a2.ptr = peripheral
|
a2 := &CBPeripheral{}; a2.ptr = peripheral
|
||||||
a3 := &NSError{}; a3.ptr = error
|
a3 := &NSError{}; a3.ptr = error
|
||||||
cb(a1, a2, a3)
|
cb(self, a1, a2, a3)
|
||||||
}
|
}
|
||||||
|
|
||||||
//export CBDelegateCentralManagerDidDiscoverPeripheral
|
//export CBDelegateCentralManagerDidDiscoverPeripheral
|
||||||
|
@ -56,11 +51,26 @@ func CBDelegateCentralManagerDidDiscoverPeripheral(o unsafe.Pointer, central uns
|
||||||
cb := CBDelegateLookup[o].CentralManagerDidDiscoverPeripheral
|
cb := CBDelegateLookup[o].CentralManagerDidDiscoverPeripheral
|
||||||
CBDelegateMux.RUnlock()
|
CBDelegateMux.RUnlock()
|
||||||
if cb == nil { return }
|
if cb == nil { return }
|
||||||
|
self := CBDelegate{}
|
||||||
|
self.ptr = o
|
||||||
a1 := &CBCentralManager{}; a1.ptr = central
|
a1 := &CBCentralManager{}; a1.ptr = central
|
||||||
a2 := &CBPeripheral{}; a2.ptr = peripheral
|
a2 := &CBPeripheral{}; a2.ptr = peripheral
|
||||||
a3 := &NSDictionary{}; a3.ptr = advertisementData
|
a3 := &NSDictionary{}; a3.ptr = advertisementData
|
||||||
a4 := &NSNumber{}; a4.ptr = RSSI
|
a4 := &NSNumber{}; a4.ptr = RSSI
|
||||||
cb(a1, a2, a3, a4)
|
cb(self, a1, a2, a3, a4)
|
||||||
|
}
|
||||||
|
|
||||||
|
//export CBDelegateCentralManagerDidUpdateState
|
||||||
|
func CBDelegateCentralManagerDidUpdateState(o unsafe.Pointer, central unsafe.Pointer) {
|
||||||
|
fmt.Print("CentralManagerDidUpdateState")
|
||||||
|
CBDelegateMux.RLock()
|
||||||
|
cb := CBDelegateLookup[o].CentralManagerDidUpdateState
|
||||||
|
CBDelegateMux.RUnlock()
|
||||||
|
if cb == nil { return }
|
||||||
|
self := CBDelegate{}
|
||||||
|
self.ptr = o
|
||||||
|
a1 := &CBCentralManager{}; a1.ptr = central
|
||||||
|
cb(self, a1)
|
||||||
}
|
}
|
||||||
|
|
||||||
//export CBDelegatePeripheralDidDiscoverServices
|
//export CBDelegatePeripheralDidDiscoverServices
|
||||||
|
@ -69,9 +79,11 @@ func CBDelegatePeripheralDidDiscoverServices(o unsafe.Pointer, peripheral unsafe
|
||||||
cb := CBDelegateLookup[o].PeripheralDidDiscoverServices
|
cb := CBDelegateLookup[o].PeripheralDidDiscoverServices
|
||||||
CBDelegateMux.RUnlock()
|
CBDelegateMux.RUnlock()
|
||||||
if cb == nil { return }
|
if cb == nil { return }
|
||||||
|
self := CBDelegate{}
|
||||||
|
self.ptr = o
|
||||||
a1 := &CBPeripheral{}; a1.ptr = peripheral
|
a1 := &CBPeripheral{}; a1.ptr = peripheral
|
||||||
a2 := &NSError{}; a2.ptr = error
|
a2 := &NSError{}; a2.ptr = error
|
||||||
cb(a1, a2)
|
cb(self, a1, a2)
|
||||||
}
|
}
|
||||||
|
|
||||||
//export CBDelegatePeripheralDidDiscoverCharacteristicsForService
|
//export CBDelegatePeripheralDidDiscoverCharacteristicsForService
|
||||||
|
@ -80,10 +92,12 @@ func CBDelegatePeripheralDidDiscoverCharacteristicsForService(o unsafe.Pointer,
|
||||||
cb := CBDelegateLookup[o].PeripheralDidDiscoverCharacteristicsForService
|
cb := CBDelegateLookup[o].PeripheralDidDiscoverCharacteristicsForService
|
||||||
CBDelegateMux.RUnlock()
|
CBDelegateMux.RUnlock()
|
||||||
if cb == nil { return }
|
if cb == nil { return }
|
||||||
|
self := CBDelegate{}
|
||||||
|
self.ptr = o
|
||||||
a1 := &CBPeripheral{}; a1.ptr = peripheral
|
a1 := &CBPeripheral{}; a1.ptr = peripheral
|
||||||
a2 := &CBService{}; a2.ptr = service
|
a2 := &CBService{}; a2.ptr = service
|
||||||
a3 := &NSError{}; a3.ptr = error
|
a3 := &NSError{}; a3.ptr = error
|
||||||
cb(a1, a2, a3)
|
cb(self, a1, a2, a3)
|
||||||
}
|
}
|
||||||
|
|
||||||
//export CBDelegatePeripheralDidUpdateValueForCharacteristic
|
//export CBDelegatePeripheralDidUpdateValueForCharacteristic
|
||||||
|
@ -92,8 +106,10 @@ func CBDelegatePeripheralDidUpdateValueForCharacteristic(o unsafe.Pointer, perip
|
||||||
cb := CBDelegateLookup[o].PeripheralDidUpdateValueForCharacteristic
|
cb := CBDelegateLookup[o].PeripheralDidUpdateValueForCharacteristic
|
||||||
CBDelegateMux.RUnlock()
|
CBDelegateMux.RUnlock()
|
||||||
if cb == nil { return }
|
if cb == nil { return }
|
||||||
|
self := CBDelegate{}
|
||||||
|
self.ptr = o
|
||||||
a1 := &CBPeripheral{}; a1.ptr = peripheral
|
a1 := &CBPeripheral{}; a1.ptr = peripheral
|
||||||
a2 := &CBCharacteristic{}; a2.ptr = characteristic
|
a2 := &CBCharacteristic{}; a2.ptr = characteristic
|
||||||
a3 := &NSError{}; a3.ptr = error
|
a3 := &NSError{}; a3.ptr = error
|
||||||
cb(a1, a2, a3)
|
cb(self, a1, a2, a3)
|
||||||
}
|
}
|
||||||
|
|
103774
ns/main.go
103774
ns/main.go
File diff suppressed because it is too large
Load Diff
|
@ -1,6 +1,6 @@
|
||||||
inputfiles:
|
inputfiles:
|
||||||
- /System/Library/Frameworks/Foundation.framework/Headers/Foundation.h
|
- /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h
|
||||||
- /System/Library/Frameworks/CoreBluetooth.framework/Headers/CoreBluetooth.h
|
- /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CoreBluetooth.h
|
||||||
|
|
||||||
classes:
|
classes:
|
||||||
- NSObject
|
- NSObject
|
||||||
|
|
Loading…
Reference in New Issue
Block a user