JSFiddle - React, Tailwind, and code Playground
by KarmaProd
HTML
<div id="out">
</div>
JavaScript
function pad(num, width){
width = width || 2;
num = num + '';
return (num.length >= width ? num : pad('0'+num,width));
}
function decimalToHexString(intNum){
if (intNum < 0)
intNum = 0xFFFFFFFF + intNum + 1;
return pad(intNum.toString(16),8);
}
function valueToHexStr(number){
var intNum = parseInt(parseFloat(number) * 1000);
return decimalToHexString(intNum);
}
// ----------------- BEGIN ------------
var msg = {};
var lastline = "2928,2019-03-15,18:59:00,30252.00,3491.00";
var fields = lastline.split(',');
var id = fields[0];
var date = fields[1];
var time = fields[2];
var values = fields.slice(); values.splice(0,3); // drop the first 3 elements
// if input datetime is UTC
//var timestamp = new Date(date + 'T' + time + 'Z').getTime() / 1000 | 0;
// if input datetime is localtime:
var timestamp = new Date(date + 'T' + time).getTime() / 1000 | 0;
hexrec = values.map(valueToHexStr).join('');
msg.unitid = msg.unitid;
msg.timestamp = timestamp;
msg.measure = hexrec;
//msg.id = id;
msg.date = date;
msg.time = time;
msg.values = values;
out = JSON.stringify(msg);
$('#out').html(out);