/** * 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; } };