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

Commit 5594576

Browse files
committed
node12 starter
1 parent 354cf0f commit 5594576

File tree

7 files changed

+568
-773
lines changed

7 files changed

+568
-773
lines changed

MetaWear-SDK-Cpp

Submodule MetaWear-SDK-Cpp updated 169 files

examples/led.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22
var MetaWear = require('../index')
33
// METAWEAR
44
//require('metawear');
5-
65
var cbindings = require('../MetaWear-SDK-Cpp/bindings/javascript/cbindings.js');
7-
var ref = require('ref');
6+
var ref = require('ref-napi');
87

98
// If you know the MAC address:
10-
MetaWear.discoverByAddress('ea:78:c3:d3:f0:8a', function(device) {
9+
MetaWear.discoverByAddress('d1:e7:65:2a:ad:6f', function(device) {
1110
//MetaWear.discover(function (device) {
1211
device.connectAndSetUp(function (error) {
1312
// Create a LED patter type

examples/scan_connect.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ var MetaWear = require('../index')
66
// If you don't know the MAC address, you can uncomment this line
77
// and it will connect to nearest automatically
88
//MetaWear.discover(function (device) {
9-
MetaWear.discoverByAddress('c8:4b:aa:97:50:05', function(device) {
9+
MetaWear.discoverByAddress('d1:e7:65:2a:ad:6f', function(device) {
1010
console.log('got em');
1111
// you can be notified of disconnects
1212
device.on('disconnect', function () {

examples/stream_acc.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22
var MetaWear = require('../index')
33
// METAWEAR
44
//require('metawear');
5-
6-
var ref = require('ref')
5+
const SegfaultHandler = require('segfault-handler');
6+
SegfaultHandler.registerHandler('crash.log');
7+
var ref = require('ref-napi')
78

89
// Main function
910
async function mainAsync(mac) {
@@ -26,8 +27,9 @@ async function mainAsync(mac) {
2627
// Stream acc signal
2728
MetaWear.mbl_mw_datasignal_subscribe(acc, ref.NULL, MetaWear.FnVoid_VoidP_DataP.toPointer((ctx, pointer) => {
2829
var data = pointer.deref();
29-
var value = data.parseValue();
30-
console.log('epoch: ' + data.epoch + ' acc: ' + value.x + ' ' + value.y + ' ' + value.z)
30+
console.log(data);
31+
//var value = data.parseValue();
32+
//console.log('epoch: ' + data.epoch + ' acc: ' + value.x + ' ' + value.y + ' ' + value.z)
3133
}))
3234

3335
// Start acc
@@ -38,11 +40,13 @@ async function mainAsync(mac) {
3840
// Terminal on terminal input
3941
process.openStdin().addListener("data", data => {
4042
console.log('Reset.')
41-
MetaWear.mbl_mw_debug_reset(device.board)
43+
MetaWear.mbl_mw_debug_reset(device.board);
44+
MetaWear.mbl_mw_debug_disconnect(device.board);
45+
console.log('Disconnect');
4246
setTimeout(function () {
4347
// Exit terminal
4448
process.exit(1);
45-
}, 2000);
49+
}, 4000);
4650
})
4751
}
4852

lib/metawear.js

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ var debugRaw = require('debug')('metaboot');
66

77
var NobleDevice = require('noble-device');
88
var noble = require('@abandonware/noble');
9-
var ref = require('ref');
9+
var ref = require('ref-napi');
1010
var events = require('events');
1111
var util = require('util');
1212
var os = require('os');
@@ -121,11 +121,13 @@ MetaWear.prototype.connectAndSetUp = function (callback, initBuf) {
121121
MetaWear.mbl_mw_metawearboard_deserialize(this.board, initBuf, initBuf.length);
122122
}
123123
// Setup the CPP SDK
124+
console.log(this.board)
124125
MetaWear.mbl_mw_metawearboard_initialize(this.board, ref.NULL, MetaWear.FnVoid_VoidP_MetaWearBoardP_Int.toPointer(function onInitialize(context, board, code) {
125126
// Adjust link speed for macOS only since we can't adjust it elsewhere
126127
if (os.platform() === 'darwin') {
127128
MetaWear.mbl_mw_settings_set_connection_parameters(this.board, 15.0, 15.0, 0, 4000);
128129
}
130+
console.log("init");
129131
this.readManufacturerName(function (error, manufacturerName) {
130132
this.manufacturerName = manufacturerName;
131133
}.bind(this));
@@ -140,8 +142,10 @@ MetaWear.prototype.connectAndSetUp = function (callback, initBuf) {
140142
}.bind(this));
141143
this.readModelNumber(function (error, modelNumber) {
142144
this.modelNumber = modelNumber;
145+
console.log("read model number");
143146
this.modelDescription = MetaWear.mbl_mw_metawearboard_get_model_name(this.board);
144147
debug("Finished MetaWear Init");
148+
console.log("done");
145149
initializeCallback(code == 0 ? null : code);
146150
}.bind(this));
147151
}.bind(this)));
@@ -220,34 +224,42 @@ function bytesToString(array, start, stop) {
220224
function NativeGattChar(array) {
221225
// always initialize all instance properties
222226
this.serviceUUID = bytesToString(array, 7, 0) + bytesToString(array, 15, 8);
227+
console.log(this.serviceUUID);
223228
this.shortServiceUUID = bytesToString(array, 5, 4);
229+
console.log(this.shortServiceUUID);
224230
this.characteristicUUID = bytesToString(array, 23, 16) + bytesToString(array, 31, 24);
231+
console.log(this.characteristicUUID);
225232
this.shortCharacteristicUUID = bytesToString(array, 21, 20);
233+
console.log(this.shortCharacteristicUUID);
226234
}
227235

228236
function writeGattChar(context, caller, writeType, characteristicPtr, valuePtr, length) {
229-
var data = ref.reinterpret(valuePtr, length, 0);
237+
var bufs = [];
238+
var data = Buffer.alloc(length);
239+
for (let i=0; i<length; i++) {
240+
bufs[i] = ref.reinterpret(valuePtr, 1, i);
241+
}
242+
data = Buffer.concat(bufs);
230243
var characteristic = new NativeGattChar(characteristicPtr);
231244
if (!this.hasCharacteristic(characteristic.serviceUUID, characteristic.characteristicUUID)) {
232-
console.error('cant find ' + characteristic.characteristicUUID);
233245
return;
234246
}
235247
var printer = this.isMetaBoot ? debugRaw : debug;
236-
printer('Writing: ' + characteristic.characteristicUUID + " " + data.toString('hex'));
248+
//console.log('Writing: ' + characteristic.characteristicUUID + " " + data.toString('hex'));
237249

238250
var withoutResponse = true;
239-
if (!this.isMetaBoot) {
251+
//if (!this.isMetaBoot) {
240252
// TODO: For now we need to do everything with-reponse, further
241253
// testing and enabling is needed before we can turn this off
242-
withoutResponse = false;
243-
} else if (characteristic.characteristicUUID === METABOOT_DFU_CONTROL_POINT_UUID) {
244-
withoutResponse = false;
245-
}
254+
// withoutResponse = false;
255+
//} else if (characteristic.characteristicUUID === METABOOT_DFU_CONTROL_POINT_UUID) {
256+
// withoutResponse = false;
257+
//}
246258
this._characteristics[characteristic.serviceUUID][characteristic.characteristicUUID].write(data, withoutResponse, function (error) {
247259
if (error) {
248-
printer(error);
260+
console.log(error);
249261
} else {
250-
printer('Writing Success');
262+
//console.log('Writing Success');
251263
}
252264
});
253265
}
@@ -262,7 +274,7 @@ function readGattChar(context, caller, characteristicPtr, callback) {
262274
if (error) {
263275
console.error(error);
264276
} else {
265-
debug("DidRead: " + data);
277+
//console.log("DidRead: " + data);
266278
callback(caller, data, data.length);
267279
}
268280
});
@@ -275,17 +287,16 @@ function enableNotifications(context, caller, characteristicPtr, onData, subscri
275287
charToNotify = this._characteristics[characteristic.shortServiceUUID][characteristic.shortCharacteristicUUID];
276288
}
277289
charToNotify.on('data', function (buffer) {
278-
debug('Did Update: ', buffer);
290+
//console.log('Did Update: ', buffer);
279291
if (!buffer) {
280-
console.error('bad buffer');
281292
} else {
282293
onData(caller, buffer, buffer.length);
283294
}
284295
});
285296
// Turn on the notification stream
286297
charToNotify.subscribe(function (error) {
287298
if (error) {
288-
console.error(error);
299+
console.log(error);
289300
}
290301
subscribeComplete(caller, error == null ? 0 : 1);
291302
});

0 commit comments

Comments
 (0)