Decode stream: bytes to Baichuan messages.

Examples

Decode a subscribe reply that arrives in two chunks

import { assertEquals } from "@std/assert";
import { decodeHex } from "@std/encoding/hex";
import { createBaichuanDecodeStream } from "@hertzg/reolink-api/streams/decode";

const bytes = decodeHex("f0debc0a1f00000000000000fb030000c800146400000000");

const messages = await Array.fromAsync(
  ReadableStream.from([bytes.subarray(0, 10), bytes.subarray(10)])
    .pipeThrough(createBaichuanDecodeStream()),
);

assertEquals(messages.length, 1);
assertEquals(messages[0].header.cmdId, 31);
assertEquals(messages[0].header.status, 200);

Functions

f
createBaichuanDecodeStream(): TransformStream<Uint8Array, BaichuanMessage>

Creates a TransformStream that frames a Baichuan byte stream into messages.