You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
louisafriederike b00d9f80ed copying eixogen 10 months ago
..
dist copying eixogen 10 months ago
src copying eixogen 10 months ago
tests copying eixogen 10 months ago
.jshintrc copying eixogen 10 months ago
.npmignore copying eixogen 10 months ago
GPL-LICENSE.txt copying eixogen 10 months ago
Gruntfile.js copying eixogen 10 months ago
MIT-LICENSE.txt copying eixogen 10 months ago
README.md copying eixogen 10 months ago
bower.json copying eixogen 10 months ago
package.json copying eixogen 10 months ago

README.md

slip.js

slip.js is a JavaScript library for encoding and decoding Serial Line Internet Protocol packets. It works in both Node.js and in a web browser.

How Do I Use It?

slip.js provides two pieces of functionality: encoding and decoding messages.

Encoding

Encoding is stateless and synchronous. slip.encode() takes any array-like object containing bytes, such as a Uint8Array, Node.js Buffer, ArrayBuffer, or plain JavaScript Array. It returns a Uint8Array containing the encoded message.

Example

var message = new Uint8Array([99, 97, 116, 33]);
var slipEncoded = slip.encode(message); // Result is [192, 99, 97, 33, 192]

Options

Option Type Description Default value
bufferPadding Number _Optional_. The number of bytes to add to the message's length when initializing the encoder's internal buffer. 4
offset Number _Optional_. An offset index into the data argument to start reading the message from. undefined
byteLength Number _Optional_. The number of bytes of the data argument to read. undefined

Decoding

Decoding is stateful and asynchronous. You need to instantiate a slip.Decoder object, providing a callback that will be invoked whenever a complete message is received. By default, messages are limited to 10 MB in size. You can increase this value by providing a maxBufferSize option to the Decoder constructor, specified in bytes.

To decode a SLIP packet, call decode(). Whenever the slip.Decoder detects the end of an incoming message, it will call its onMessage callback.

Example

var logMessage = function (msg) {
    console.log("A SLIP message was received! Here is it: " + msg);
};

var decoder = new slip.Decoder({
    onMessage: logMessage,
    maxMessageSize: 209715200,
    bufferSize: 2048
});

decoder.decode(packet);
decoder.decode(otherPacket);

Options

Option Type Description Default value
bufferSize Number _Optional_. The initial size of the decoder's internal buffer. It will be resized as necessary. 1024
maxMessageSize Number _Optional_. The maximum size of incoming messages, in bytes. Messages larger than this value will cause the onError callback to be invoked. 10485760 (10 MB)
onMessage Function A callback that will be invoked whenever a complete message is decoded. undefined
onError Function A callback that will be invoked whenever an error occurs. undefined

Events

The onMessage callback's signature is:

Argument Type Description
msg Uint8Array The decoded message, with SLIP characters removed.

The onError callback's signature is:

Argument Type Description
msgBuffer Uint8Array A copy of the internal message buffer.
errorMsg String The error message.

License

slip.js is written by Colin Clark and distributed under the MIT and GPL 3 licenses.