mirror of
https://github.com/30hours/blah2.git
synced 2024-11-08 12:25:42 +00:00
77 lines
1.6 KiB
JavaScript
77 lines
1.6 KiB
JavaScript
|
const http = require('http');
|
||
|
|
||
|
var nCpi = 10;
|
||
|
var map = [];
|
||
|
var maxhold = '';
|
||
|
var timestamp = '';
|
||
|
const options_timestamp = {
|
||
|
host: '127.0.0.1',
|
||
|
path: '/timestamp',
|
||
|
port: 3000
|
||
|
};
|
||
|
const options_map = {
|
||
|
host: '127.0.0.1',
|
||
|
path: '/map',
|
||
|
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;
|
||
|
};
|
||
|
|
||
|
module.exports.get_data = get_data;
|