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

Commit cd1a800

Browse files
author
Stephen Schiffli
committed
Example of how to use new Cross Device Download feature
1 parent c2bc5bc commit cd1a800

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

examples/anonymous_datasignals.js

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
2+
/**
3+
* Created by sschiffli on 11/2/17.
4+
*/
5+
var MetaWear = require('../index')//require('metawear');
6+
7+
// MetaWear.discoverByAddress('f6:3d:13:48:ce:ab', function (device) {
8+
MetaWear.discover(function (device) {
9+
console.log('connecting...' + device.address);
10+
device.connectAndSetUp(function (error) {
11+
console.log('connected!');
12+
MetaWear.mbl_mw_metawearboard_create_anonymous_datasignals(device.board,
13+
MetaWear.FnVoid_MetaWearBoardP_AnonymousDataSignalP_UInt.toPointer(function (board, anonymousSignals, size) {
14+
if (!anonymousSignals) {
15+
console.log('nothing being logged');
16+
process.exit(1);
17+
}
18+
// Set the size on the array so we can index
19+
anonymousSignals.length = size;
20+
var i;
21+
for (i = 0; i < size; i++) {
22+
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+
var data = dataPtr.deref();
25+
var pt = data.parseValue();
26+
console.log(identifier + ':' + data.epoch + ' ' + JSON.stringify(pt));
27+
}));
28+
}
29+
download(device, function () {
30+
device.once('disconnect', function (reason) {
31+
process.exit(0);
32+
});
33+
MetaWear.mbl_mw_macro_erase_all(device.board);
34+
MetaWear.mbl_mw_debug_reset_after_gc(device.board);
35+
MetaWear.mbl_mw_debug_disconnect(device.board);
36+
});
37+
}));
38+
});
39+
});
40+
41+
function download(device, callback) {
42+
// Setup the handlers for events during the download
43+
var downloadHandler = new MetaWear.LogDownloadHandler();
44+
downloadHandler.received_progress_update = MetaWear.FnVoid_UInt_UInt.toPointer(function onSignal(entriesLeft, totalEntries) {
45+
console.log('received_progress_update entriesLeft:' + entriesLeft + ' totalEntries:' + totalEntries);
46+
if (entriesLeft === 0) {
47+
callback(null);
48+
}
49+
});
50+
downloadHandler.received_unknown_entry = MetaWear.FnVoid_UByte_Long_UByteP_UByte.toPointer(function onSignal(id, epoch, data, length) {
51+
console.log('received_unknown_entry');
52+
});
53+
downloadHandler.received_unhandled_entry = MetaWear.FnVoid_DataP.toPointer(function onSignal(dataPtr) {
54+
var data = dataPtr.deref();
55+
var dataPoint = data.parseValue();
56+
console.log('received_unhandled_entry: ' + dataPoint);
57+
});
58+
// Actually start the log download, this will cause all the handlers we setup to be invoked
59+
MetaWear.mbl_mw_logging_download(device.board, 20, downloadHandler.ref());
60+
}

0 commit comments

Comments
 (0)