const {getConnection, writeData} = require("./pav-client") const {dumyData} = require("./pav-utils") // const host = "192.168.0.24" // const host = "localhost" const host = "211.253.38.218" const port = 8082 const prefix = 'TEST-DRON-' const severalDrones = (cnt) => { // 클라이언트 정보 저장공간 const clients = []; // 최초 좌표 // y - y' : 37.57 -> 35.36 // x - x' : 126.60 -> 128.94 const firstCoord = [37.57, 126.6]; const lastCoord = [35.36, 128.94]; // 좌표 차이 계산 const diffX = firstCoord[0] - lastCoord[0]; const diffY = lastCoord[1] - firstCoord[1]; // 구분점 const divCnt = Math.round(Math.sqrt(cnt)); const divDiifX = diffX / divCnt; const divDiifY = diffY / divCnt; // 초기값 저장 for (let i = 0; i < cnt; i++) { const client = {}; const suffix = i.toString().padStart(3, '0') const dronName = prefix + suffix; // client client.dronName = dronName; client.socket = getConnection(dronName, host, port); const divX = i % divCnt; const divY = Math.floor(i / divCnt); const x = Number((firstCoord[0] - (divX * divDiifX)).toFixed(5)) || 0; const y = Number((firstCoord[1] + (divY * divDiifY)).toFixed(5)) || 0; const initialData = { ...dumyData, terminalId: dronName, body: [ { ...dumyData.body[0], objectId: dronName, lat: x, lon: y } ] } client.data = initialData; console.log(dronName, x, y, JSON.stringify(initialData)) clients.push(client); } return clients; } // const clients = severalDrones(100); const dist = 0.01; const sendData = (cnt) => { const direction = Math.floor(cnt/10) % 4; clients.forEach((item) => { // console.log(cnt, item.data.body[0].lat, item.data.body[0].lon) switch (direction) { case 1: item.data.body[0].lat = Number((item.data.body[0].lat - dist).toFixed(5)) break; case 2: item.data.body[0].lon = Number((item.data.body[0].lon - dist).toFixed(5)) break; case 3: item.data.body[0].lat = Number((item.data.body[0].lat + dist).toFixed(5)) break; default: item.data.body[0].lon = Number((item.data.body[0].lon + dist).toFixed(5)) break; } writeData(item.socket, JSON.stringify(item.data)); }) if(cnt >= 39) cnt = null; iteratorSendData(++cnt); } const iteratorSendData = (cnt = 0) => { setTimeout(() => sendData(cnt), 1000); } iteratorSendData();