한국공항공사(KAC) - 서버
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.

89 lines
2.0 KiB

10 months ago
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.11.189';
const port = 8082;
// 기본정보
const prefix = 'PALUTM-';
const pathSampleCoord = [
9 months ago
[37.571954, 126.775258],
[37.566375, 126.781266],
[37.562361, 126.783584],
[37.558143, 126.785987],
[37.553039, 126.788819]
10 months ago
];
// 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 = () => {
9 months ago
const dronName = prefix + '095';
10 months ago
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();