UNPKG

knxultimate

Version:

KNX IP protocol implementation for Node. This is the ENGINE of Node-Red KNX-Ultimate node.

68 lines (67 loc) 1.8 kB
import { TypedEventEmitter } from '../TypedEmitter'; export type SerialPortSummary = { path: string; manufacturer?: string; serialNumber?: string; vendorId?: string; productId?: string; type?: string; locationId?: string; }; export interface SerialFT12Options { path?: string; baudRate?: number; dataBits?: number; stopBits?: number; parity?: 'none' | 'even' | 'odd'; rtscts?: boolean; dtr?: boolean; timeoutMs?: number; isKBERRY?: boolean; lock?: boolean; } type SerialFT12Events = { ready: () => void; close: () => void; error: (error: Error) => void; cemi: (payload: Buffer) => void; }; export default class SerialFT12 extends TypedEventEmitter<SerialFT12Events> { private readonly options; private port?; private portListeners?; private rxBuffer; private pendingAck; private lastCloseAt?; private awaitingAck?; private sendToggle; private isClosing; private logger; constructor(options: SerialFT12Options); static listPorts(): Promise<SerialPortSummary[]>; open(): Promise<void>; close(): Promise<void>; sendCemiPayload(payload: Buffer): Promise<void>; private initialize; private sendReset; private sendCommMode; private setIndicationSending; private disableGroupFilter; private sendBaosServerItem; private sendBaosPayload; private createSerialPort; private attachPort; private detachPortListeners; private handleChunk; private consumeBytes; private handleShortFrame; private handleLongFrame; private sendAck; private buildLongFrame; private writeFrameWithAck; private writeRaw; private waitForAck; private resolveAck; private waitAfterCloseIfNeeded; } export {};