UNPKG

csafe

Version:

CSAFE protocol implementation for node.

56 lines (39 loc) 1.6 kB
# node-csafe [![Build Status](https://travis-ci.org/mdeltito/node-csafe.svg?branch=master)](https://travis-ci.org/mdeltito/node-csafe) [![npm version](https://badge.fury.io/js/csafe.svg)](https://badge.fury.io/js/csafe) CSAFE protocol implementation for Node.js. # Description This library provides an implementation of the [CSAFE communication protocol](http://www.fitlinxx.com/csafe/) for exercise equipment and performance monitors. It provides an abstraction for the protocol's frame specification, a dictionary of standard CSAFE "commands", and a simple FrameReader for reading/emitting frames from a stream of bytes. # Installation ```sh $ npm install --save csafe ``` # Example ```js import { Command, FrameReader } from csafe // Create a new 'GetCadance' command buffer. // The resulting object contains a structured byte array that represents // the raw command. Frames are automatically byte-stuffed/unstuffed to // ensure control flags do not appear in the frame contents. const command = new Command('GetCadence') // Create a new FrameReader to read frames from a byte stream. // The FrameReader is an EventEmitter that can read an arbitrary stream // of bytes, detect the beginning/end of a Frame, and emit a new Frame // object when a complete frame is received. const frameReader = new FrameReader // A readable `stream` is used as an example and typical use-case. stream.on('data', (data) => { frameReader.read(data) }) frameReader.on('frame', (frame) => { // ... }) ``` # Testing ```sh $ npm test ``` # License The project is licensed under the MIT license.