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();
  }

/cobs-transform-streams/

    Package Sidebar

    Install

    npm i cobs-transform-streams

    Weekly Downloads

    2

    Version

    0.1.0

    License

    MIT

    Unpacked Size

    5.18 kB

    Total Files

    3

    Last publish

    Collaborators

    • kenchris