Bridge to CPP SDK¶
As mentioned previously, the MetaWear Javascript APIs are a wrapper around the CPP APIs.
MetaWear¶
Each script must include the node javascript library Metawear
.
var MetaWear = require('metawear');
The core libraries are written in C++ and many of the calls made are from the CPP library. You will find the C++ documentation and API reference useful.
The main MetaWear class in Node.JS can be found here.
Node-FFI¶
Node-ffi is a Node.js addon for loading and calling dynamic libraries using pure JavaScript. It can be used to create bindings to native libraries without writing any C++ code. The library has been partially abandoned so MbientLab is hosting a custom copy here.
Node ffi is use along with the bindings file so that Node API calls can call the CPP SDK.
Bindings¶
The bindings file is the glue between the Javascript APIs and the CPP library.
In the bindings file:
/**
* Stop sensor fusion
* @param board Calling object
*/
'mbl_mw_sensor_fusion_stop': [ref.types.void, [ref.refType(MetaWearBoard)]],
In the CPP library:
/**
* Stop sensor fusion
* @param board Calling object
*/
METAWEAR_API void mbl_mw_sensor_fusion_stop(const MblMwMetaWearBoard* board);
Can be called in Node.JS:
var MetaWear = require('metawear');
MetaWear.mbl_mw_sensor_fusion_stop(device.board);