Skip to content
This repository was archived by the owner on Jul 20, 2025. It is now read-only.

Commit 5b92ca9

Browse files
author
Stephen Schiffli
committed
Update MetaWear SDK Cpp to 0.12.1-hotfix
1 parent 8da3ab1 commit 5b92ca9

File tree

5 files changed

+31
-25
lines changed

5 files changed

+31
-25
lines changed

MetaWear-SDK-Cpp

Submodule MetaWear-SDK-Cpp updated 110 files

examples/anonymous_datasignals.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
33
* Created by sschiffli on 11/2/17.
44
*/
55
var MetaWear = require('../index')//require('metawear');
6+
var ref = require('ref')
67

78
// MetaWear.discoverByAddress('f6:3d:13:48:ce:ab', function (device) {
89
MetaWear.discover(function (device) {
910
console.log('connecting...' + device.address);
1011
device.connectAndSetUp(function (error) {
1112
console.log('connected!');
12-
MetaWear.mbl_mw_metawearboard_create_anonymous_datasignals(device.board,
13-
MetaWear.FnVoid_MetaWearBoardP_AnonymousDataSignalP_UInt.toPointer(function (board, anonymousSignals, size) {
13+
MetaWear.mbl_mw_metawearboard_create_anonymous_datasignals(device.board, ref.NULL,
14+
MetaWear.FnVoid_VoidP_MetaWearBoardP_AnonymousDataSignalP_UInt.toPointer(function (context, board, anonymousSignals, size) {
1415
if (!anonymousSignals) {
1516
console.log('nothing being logged');
1617
process.exit(1);
@@ -20,7 +21,7 @@ MetaWear.discover(function (device) {
2021
var i;
2122
for (i = 0; i < size; i++) {
2223
var identifier = MetaWear.mbl_mw_anonymous_datasignal_get_identifier(anonymousSignals[i]);
23-
MetaWear.mbl_mw_anonymous_datasignal_subscribe(anonymousSignals[i], MetaWear.FnVoid_DataP.toPointer(function onSignal(dataPtr) {
24+
MetaWear.mbl_mw_anonymous_datasignal_subscribe(anonymousSignals[i], ref.NULL, MetaWear.FnVoid_VoidP_DataP.toPointer(function onSignal(context, dataPtr) {
2425
var data = dataPtr.deref();
2526
var pt = data.parseValue();
2627
console.log(identifier + ':' + data.epoch + ' ' + JSON.stringify(pt));
@@ -41,16 +42,16 @@ MetaWear.discover(function (device) {
4142
function download(device, callback) {
4243
// Setup the handlers for events during the download
4344
var downloadHandler = new MetaWear.LogDownloadHandler();
44-
downloadHandler.received_progress_update = MetaWear.FnVoid_UInt_UInt.toPointer(function onSignal(entriesLeft, totalEntries) {
45+
downloadHandler.received_progress_update = MetaWear.FnVoid_VoidP_UInt_UInt.toPointer(function onSignal(context, entriesLeft, totalEntries) {
4546
console.log('received_progress_update entriesLeft:' + entriesLeft + ' totalEntries:' + totalEntries);
4647
if (entriesLeft === 0) {
4748
callback(null);
4849
}
4950
});
50-
downloadHandler.received_unknown_entry = MetaWear.FnVoid_UByte_Long_UByteP_UByte.toPointer(function onSignal(id, epoch, data, length) {
51+
downloadHandler.received_unknown_entry = MetaWear.FnVoid_VoidP_UByte_Long_UByteP_UByte.toPointer(function onSignal(context, id, epoch, data, length) {
5152
console.log('received_unknown_entry');
5253
});
53-
downloadHandler.received_unhandled_entry = MetaWear.FnVoid_DataP.toPointer(function onSignal(dataPtr) {
54+
downloadHandler.received_unhandled_entry = MetaWear.FnVoid_VoidP_DataP.toPointer(function onSignal(context, dataPtr) {
5455
var data = dataPtr.deref();
5556
var dataPoint = data.parseValue();
5657
console.log('received_unhandled_entry: ' + dataPoint);

examples/logging.js

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
var MetaWear = require('../index')//require('metawear');
2+
var ref = require('ref');
23
// Store the log event for later download. If your program needs to terminate
34
// before performing the log download, you will need to use mbl_mw_metawearboard_serialize
45
// to store the device state and that pass that state as the second argument to
@@ -42,25 +43,25 @@ function downloadLog(device, callback) {
4243
// Shutdown log
4344
MetaWear.mbl_mw_logging_stop(device.board);
4445
// Setup handerl for accel data points
45-
MetaWear.mbl_mw_logger_subscribe(accelLogger, MetaWear.FnVoid_DataP.toPointer(function onSignal(dataPtr) {
46+
MetaWear.mbl_mw_logger_subscribe(accelLogger, ref.NULL, MetaWear.FnVoid_VoidP_DataP.toPointer(function onSignal(context, dataPtr) {
4647
var data = dataPtr.deref();
4748
var pt = data.parseValue();
4849
console.log(data.epoch + ' ' + pt.x + ',' + pt.y + ',' + pt.z);
4950
}));
5051
// Setup the handlers for events during the download
5152
var downloadHandler = new MetaWear.LogDownloadHandler();
52-
downloadHandler.received_progress_update = MetaWear.FnVoid_UInt_UInt.toPointer(function onSignal(entriesLeft, totalEntries) {
53+
downloadHandler.received_progress_update = MetaWear.FnVoid_VoidP_UInt_UInt.toPointer(function onSignal(context, entriesLeft, totalEntries) {
5354
console.log('received_progress_update entriesLeft:' + entriesLeft + ' totalEntries:' + totalEntries);
5455
if (entriesLeft === 0) {
5556
// Remove all log entries if told to stop logging
5657
MetaWear.mbl_mw_metawearboard_tear_down(device.board);
5758
callback(null);
5859
}
5960
});
60-
downloadHandler.received_unknown_entry = MetaWear.FnVoid_UByte_Long_UByteP_UByte.toPointer(function onSignal(id, epoch, data, length) {
61+
downloadHandler.received_unknown_entry = MetaWear.FnVoid_VoidP_UByte_Long_UByteP_UByte.toPointer(function onSignal(context, id, epoch, data, length) {
6162
console.log('received_unknown_entry');
6263
});
63-
downloadHandler.received_unhandled_entry = MetaWear.FnVoid_DataP.toPointer(function onSignal(dataPtr) {
64+
downloadHandler.received_unhandled_entry = MetaWear.FnVoid_VoidP_DataP.toPointer(function onSignal(context, dataPtr) {
6465
var data = dataPtr.deref();
6566
var dataPoint = data.parseValue();
6667
console.log('received_unhandled_entry: ' + dataPoint);
@@ -74,12 +75,14 @@ function startLogging(device, callback) {
7475
MetaWear.mbl_mw_acc_set_range(device.board, 16.0);
7576
MetaWear.mbl_mw_acc_write_acceleration_config(device.board);
7677

77-
MetaWear.mbl_mw_acc_enable_acceleration_sampling(device.board);
78-
MetaWear.mbl_mw_acc_start(device.board);
7978
// See if we already created a logger
8079
var accSignal = MetaWear.mbl_mw_acc_get_acceleration_data_signal(device.board);
81-
MetaWear.mbl_mw_datasignal_log(accSignal, MetaWear.FnVoid_DataLoggerP.toPointer(function (logger) {
80+
MetaWear.mbl_mw_datasignal_log(accSignal, ref.NULL, MetaWear.FnVoid_VoidP_DataLoggerP.toPointer(function (context, logger) {
8281
accelLogger = logger;
8382
callback(logger.address() ? null : new Error('failed to start logging accel'));
8483
}));
84+
85+
MetaWear.mbl_mw_logging_start(device.board, 0);
86+
MetaWear.mbl_mw_acc_enable_acceleration_sampling(device.board);
87+
MetaWear.mbl_mw_acc_start(device.board);
8588
}

examples/multi_device.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
var MetaWear = require('../index')//require('metawear');
22
var fs = require('fs');
3+
var ref = require('ref');
34

45
var addresses = [
56
'f3:97:6b:cc:71:97',
@@ -39,7 +40,7 @@ function startAccelStream(device) {
3940
MetaWear.mbl_mw_acc_set_range(device.board, 8.0);
4041
MetaWear.mbl_mw_acc_write_acceleration_config(device.board);
4142
var accSignal = MetaWear.mbl_mw_acc_get_acceleration_data_signal(device.board);
42-
MetaWear.mbl_mw_datasignal_subscribe(accSignal, MetaWear.FnVoid_DataP.toPointer(function gotTimer(dataPtr) {
43+
MetaWear.mbl_mw_datasignal_subscribe(accSignal, ref.NULL, MetaWear.FnVoid_VoidP_DataP.toPointer(function gotTimer(context, dataPtr) {
4344
var data = dataPtr.deref();
4445
var pt = data.parseValue();
4546
console.log(pt.x, pt.y, pt.z);

lib/metawear.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)