UNPKG

enip-ts

Version:

Typescript implementation of the Ethernet/IP™ protocol.

86 lines 3.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const enip_1 = require("../enip"); const messageRouter_1 = require("../enip/cip/messageRouter"); const server_1 = require("../server"); const local = true; (async () => { console.log("statt"); if (local) { const actualData = Buffer.alloc(4); actualData.writeUInt32BE(0xF0F0F0F0); const vector = { 0x0E: (data) => { if (data.path.class == 4 && data.path.instance == 150 && data.path.attribute == 3) return actualData; else return; }, 0x10: (data) => { if (data.path.class == 4 && data.path.instance == 150 && data.path.attribute == 3 && data.data) { data.data.copy(actualData); return actualData; } else return; } }; const server = new server_1.ENIPServer(vector); const listen = await server.listen(); console.log(listen); const controller = new enip_1.SocketController(); controller.connect("127.0.0.1").then((session) => { console.log("connect"); if (session === undefined) return; //Path for ethernet ip protocol const idPath = Buffer.from([0x20, 0x04, 0x24, 0x96, 0x30, 0x02]); //Message router packet const MR = messageRouter_1.MessageRouter.build(0x0E, idPath, Buffer.alloc(0)); //write data to the controller const w = controller.write(MR, false, 10).then(() => { console.log("write"); controller.events.once("SendRRData Received", (result) => { console.log("received", result); for (const packet of result) { if (packet.data.length == 0) continue; if (packet.TypeID == 178 && packet.data.length == (4 + (32 / 8)) && packet.data.readUIntLE(0, 1) == 0x8E) { console.log("packet received", packet.data); } } }); }); console.log(w); }); } else { const k = new enip_1.SocketController(); k.connect("192.168.1.4").then(async (session) => { if (session === undefined) return; //Path for ethernet ip protocol const idPath = Buffer.from([0x20, 0x04, 0x24, 0x96, 0x30, 0x03]); //Message router packet const MR = messageRouter_1.MessageRouter.build(0x0E, idPath, Buffer.alloc(0)); for (let i = 0; i < 5; i++) { //write data to the controller k.write(MR, false, 10).then(() => { k.events.once("SendRRData Received", (result) => { for (const packet of result) { if (packet.data.length == 0) continue; const message = messageRouter_1.MessageRouter.parse(packet.data); console.log(message); if (packet.TypeID == 178 && packet.data.length == (4 + (32 / 8)) && packet.data.readUIntLE(0, 1) == 0x8E) { console.log("packet received", packet.data); } } }); }); await new Promise(resolve => setTimeout(resolve, 100)); } }); } })(); //# sourceMappingURL=app.js.map