UNPKG

s7-server

Version:
117 lines 3.15 kB
/** * ISO-on-TCP Protocol Implementation (RFC 1006) * Handles the transport layer for S7 communication */ import { Buffer } from 'buffer'; export declare const ISO_TCP_VERSION = 3; export declare const ISO_TCP_PORT = 102; export declare const MAX_TSAP_LENGTH = 16; export declare const MAX_ISO_FRAGMENTS = 64; export declare const ISO_PAYLOAD_SIZE = 4096; export declare const PDU_TYPE_CONNECTION_REQUEST = 224; export declare const PDU_TYPE_CONNECTION_CONFIRM = 208; export declare const PDU_TYPE_DISCONNECT_REQUEST = 128; export declare const PDU_TYPE_DISCONNECT_CONFIRM = 192; export declare const PDU_TYPE_DATA_TRANSFER = 240; export declare const PDU_EOT = 128; export interface TPKTHeader { version: number; reserved: number; length: number; } export interface COTPConnectionHeader { length: number; pduType: number; dstRef: number; srcRef: number; classOption: number; } export interface COTPDataHeader { length: number; pduType: number; eotNumber: number; } export interface ConnectionParams { srcTSAP: number; dstTSAP: number; pduSize: number; maxOutstanding: number; maxOutstandingCalled: number; } export declare enum ConnectionState { DISCONNECTED = 0, CONNECTING = 1, CONNECTED = 2, DISCONNECTING = 3 } export declare class ISOTCPProtocol { private connections; private connectionParams; private sequenceNumbers; /** * Create TPKT header */ static createTPKTHeader(length: number): Buffer; /** * Parse TPKT header */ static parseTPKTHeader(data: Buffer): TPKTHeader | null; /** * Create connection request PDU */ static createConnectionRequest(params: ConnectionParams): Buffer; /** * Create connection confirm PDU */ static createConnectionConfirm(params: ConnectionParams): Buffer; /** * Create data transfer PDU */ static createDataTransfer(data: Buffer, eot?: boolean): Buffer; /** * Parse connection request/confirm */ static parseConnectionPDU(data: Buffer): { header: COTPConnectionHeader; params: ConnectionParams; } | null; /** * Parse data transfer PDU */ static parseDataTransfer(data: Buffer): { header: COTPDataHeader; payload: Buffer; } | null; /** * Parse connection parameters */ private static parseConnectionParams; /** * Get PDU size code from size */ private static getPDUSizeCode; /** * Get PDU size from code */ private static getPDUSizeFromCode; /** * Validate TSAP parameters */ static validateTSAP(srcTSAP: number, dstTSAP: number): boolean; /** * Calculate negotiated PDU size */ static calculatePDUSize(requestedSize: number, maxSize?: number): number; /** * Check if data is a complete ISO-TCP PDU */ static isCompletePDU(data: Buffer): boolean; /** * Extract complete PDUs from buffer */ static extractPDUs(buffer: Buffer): { pdus: Buffer[]; remaining: Buffer; }; } //# sourceMappingURL=iso-tcp.d.ts.map