UNPKG

knxultimate

Version:

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

110 lines 6.02 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const KNXHeader_1 = __importDefault(require("./KNXHeader")); const KNXSearchRequest_1 = __importDefault(require("./KNXSearchRequest")); const KNXSearchResponse_1 = __importDefault(require("./KNXSearchResponse")); const KNXDescriptionRequest_1 = __importDefault(require("./KNXDescriptionRequest")); const KNXDescriptionResponse_1 = __importDefault(require("./KNXDescriptionResponse")); const KNXSecureSearchRequest_1 = __importDefault(require("./KNXSecureSearchRequest")); const KNXSecureSearchResponse_1 = __importDefault(require("./KNXSecureSearchResponse")); const KNXConnectRequest_1 = __importDefault(require("./KNXConnectRequest")); const KNXConnectResponse_1 = __importDefault(require("./KNXConnectResponse")); const KNXConnectionStateRequest_1 = __importDefault(require("./KNXConnectionStateRequest")); const KNXConnectionStateResponse_1 = __importDefault(require("./KNXConnectionStateResponse")); const KNXDisconnectRequest_1 = __importDefault(require("./KNXDisconnectRequest")); const KNXDisconnectResponse_1 = __importDefault(require("./KNXDisconnectResponse")); const KNXTunnelingRequest_1 = __importDefault(require("./KNXTunnelingRequest")); const KNXTunnelingAck_1 = __importDefault(require("./KNXTunnelingAck")); const KNXRoutingIndication_1 = __importDefault(require("./KNXRoutingIndication")); const HPAI_1 = __importDefault(require("./HPAI")); const KNXConstants_1 = require("./KNXConstants"); class KNXProtocol { static parseMessage(buffer) { const knxHeader = KNXHeader_1.default.createFromBuffer(buffer); const knxData = buffer.subarray(knxHeader.headerLength); let knxMessage; switch (knxHeader.service_type) { case KNXConstants_1.KNX_CONSTANTS.SEARCH_REQUEST: knxMessage = KNXSearchRequest_1.default.createFromBuffer(knxData); break; case KNXConstants_1.KNX_CONSTANTS.SEARCH_RESPONSE: knxMessage = KNXSearchResponse_1.default.createFromBuffer(knxData); break; case KNXConstants_1.KNX_CONSTANTS.SEARCH_RESPONSE_EXTENDED: knxMessage = KNXSecureSearchResponse_1.default.createFromBuffer(knxData); break; case KNXConstants_1.KNX_CONSTANTS.DESCRIPTION_REQUEST: knxMessage = KNXDescriptionRequest_1.default.createFromBuffer(knxData); break; case KNXConstants_1.KNX_CONSTANTS.DESCRIPTION_RESPONSE: knxMessage = KNXDescriptionResponse_1.default.createFromBuffer(knxData); break; case KNXConstants_1.KNX_CONSTANTS.CONNECT_REQUEST: knxMessage = KNXConnectRequest_1.default.createFromBuffer(knxData); break; case KNXConstants_1.KNX_CONSTANTS.CONNECT_RESPONSE: knxMessage = KNXConnectResponse_1.default.createFromBuffer(knxData); break; case KNXConstants_1.KNX_CONSTANTS.CONNECTIONSTATE_REQUEST: knxMessage = KNXConnectionStateRequest_1.default.createFromBuffer(knxData); break; case KNXConstants_1.KNX_CONSTANTS.CONNECTIONSTATE_RESPONSE: knxMessage = KNXConnectionStateResponse_1.default.createFromBuffer(knxData); break; case KNXConstants_1.KNX_CONSTANTS.DISCONNECT_REQUEST: knxMessage = KNXDisconnectRequest_1.default.createFromBuffer(knxData); break; case KNXConstants_1.KNX_CONSTANTS.DISCONNECT_RESPONSE: knxMessage = KNXDisconnectResponse_1.default.createFromBuffer(knxData); break; case KNXConstants_1.KNX_CONSTANTS.TUNNELING_REQUEST: knxMessage = KNXTunnelingRequest_1.default.createFromBuffer(knxData); break; case KNXConstants_1.KNX_CONSTANTS.TUNNELING_ACK: knxMessage = KNXTunnelingAck_1.default.createFromBuffer(knxData); break; case KNXConstants_1.KNX_CONSTANTS.ROUTING_INDICATION: knxMessage = KNXRoutingIndication_1.default.createFromBuffer(knxData); break; case KNXConstants_1.KNX_CONSTANTS.ROUTING_LOST_MESSAGE: break; } return { knxHeader, knxMessage, knxData }; } static newKNXSearchRequest(hpai) { return new KNXSearchRequest_1.default(hpai); } static newKNXSecureSearchRequest(hpai) { return new KNXSecureSearchRequest_1.default(hpai); } static newKNXDescriptionRequest(hpai) { return new KNXDescriptionRequest_1.default(hpai); } static newKNXConnectRequest(cri, hpaiControl = HPAI_1.default.NULLHPAI, hpaiData = HPAI_1.default.NULLHPAI) { return new KNXConnectRequest_1.default(cri, hpaiControl, hpaiData); } static newKNXConnectionStateRequest(channelID, hpaiControl = HPAI_1.default.NULLHPAI) { return new KNXConnectionStateRequest_1.default(channelID, hpaiControl); } static newKNXDisconnectRequest(channelID, hpaiControl = HPAI_1.default.NULLHPAI) { return new KNXDisconnectRequest_1.default(channelID, hpaiControl); } static newKNXDisconnectResponse(channelID, status) { return new KNXDisconnectResponse_1.default(channelID, status); } static newKNXTunnelingACK(channelID, seqCounter, status) { return new KNXTunnelingAck_1.default(channelID, seqCounter, status); } static newKNXTunnelingRequest(channelID, seqCounter, cEMIMessage) { return new KNXTunnelingRequest_1.default(channelID, seqCounter, cEMIMessage); } static newKNXRoutingIndication(cEMIMessage) { return new KNXRoutingIndication_1.default(cEMIMessage); } } exports.default = KNXProtocol; //# sourceMappingURL=KNXProtocol.js.map