@@ -41,10 +41,11 @@ var MetaWear = function (peripheral) {
4141
4242 // Now create the metawear board object (this is used for accessing the SDK)
4343 var connection = new MetaWear . BtleConnection ( ) ;
44- connection . write_gatt_char = MetaWear . FnVoid_VoidP_GattCharWriteType_GattCharP_UByteP_UByte . toPointer ( writeGattChar . bind ( this ) ) ;
45- connection . read_gatt_char = MetaWear . FnVoid_VoidP_GattCharP_FnIntVoidPtrArray . toPointer ( readGattChar . bind ( this ) ) ;
46- connection . enable_notifications = MetaWear . FnVoid_VoidP_GattCharP_FnIntVoidPtrArray_FnVoidVoidPtrInt . toPointer ( enableNotifications . bind ( this ) ) ;
47- connection . on_disconnect = MetaWear . FnVoid_VoidP_FnVoidVoidPtrInt . toPointer ( onDisconnect . bind ( this ) ) ;
44+ connection . context = ref . NULL ;
45+ connection . write_gatt_char = MetaWear . FnVoid_VoidP_VoidP_GattCharWriteType_GattCharP_UByteP_UByte . toPointer ( writeGattChar . bind ( this ) ) ;
46+ connection . read_gatt_char = MetaWear . FnVoid_VoidP_VoidP_GattCharP_FnIntVoidPtrArray . toPointer ( readGattChar . bind ( this ) ) ;
47+ connection . enable_notifications = MetaWear . FnVoid_VoidP_VoidP_GattCharP_FnIntVoidPtrArray_FnVoidVoidPtrInt . toPointer ( enableNotifications . bind ( this ) ) ;
48+ connection . on_disconnect = MetaWear . FnVoid_VoidP_VoidP_FnVoidVoidPtrInt . toPointer ( onDisconnect . bind ( this ) ) ;
4849 this . board = MetaWear . mbl_mw_metawearboard_create ( connection . ref ( ) ) ;
4950 // No timeout during debug and enabling
5051 MetaWear . mbl_mw_metawearboard_set_time_for_response ( this . board , 0 ) ;
@@ -101,8 +102,8 @@ MetaWear.prototype.connectAndSetUp = function (callback, initBuf) {
101102 MetaWear . mbl_mw_metawearboard_deserialize ( this . board , initBuf , initBuf . length ) ;
102103 }
103104 // Setup the CPP SDK
104- MetaWear . mbl_mw_metawearboard_initialize ( this . board , MetaWear . FnVoid_MetaWearBoardP_Int . toPointer ( function onInitialize ( board , code ) {
105- // Adjust link speed for macOS only since we can't adujust it elsewhere
105+ MetaWear . mbl_mw_metawearboard_initialize ( this . board , ref . NULL , MetaWear . FnVoid_VoidP_MetaWearBoardP_Int . toPointer ( function onInitialize ( context , board , code ) {
106+ // Adjust link speed for macOS only since we can't adjust it elsewhere
106107 if ( os . platform ( ) === 'darwin' ) {
107108 MetaWear . mbl_mw_settings_set_connection_parameters ( this . board , 15.0 , 15.0 , 0 , 4000 ) ;
108109 }
@@ -183,7 +184,7 @@ function NativeGattChar(array) {
183184 this . shortCharacteristicUUID = bytesToString ( array , 21 , 20 ) ;
184185}
185186
186- function writeGattChar ( caller , writeType , characteristicPtr , valuePtr , length ) {
187+ function writeGattChar ( context , caller , writeType , characteristicPtr , valuePtr , length ) {
187188 var data = ref . reinterpret ( valuePtr , length , 0 ) ;
188189 var characteristic = new NativeGattChar ( characteristicPtr ) ;
189190 if ( ! this . hasCharacteristic ( characteristic . serviceUUID , characteristic . characteristicUUID ) ) {
@@ -210,7 +211,7 @@ function writeGattChar(caller, writeType, characteristicPtr, valuePtr, length) {
210211 } ) ;
211212}
212213
213- function readGattChar ( caller , characteristicPtr , callback ) {
214+ function readGattChar ( context , caller , characteristicPtr , callback ) {
214215 var characteristic = new NativeGattChar ( characteristicPtr ) ;
215216 var charToRead = this . _characteristics [ characteristic . shortServiceUUID ] [ characteristic . shortCharacteristicUUID ] ;
216217 if ( ! charToRead ) {
@@ -226,7 +227,7 @@ function readGattChar(caller, characteristicPtr, callback) {
226227 } ) ;
227228}
228229
229- function enableNotifications ( caller , characteristicPtr , onData , subscribeComplete ) {
230+ function enableNotifications ( context , caller , characteristicPtr , onData , subscribeComplete ) {
230231 var characteristic = new NativeGattChar ( characteristicPtr ) ;
231232 var charToNotify = this . _characteristics [ characteristic . serviceUUID ] [ characteristic . characteristicUUID ] ;
232233 if ( ! charToNotify ) {
@@ -249,7 +250,7 @@ function enableNotifications(caller, characteristicPtr, onData, subscribeComplet
249250 } ) ;
250251}
251252
252- function onDisconnect ( caller , handler ) {
253+ function onDisconnect ( context , caller , handler ) {
253254 this . once ( 'disconnect' , function ( ) {
254255 handler ( caller , 0 ) ;
255256 } ) ;
0 commit comments