knxnetjs
Version:
A TypeScript library for KNXnet/IP communication
102 lines • 2.96 kB
TypeScript
import { EventEmitter } from "events";
import { CEMIFrame } from "./frames";
import { HPAI } from "./types/hpai";
export interface KNXBusInterface extends EventEmitter {
send(frame: CEMIFrame): Promise<void>;
on(event: "recv", listener: (frame: CEMIFrame) => void): this;
on(event: "error", listener: (error: Error) => void): this;
open(): Promise<void>;
close(): Promise<void>;
writeProperty(interfaceObject: number, objectInstance: number, propertyId: number, numberOfElements: number, startIndex: number, data: Buffer): Promise<void>;
readProperty(interfaceObject: number, objectInstance: number, propertyId: number, numberOfElements: number, startIndex: number): Promise<Buffer>;
}
export interface KNXRoutingFrame {
serviceType: number;
data: Buffer;
}
export interface RoutingIndicationFrame extends KNXRoutingFrame {
serviceType: 0x0530;
cemiFrame: Buffer;
}
export interface RoutingLostMessageFrame extends KNXRoutingFrame {
serviceType: 0x0531;
deviceState: number;
numberOfLostMessages: number;
}
export interface RoutingBusyFrame extends KNXRoutingFrame {
serviceType: 0x0532;
deviceState: number;
waitTime: number;
controlField: number;
}
export interface KNXNetRoutingOptions {
multicastAddress?: string;
port?: number;
ttl?: number;
}
export interface DiscoveryEndpoint {
name: string;
ip: string;
port: number;
protocol: number;
capabilities: number;
deviceState: number;
knxAddress?: string;
macAddress?: string;
serialNumber?: string;
projectInstallationId?: number;
friendlyName?: string;
}
export interface DiscoveryOptions {
timeout?: number;
searchResponseTimeout?: number;
}
export { HPAI };
export interface KNXNetTunnelingOptions {
serverAddress: string;
serverPort?: number;
localPort?: number;
heartbeatInterval?: number;
connectionTimeout?: number;
busmonitorMode?: boolean;
}
export interface KNXNetManagementOptions {
serverAddress: string;
serverPort?: number;
localPort?: number;
connectionTimeout?: number;
}
export interface KNXUSBOptions {
devicePath?: string;
baudRate?: number;
autoConnect?: boolean;
busmonitorMode?: boolean;
}
export declare enum KNXInterfaceType {
ROUTING = "routing",
TUNNELING = "tunneling",
USB = "usb"
}
export interface KNXInterfaceInformation {
type: KNXInterfaceType;
name: string;
description?: string;
address?: string;
port?: number;
protocol?: number;
capabilities?: number;
knxAddress?: string;
macAddress?: string;
serialNumber?: string;
friendlyName?: string;
devicePath?: string;
vendorId?: number;
productId?: number;
manufacturer?: string;
product?: string;
supportsTunneling(): boolean;
supportsRouting(): boolean;
supportsBusmonitor(): boolean;
toString(): string;
}
//# sourceMappingURL=types.d.ts.map