csafe
Version:
CSAFE protocol implementation for node.
56 lines (39 loc) • 1.6 kB
Markdown
# node-csafe
[](https://travis-ci.org/mdeltito/node-csafe)
[](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.