UNPKG

knxultimate

Version:

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

53 lines 2.53 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const CEMIConstants_1 = __importDefault(require("./CEMIConstants")); const LDataInd_1 = __importDefault(require("./LDataInd")); const LDataCon_1 = __importDefault(require("./LDataCon")); const LDataReq_1 = __importDefault(require("./LDataReq")); const ControlField_1 = __importDefault(require("./ControlField")); const NPDU_1 = __importDefault(require("./NPDU")); class CEMIFactory { static createFromBuffer(type, buffer, offset) { switch (type) { case CEMIConstants_1.default.L_DATA_IND: return LDataInd_1.default.createFromBuffer(buffer, offset); case CEMIConstants_1.default.L_DATA_CON: return LDataCon_1.default.createFromBuffer(buffer, offset); case CEMIConstants_1.default.L_DATA_REQ: return LDataReq_1.default.createFromBuffer(buffer, offset); default: throw new Error(`Unsupported type cEMI message type ${type}`); } } static newLDataRequestMessage(requestType, srcAddress, dstAddress, data) { const controlField = new ControlField_1.default(); const npdu = new NPDU_1.default(); npdu.tpci = NPDU_1.default.TPCI_UNUMBERED_PACKET; if (requestType === 'write') npdu.action = NPDU_1.default.GROUP_WRITE; if (requestType === 'response') npdu.action = NPDU_1.default.GROUP_RESPONSE; if (requestType === 'read') npdu.action = NPDU_1.default.GROUP_READ; npdu.data = data; return new LDataReq_1.default(null, controlField, srcAddress, dstAddress, npdu); } static newLDataIndicationMessage(requestType, srcAddress, dstAddress, data) { const controlField = new ControlField_1.default(); const npdu = new NPDU_1.default(); npdu.tpci = NPDU_1.default.TPCI_UNUMBERED_PACKET; if (requestType === 'write') npdu.action = NPDU_1.default.GROUP_WRITE; if (requestType === 'response') npdu.action = NPDU_1.default.GROUP_RESPONSE; if (requestType === 'read') npdu.action = NPDU_1.default.GROUP_READ; npdu.data = data; return new LDataInd_1.default(null, controlField, srcAddress, dstAddress, npdu); } } exports.default = CEMIFactory; //# sourceMappingURL=CEMIFactory.js.map