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);