CSAFE protocol implementation for Node.js.
This library provides an implementation of the CSAFE communication protocol 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.
See also node-concept2, which is a HID wrapper that enabled communication with Concept2 monitor devices using this protocol.
$ npm install --save csafe
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) => {
// ...
})
$ npm test
The project is licensed under the MIT license.