/**
|
* Created by bin.shen on 01/04/2017.
|
*/
|
|
module.exports.toDec = function(hex) {
|
if(typeof hex === 'number') {
|
return parseInt(hex);
|
}
|
return Number('0x' + hex);
|
};
|
|
module.exports.padLeft = function(str,length) {
|
if(str.toString().length >= length) {
|
return str.toString();
|
} else {
|
return this.padLeft("0" + str.toString(), length);
|
}
|
};
|
|
module.exports.get_data_store = function(data, length) {
|
data = data.substr(6, length);
|
//console.log(data);
|
// QN= 开始到 &&
|
|
var items = data.match(/CP=&&.*&&/g);
|
var data_cp;
|
if(items != null && items instanceof Array && items.length > 0) {
|
data_cp = items[0]; // CP=&&...&&
|
data = data.replace(";" + data_cp, ""); // QN=20181204130444001;ST=31;CN=2061;PW=123456;MN=P5DND7A0392209
|
data_cp = data_cp.substr(5, data_cp.length - 7); // 去掉开头 CP=&& 和结尾 &&
|
}
|
var data_store = {};
|
var commands = data.split(";");
|
commands.forEach(function (command) {
|
var cmds = command.split("=");
|
var key = cmds[0];
|
var value = cmds[1];
|
data_store[key] = value;
|
});
|
data_store['CP'] = data_cp;
|
//console.log(data_store);
|
return data_store;
|
};
|
|
module.exports.get_cp_data_store = function(data) {
|
var data_items = data.split(";"); // [array]
|
var data_store = {};
|
data_items.forEach(function(data_item) {
|
var data_item1s = data_item.split(";");
|
data_item1s.forEach(function(data_item1) {
|
var data_item2s = data_item1.split(",");
|
data_item2s.forEach(function(data_item2) {
|
var items = data_item2.split("=");
|
var item1 = items[0];
|
var item2 = items[1];
|
if(item1.endsWith("-Rtd")) {
|
var key = item1.replace("-Rtd", "");
|
data_store[key.toString()] = item2;
|
}else{
|
let k = item1;
|
data_store[k.toString()] = item2;
|
}
|
});
|
});
|
});
|
return data_store;
|
};
|
|
module.exports.findNextCommand = function(data) {
|
var x = data.indexOf("##");
|
var y = data.indexOf("@@");
|
if(x == -1) {
|
if(y == -1) {
|
return "";
|
} else {
|
return data.substr(y)
|
}
|
} else {
|
if(y == -1) {
|
return data.substr(x)
|
} else {
|
return data.substr(Math.min(x, y))
|
}
|
}
|
};
|
|
module.exports.get_datatime = function (data) {
|
let data_items = data.split(";");
|
if(data_items[0].startsWith('DataTime')){
|
let dt = data_items[0];
|
let items = dt.split("=");
|
let v = items[1];
|
let pattern = /(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/;
|
let data_time = v.replace(pattern, '$1-$2-$3 $4:$5:$6'); // 识别为格式化时间
|
let ts = Date.parse(data_time); // unix timestamp
|
return ts;
|
}else{
|
let ts = Date.parse(new Date()); // current time
|
return ts;
|
}
|
};
|