|
@@ -210,22 +210,22 @@ const dataParser = {
|
|
|
'MONEY 2\n' +
|
|
'MONEY 2\n' +
|
|
|
'TIME 2\n' +
|
|
'TIME 2\n' +
|
|
|
'PORT_SECOND_STATUS\n' +
|
|
'PORT_SECOND_STATUS\n' +
|
|
|
- 'POWER 2\n' +
|
|
|
|
|
- 'ELEC 2\n' +
|
|
|
|
|
- 'MONEY 2\n' +
|
|
|
|
|
- 'TIME 2',
|
|
|
|
|
|
|
+ 'POWER_1 2\n' +
|
|
|
|
|
+ 'ELEC_1 2\n' +
|
|
|
|
|
+ 'MONEY_1 2\n' +
|
|
|
|
|
+ 'TIME_1 2',
|
|
|
morldouble:'PORT_FIRST_STATUS\n' +
|
|
morldouble:'PORT_FIRST_STATUS\n' +
|
|
|
'POWER 2\n' +
|
|
'POWER 2\n' +
|
|
|
'ELEC 2\n' +
|
|
'ELEC 2\n' +
|
|
|
'MONEY 2\n' +
|
|
'MONEY 2\n' +
|
|
|
'TIME 2\n' +
|
|
'TIME 2\n' +
|
|
|
'PORT_SECOND_STATUS\n' +
|
|
'PORT_SECOND_STATUS\n' +
|
|
|
- 'POWER 2\n' +
|
|
|
|
|
- 'ELEC 2\n' +
|
|
|
|
|
- 'MONEY 2\n' +
|
|
|
|
|
- 'TIME 2\n' +
|
|
|
|
|
- 'VOLTAGE\n' +
|
|
|
|
|
- 'DEV_TEMPER\n'
|
|
|
|
|
|
|
+ 'POWER_1 2\n' +
|
|
|
|
|
+ 'ELEC_1 2\n' +
|
|
|
|
|
+ 'MONEY_1 2\n' +
|
|
|
|
|
+ 'TIME_1 2\n' +
|
|
|
|
|
+ 'DEV_TEMPER\n' +
|
|
|
|
|
+ 'VOLTAGE\n'
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
function parseData(arr){
|
|
function parseData(arr){
|
|
@@ -301,7 +301,9 @@ function parseProp(arr,str){
|
|
|
datas.push(arr[j]);
|
|
datas.push(arr[j]);
|
|
|
}
|
|
}
|
|
|
let aLong = cmdToDec(datas);
|
|
let aLong = cmdToDec(datas);
|
|
|
- obj[keyProps[0].toLowerCase()] = aLong;
|
|
|
|
|
|
|
+ let propKey = keyProps[0].toLowerCase();
|
|
|
|
|
+ obj[propKey] = aLong;
|
|
|
|
|
+
|
|
|
index+=num;
|
|
index+=num;
|
|
|
}
|
|
}
|
|
|
return obj;
|
|
return obj;
|
|
@@ -346,8 +348,11 @@ function sendBlueData(tempSendData){
|
|
|
.replace(/\s*/g, '')
|
|
.replace(/\s*/g, '')
|
|
|
.replace(/\n/g, '')
|
|
.replace(/\n/g, '')
|
|
|
.replace(/\r/g, '')
|
|
.replace(/\r/g, '')
|
|
|
- console.log("写入数据:"+data);
|
|
|
|
|
- ecBLE.writeBLECharacteristicValue(data, true)
|
|
|
|
|
|
|
+ throttle(function() {
|
|
|
|
|
+ console.log("写入数据:"+data+","+new Date().toLocaleTimeString());
|
|
|
|
|
+ ecBLE.writeBLECharacteristicValue(data, true)
|
|
|
|
|
+ }, 100)();
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
/**
|
|
/**
|
|
|
* 二进制补0
|
|
* 二进制补0
|
|
@@ -503,18 +508,64 @@ export function getUUID(){
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+//--------------------------------
|
|
|
|
|
+let queue = Promise.resolve();
|
|
|
|
|
+
|
|
|
|
|
+function throttle(func, delay) {
|
|
|
|
|
+ return function(...args) {
|
|
|
|
|
+ queue = queue.then(() => {
|
|
|
|
|
+ func.apply(this, args);
|
|
|
|
|
+ return new Promise(resolve => {
|
|
|
|
|
+ setTimeout(resolve, delay)
|
|
|
|
|
+ doResetTime(delay);
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+ };
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// 使用方法:
|
|
|
|
|
+const myFunction = throttle(function() {
|
|
|
|
|
+ console.log('这是一个调用请求'+new Date());
|
|
|
|
|
+}, 1000);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+let resetTimer = null;
|
|
|
|
|
+
|
|
|
|
|
+function doResetTime(delay){
|
|
|
|
|
+ if(resetTimer == null){
|
|
|
|
|
+ resetTimer = setTimeout(function (){
|
|
|
|
|
+ console.log("reset timer"+new Date());
|
|
|
|
|
+ queue = Promise.resolve();
|
|
|
|
|
+ },delay);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ clearTimeout(resetTimer);
|
|
|
|
|
+ resetTimer = null;
|
|
|
|
|
+ doResetTime(delay);
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+//--------------
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
function test(){
|
|
function test(){
|
|
|
- let data = 'AA 67 14 02 00 00 00 00 01 F4 4C 00 01 00 00 00 00 F4 01 4C 00 1B E7 02';
|
|
|
|
|
|
|
+ let data = 'AA,67,14,02,00,00,00,00,50,C3,08,00,02,00,00,00,00,50,C3,14,00,15,E3,B9';
|
|
|
data = data.trim();
|
|
data = data.trim();
|
|
|
- data = data.split(" ");
|
|
|
|
|
|
|
+ data = data.split(",");
|
|
|
|
|
|
|
|
let arr = [];
|
|
let arr = [];
|
|
|
for (let i = 0; i < data.length; i++) {
|
|
for (let i = 0; i < data.length; i++) {
|
|
|
arr.push(parseInt(data[i],16)) ;
|
|
arr.push(parseInt(data[i],16)) ;
|
|
|
}
|
|
}
|
|
|
- arr = [170, 103, 20, 2, 56, 4, 0, 0, 200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 30, 232, 13]
|
|
|
|
|
console.log(arr)
|
|
console.log(arr)
|
|
|
parseData(arr)
|
|
parseData(arr)
|
|
|
}
|
|
}
|
|
|
-// test()
|
|
|
|
|
|
|
+
|
|
|
|
|
+function testQueue(){
|
|
|
|
|
+ for (let i = 0; i < 10; i++) {
|
|
|
|
|
+ sendBlueData(i+"");
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+// testQueue()
|
|
|
|
|
|