2023-11-17 12:27:32 +00:00
|
|
|
const http = require('http');
|
|
|
|
|
|
|
|
var nCpi = 10;
|
|
|
|
var map = [];
|
|
|
|
var maxhold = '';
|
|
|
|
var timestamp = '';
|
|
|
|
const options_timestamp = {
|
|
|
|
host: '127.0.0.1',
|
2023-12-05 13:14:00 +00:00
|
|
|
path: '/api/timestamp',
|
2023-11-17 12:27:32 +00:00
|
|
|
port: 3000
|
|
|
|
};
|
|
|
|
const options_map = {
|
|
|
|
host: '127.0.0.1',
|
2023-12-05 13:14:00 +00:00
|
|
|
path: '/api/map',
|
2023-11-17 12:27:32 +00:00
|
|
|
port: 3000
|
|
|
|
};
|
|
|
|
|
|
|
|
function process(matrixArray) {
|
|
|
|
|
|
|
|
const result = [];
|
|
|
|
|
|
|
|
for (let i = 0; i < matrixArray[0].length; i++) {
|
|
|
|
const row = [];
|
|
|
|
for (let j = 0; j < matrixArray[0][0].length; j++) {
|
|
|
|
let maxVal = matrixArray[0][i][j];
|
|
|
|
for (let k = 1; k < matrixArray.length; k++) {
|
|
|
|
maxVal = Math.max(maxVal, matrixArray[k][i][j]);
|
|
|
|
}
|
|
|
|
row.push(maxVal);
|
|
|
|
}
|
|
|
|
result.push(row);
|
|
|
|
}
|
|
|
|
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_data() {
|
|
|
|
|
|
|
|
// check if timestamp is updated
|
|
|
|
http.get(options_timestamp, function(res) {
|
|
|
|
res.setEncoding('utf8');
|
|
|
|
res.on('data', function (body) {
|
|
|
|
if (timestamp != body)
|
|
|
|
{
|
|
|
|
timestamp = body;
|
|
|
|
http.get(options_map, function(res) {
|
|
|
|
let body_map = '';
|
|
|
|
res.setEncoding('utf8');
|
|
|
|
res.on('data', (chunk) => {
|
|
|
|
body_map += chunk;
|
|
|
|
});
|
|
|
|
res.on('end', () => {
|
|
|
|
try {
|
|
|
|
maxhold = JSON.parse(body_map);
|
|
|
|
map.push(maxhold.data);
|
|
|
|
if (map.length > nCpi) {
|
|
|
|
map.shift();
|
|
|
|
}
|
|
|
|
maxhold.data = process(map);
|
|
|
|
} catch (e) {
|
|
|
|
console.error(e.message);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
setInterval(update_data, 100);
|
|
|
|
|
|
|
|
function get_data() {
|
|
|
|
return maxhold;
|
|
|
|
};
|
|
|
|
|
2023-12-05 13:14:00 +00:00
|
|
|
module.exports.get_data_map = get_data;
|