ant-plus

A node module for ANT+

Usage no npm install needed!

<script type="module">
  import antPlus from 'https://cdn.skypack.dev/ant-plus';
</script>

README

ant-plus

A node.js module for ANT+

Prerequisites

Libusb is included as a submodule. On Linux, you'll need libudev to build libusb. On Ubuntu/Debian: sudo apt-get install build-essential libudev-dev

Windows

Use Zadig to install the WinUSB driver for your USB device. Otherwise you will get LIBUSB_ERROR_NOT_SUPPORTED when attempting to open devices.

Install

npm install ant-plus

usage

var Ant = require('ant-plus');

Create USB stick

var stick = new Ant.GarminStick3;

Create sensors

var sensor = new Ant.HeartRateSensor(stick);

Attach events

sensor.on('hbData', function (data) {
    console.log(data.DeviceID, data.ComputedHeartRate);
});

stick.on('startup', function () {
    sensor.attach(0, 0);
});

Open stick

if (!stick.open()) {
    console.log('Stick not found!');
}

scanning

sensor.on('hbData', function (data) {
    console.log(data.DeviceID, data.ComputedHeartRate);
});

stick.on('startup', function () {
    sensor.scan();
);

if (!stick.open()) {
    console.log('Stick not found!');
}

Important notes

  • never attach a sensor before receiveing the startup event
  • never attach a new sensor before receiving the attached or detached event of the previous sensor
  • never detach a sensor before receiving the attached or detached event of the previous sensor

Objects

GarminStick2 and GarminStick3

properties

maxChannels

The maximum number of channels that this stick supports; valid only after startup event fired.

methods

is_present()

Checks if the stick is present. Returns true if it is, false otherwise.

open()

Tries to open the stick. Returns false on failure.

openAsync(callback)

Tries to open the stick, waiting for it if not available right now. Returns a cancelation token with a method cancel you can use to stop waiting. callback is a funcion accepting a single Error parameter and it will be called when the stick is open (with the parameter undefined) or in case of failure (with the parameter set to the error).

close()

Closes the stick.

events

startup

Fired after the stick is correctly initialized.

shutdown

Fired after the stick is correctly closed.

Common to all Sensors

methods

attach(channel, deviceId)

Attaches the sensors, using the specified channel and deviceId (use 0 to connect to the first device found).

detach()

Detaches the sensor.

events

attached

Fired after the sensor is correctly attached.

detached

Fired after the sensor is correctly detached.

Common to all Scanners

methods

scan()

Attaches the sensors and starts scanning for data from every devices in range.

detach()

Detaches the sensor.

events

attached

Fired after the sensor is correctly attached.

detached

Fired after the sensor is correctly detached.

HeartRate

events

hbData

Fired when new heartbeat data is received.

SpeedCadence

methods

setWheelCircumference(circumferenceInMeters)

Calibrates the speed sensor. Defaults to a wheel with diameter of 70cm (= 2.199)

events

speedData

Fired when a new wheel speed is calculated

cadenceData

Fired when a new pedal cadence is calculated

StrideSpeedDistance

events

ssdData

Fired when new data been calculated.

BicyclePower

events

powerData

Fired when new power has been calculated.

FitnessEquipment

events

fitnessData

Fired when new data is received.