cobs-transform-streams

0.1.0 • Public • Published

Consistent Overhead Byte Stuffing Transform Streams

Encode or decode using COBS (Consistent Overhead Byte Stuffing) using COBS Transfors Streams (https://streams.spec.whatwg.org/#ts-class)

More info: https://en.wikipedia.org/wiki/Consistent_Overhead_Byte_Stuffing

Example

Instantiation and use

  const decoder = new TransformStream(new COBSDecoderTransformer);

Reading data

  const reader = decoder.readable.getReader();

  function processData(chunk) {
    let { done, value } = chunk;
    if (done) {
      return;
    }

    const view = new DataView(value.buffer);

    // do stuff with data.
    return reader.read().then(processData);
  };

  reader.read().then(processData);

Writing data

  const writer = decoder.readable.getWriter();

  async readFromDevice() {
    // Example using Web USB to get 32 bytes on endpoint 5
    const transfer = await this.device.transferIn(5, 32);

    const data = new Uint8Array(transfer.data.buffer);
    writer.write(data);

    this.readFromDevice();
  }

Readme

Keywords

Package Sidebar

Install

npm i cobs-transform-streams

Weekly Downloads

1

Version

0.1.0

License

MIT

Unpacked Size

5.18 kB

Total Files

3

Last publish

Collaborators

  • kenchris