한국공항공사(KAC) - Front End
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

87 lines
2.0 KiB

const { getConnection, writeData } = require('./pav-client');
const { getCoordsFormBetweenCoord, dumyData } = require('./pav-utils');
// const host = '192.168.0.30';
// const host = "localhost"
const host = '211.253.38.218';
const port = 8082;
// 기본정보
const prefix = 'PALUTM-';
const pathSampleCoord = [
[37.3450207, 126.6296542],
[37.521245, 126.6107763],
[37.4891845, 126.5513135],
[37.3450207, 126.6296542]
];
// const pathSampleCoord = [
// [42.5515, 126.655],
// [42.5515, 126.655],
// [42.5515, 126.655],
// [42.5515, 126.655],
// [42.5515, 126.655],
// [42.5515, 126.655],
// [42.5515, 126.655],
// [42.5515, 126.655],
// [42.5515, 126.655],
// [42.5515, 126.655]
// ];
const divDist = 10; // [m]
// 특정거리에 따른 좌표 추출
const getCoords = coords => {
if (!coords || coords.length < 1) return;
const totalCoords = [];
for (let j = 1; j < 500; j++) {
for (let i = 1; i < coords.length; i++) {
const divCoords = getCoordsFormBetweenCoord(
coords[i - 1],
coords[i],
divDist
);
totalCoords.push(...divCoords);
}
}
return totalCoords;
};
const getClient = () => {
const dronName = prefix + '003';
const client = {};
client.dronName = dronName;
client.socket = getConnection(dronName, host, port);
client.data = getCoords(pathSampleCoord);
return client;
};
const sendData = (client, cnt) => {
const data = {
...dumyData,
terminalId: client.dronName,
body: [
{
...dumyData.body[0],
objectId: client.dronName,
lat: client.data[cnt][0],
lon: client.data[cnt][1],
heading: client.data[cnt][2]
}
]
};
writeData(client.socket, JSON.stringify(data));
iteratorSendData(++cnt);
};
const client = getClient();
const iteratorSendData = (cnt = 0) => {
if (cnt >= client.data.length) {
client.socket.destroy();
return;
}
setTimeout(() => sendData(client, cnt), 1000);
};
iteratorSendData();