/* istanbul ignore file */ /* eslint-disable */ import * as stream from 'stream'; // @ts-ignore import slip from 'slip'; import Frame from './frame'; import Debug from "debug"; const debug = Debug('zigbee-herdsman:deconz:driver:parser'); class Parser extends stream.Transform { private buffer: Buffer; private decoder: slip.Decoder; public constructor() { super(); this.onMessage = this.onMessage.bind(this); this.onError = this.onError.bind(this); this.decoder = new slip.Decoder({ onMessage: this.onMessage, maxMessageSize: 1000000, bufferSize: 2048 }); } private onMessage(message: Uint8Array): void { //debug(`message received: ${message}`); this.emit('parsed', message); } private onError(_: Uint8Array, error: string): void { debug(`<-- error '${error}'`); } public _transform(chunk: Buffer, _: string, cb: Function): void { //debug(`<-- [${[...chunk]}]`); this.decoder.decode(chunk); //debug(`<-- [${[...chunk]}]`); cb(); } } export default Parser;