|
|
@@ -103,22 +103,62 @@ const deviceTool = {
|
|
|
let arr = [85,253,0,253];
|
|
|
sendData(arr)
|
|
|
},
|
|
|
- sendWifiPwd(wifi,pwd){
|
|
|
- let arr = buildWifiPwd(wifi,pwd)
|
|
|
+ sendPwd(pwd){
|
|
|
+ let arr = stringToHex(pwd,'a1')
|
|
|
+ arr = changeArrToTen(arr);
|
|
|
+ addLast(arr)
|
|
|
+ sendData(arr)
|
|
|
+ },
|
|
|
+ sendWifi(wifi){
|
|
|
+ let arr = stringToHex(wifi,'a0')
|
|
|
+ arr = changeArrToTen(arr);
|
|
|
+ addLast(arr)
|
|
|
+ sendData(arr)
|
|
|
+ },
|
|
|
+ sendEnd(ok){
|
|
|
+ let arr = stringToHex(ok,'a2')
|
|
|
+ arr = changeArrToTen(arr);
|
|
|
addLast(arr)
|
|
|
sendData(arr)
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
-function buildWifiPwd(wifi,pwd){
|
|
|
- let arr = [85,160,wifi.length+pwd.length+1];
|
|
|
- for (let i = 0; i < wifi.length; i++) {
|
|
|
- let c = wifi.charCodeAt(0);
|
|
|
- arr.push(c);
|
|
|
+function changeArrToTen(arr){
|
|
|
+ const hexArr = arr.map(str => {
|
|
|
+ let num = parseInt(str,16);
|
|
|
+ return num;
|
|
|
+ });
|
|
|
+ return hexArr;
|
|
|
+}
|
|
|
+function addLast16(arr){
|
|
|
+ let total = 0;
|
|
|
+ for(let i =3;i<arr.length;i++){
|
|
|
+ const data =arr[i];
|
|
|
+ total += parseInt(data,16);
|
|
|
}
|
|
|
- arr.push(59)
|
|
|
-
|
|
|
- for (let i = 0; i < pwd.length; i++) {
|
|
|
- let c = pwd.charCodeAt(0);
|
|
|
+ total = total.toString(2);
|
|
|
+ if(total.length>8){
|
|
|
+ let valueStrLen = total.length;
|
|
|
+ total = total.substring(valueStrLen-8,valueStrLen);
|
|
|
+ }
|
|
|
+ total = parseInt(total,2)
|
|
|
+ arr.push(total);
|
|
|
+}
|
|
|
+function stringToHex(str,key) {
|
|
|
+ let len = str.length;
|
|
|
+ let len16 = len.toString(16).padStart(2, '0');
|
|
|
+ let arr = ['55',key,len16];
|
|
|
+ for (let i = 0; i < str.length; i++) {
|
|
|
+ const char = str.charCodeAt(i);
|
|
|
+ const hexChar = char.toString(16).padStart(2, '0');
|
|
|
+ arr.push(hexChar);
|
|
|
+ }
|
|
|
+ return arr;
|
|
|
+}
|
|
|
+function buildWifiPwd(wifi,key){
|
|
|
+ let arr = [85,key,wifi.length+1];
|
|
|
+ for (let i = 0; i < wifi.length; i++) {
|
|
|
+ let c = wifi.charCodeAt(i);
|
|
|
arr.push(c);
|
|
|
}
|
|
|
return arr;
|
|
|
@@ -146,7 +186,7 @@ function sendData(arr){
|
|
|
|
|
|
function changeArr(arr){
|
|
|
const hexArr = arr.map(num => {
|
|
|
- let str = num.toString(16); // 将每个数字转换为16进制字符串
|
|
|
+ let str = num.toString(16); // 将每个数字转换为16进制字符串
|
|
|
if(str.length == 1){
|
|
|
return "0"+str.toUpperCase();
|
|
|
}else{
|
|
|
@@ -157,10 +197,10 @@ function changeArr(arr){
|
|
|
}
|
|
|
|
|
|
const dataParser = {
|
|
|
- /**
|
|
|
- * "data":[170,96,33,1,8,244,1,231,3,1,208,32,7,9,5,22,8,0,0,0,5,128,12,0,0,0,0,12,15,18,8,7,8,7,8,7,120]
|
|
|
- * "real_data":{"card_avail":1,"peak_price":8,"cost":500,"time_limit":999,"fee_type":1,"max_power":8400,"peak_service_price":7,"volume":9,"bottom_price":5,"botton_end":22,"bottom_start":8,"qr_id_low":0,"qr_id_middle":0,"qr_id_high":0,"bottom_service_price":5,"max_current":3200,"cp_check_off":0,"fee_show_off":0,"time1_end":12,"time2_end":15,"time3_end":18,"time1_price":8,"time1_price_service":7,"time2_price":8,"time2_sercie_price":7,"time3_price":8,"time3_service_price":7},"type":96}
|
|
|
- */
|
|
|
+/**
|
|
|
+ * "data":[170,96,33,1,8,244,1,231,3,1,208,32,7,9,5,22,8,0,0,0,5,128,12,0,0,0,0,12,15,18,8,7,8,7,8,7,120]
|
|
|
+ * "real_data":{"card_avail":1,"peak_price":8,"cost":500,"time_limit":999,"fee_type":1,"max_power":8400,"peak_service_price":7,"volume":9,"bottom_price":5,"botton_end":22,"bottom_start":8,"qr_id_low":0,"qr_id_middle":0,"qr_id_high":0,"bottom_service_price":5,"max_current":3200,"cp_check_off":0,"fee_show_off":0,"time1_end":12,"time2_end":15,"time3_end":18,"time1_price":8,"time1_price_service":7,"time2_price":8,"time2_sercie_price":7,"time3_price":8,"time3_service_price":7},"type":96}
|
|
|
+ */
|
|
|
mainboard:'CARD_AVAIL\n' +
|
|
|
'PEAK_PRICE\n' +
|
|
|
'COST 2\n' +
|
|
|
@@ -242,10 +282,10 @@ function parseData(arr){
|
|
|
let type = arr[1];
|
|
|
let str = "";
|
|
|
if(type == 96){//主板
|
|
|
- str = dataParser.mainboard;
|
|
|
+ str = dataParser.mainboard;
|
|
|
}
|
|
|
if(type == 103){
|
|
|
- let len = arr[2];
|
|
|
+ let len = arr[2];
|
|
|
if(len == 18){
|
|
|
str = dataParser.portdetail.double;
|
|
|
}
|
|
|
@@ -276,7 +316,7 @@ function parseData(arr){
|
|
|
let obj = parseProp(arr,str);
|
|
|
data.type = type;
|
|
|
data.real_data = obj;
|
|
|
- return data;
|
|
|
+ return data;
|
|
|
}
|
|
|
function parseUUID(arr){
|
|
|
let str = "";
|
|
|
@@ -323,34 +363,34 @@ function parseProp(arr,str){
|
|
|
* @return
|
|
|
*/
|
|
|
function cmdToDec(cmds) {
|
|
|
- if (!cmds) {
|
|
|
- return -1;
|
|
|
- }
|
|
|
- let len = cmds.length;
|
|
|
- if (len === 1) {
|
|
|
- return cmds[0];
|
|
|
- } else if (len === 2) {
|
|
|
- let first = cmds[0];
|
|
|
- let second = cmds[1];
|
|
|
- let firstStr = addZero(first.toString(2));
|
|
|
- let secondStr = addZero(second.toString(2));
|
|
|
- let allStr = secondStr + firstStr;
|
|
|
- let i = parseInt(allStr, 2);
|
|
|
- return i;
|
|
|
- } else if (len === 4) {
|
|
|
- let first = cmds[0];
|
|
|
- let second = cmds[1];
|
|
|
- let third = cmds[2];
|
|
|
- let forth = cmds[3];
|
|
|
- let firstStr = addZero(first.toString(2));
|
|
|
- let secondStr = addZero(second.toString(2));
|
|
|
- let thirdStr = addZero(third.toString(2));
|
|
|
- let forthStr = addZero(forth.toString(2));
|
|
|
- let allStr = forthStr + thirdStr + secondStr + firstStr;
|
|
|
- let i = parseInt(allStr, 2);
|
|
|
- return i;
|
|
|
- }
|
|
|
- return 0;
|
|
|
+ if (!cmds) {
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ let len = cmds.length;
|
|
|
+ if (len === 1) {
|
|
|
+ return cmds[0];
|
|
|
+ } else if (len === 2) {
|
|
|
+ let first = cmds[0];
|
|
|
+ let second = cmds[1];
|
|
|
+ let firstStr = addZero(first.toString(2));
|
|
|
+ let secondStr = addZero(second.toString(2));
|
|
|
+ let allStr = secondStr + firstStr;
|
|
|
+ let i = parseInt(allStr, 2);
|
|
|
+ return i;
|
|
|
+ } else if (len === 4) {
|
|
|
+ let first = cmds[0];
|
|
|
+ let second = cmds[1];
|
|
|
+ let third = cmds[2];
|
|
|
+ let forth = cmds[3];
|
|
|
+ let firstStr = addZero(first.toString(2));
|
|
|
+ let secondStr = addZero(second.toString(2));
|
|
|
+ let thirdStr = addZero(third.toString(2));
|
|
|
+ let forthStr = addZero(forth.toString(2));
|
|
|
+ let allStr = forthStr + thirdStr + secondStr + firstStr;
|
|
|
+ let i = parseInt(allStr, 2);
|
|
|
+ return i;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
}
|
|
|
function sendBlueData(tempSendData){
|
|
|
let data = tempSendData
|
|
|
@@ -369,13 +409,13 @@ function sendBlueData(tempSendData){
|
|
|
* @return
|
|
|
*/
|
|
|
function addZero(value) {
|
|
|
- let len = value.length;
|
|
|
- if (len < 8) {
|
|
|
- for (let i = 0; i < 8 - len; i++) {
|
|
|
- value = "0" + value;
|
|
|
- }
|
|
|
+ let len = value.length;
|
|
|
+ if (len < 8) {
|
|
|
+ for (let i = 0; i < 8 - len; i++) {
|
|
|
+ value = "0" + value;
|
|
|
}
|
|
|
- return value;
|
|
|
+ }
|
|
|
+ return value;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -384,31 +424,31 @@ function addZero(value) {
|
|
|
* @return
|
|
|
*/
|
|
|
function decToCmd(value) {
|
|
|
- let cmds = null;
|
|
|
- if (value <= 255) { //两位
|
|
|
- cmds = [value];
|
|
|
- } else if (value <= 65535) {
|
|
|
- cmds = new Array(2);
|
|
|
- let valueStr = value.toString(2);
|
|
|
- let len = valueStr.length;
|
|
|
- let lastEight = valueStr.substring(len - 8, len);
|
|
|
- let firstEight = valueStr.substring(0, len - 8);
|
|
|
- cmds[0] = parseInt(lastEight, 2);
|
|
|
- cmds[1] = parseInt(firstEight, 2);
|
|
|
- } else {
|
|
|
- cmds = new Array(4);
|
|
|
- let valueStr = value.toString(2);
|
|
|
- let len = valueStr.length;
|
|
|
- let lastEight = valueStr.substring(len - 8, len);
|
|
|
- let firstEight = valueStr.substring(len - 16, len - 8);
|
|
|
- let secondEight = valueStr.substring(len - 24, len - 16);
|
|
|
- let thirdEight = valueStr.substring(0, len - 24);
|
|
|
- cmds[0] = parseInt(lastEight, 2);
|
|
|
- cmds[1] = parseInt(firstEight, 2);
|
|
|
- cmds[2] = parseInt(secondEight, 2);
|
|
|
- cmds[3] = parseInt(thirdEight, 2);
|
|
|
- }
|
|
|
- return cmds;
|
|
|
+ let cmds = null;
|
|
|
+ if (value <= 255) { //两位
|
|
|
+ cmds = [value];
|
|
|
+ } else if (value <= 65535) {
|
|
|
+ cmds = new Array(2);
|
|
|
+ let valueStr = value.toString(2);
|
|
|
+ let len = valueStr.length;
|
|
|
+ let lastEight = valueStr.substring(len - 8, len);
|
|
|
+ let firstEight = valueStr.substring(0, len - 8);
|
|
|
+ cmds[0] = parseInt(lastEight, 2);
|
|
|
+ cmds[1] = parseInt(firstEight, 2);
|
|
|
+ } else {
|
|
|
+ cmds = new Array(4);
|
|
|
+ let valueStr = value.toString(2);
|
|
|
+ let len = valueStr.length;
|
|
|
+ let lastEight = valueStr.substring(len - 8, len);
|
|
|
+ let firstEight = valueStr.substring(len - 16, len - 8);
|
|
|
+ let secondEight = valueStr.substring(len - 24, len - 16);
|
|
|
+ let thirdEight = valueStr.substring(0, len - 24);
|
|
|
+ cmds[0] = parseInt(lastEight, 2);
|
|
|
+ cmds[1] = parseInt(firstEight, 2);
|
|
|
+ cmds[2] = parseInt(secondEight, 2);
|
|
|
+ cmds[3] = parseInt(thirdEight, 2);
|
|
|
+ }
|
|
|
+ return cmds;
|
|
|
}
|
|
|
//parseData([170,103,18,1,0,0,54,5,0,0,0,0,2,241,25,67,3,75,0,77,0,159])
|
|
|
export function sendPortDetailCmd(){
|
|
|
@@ -516,6 +556,27 @@ export function getUUID(){
|
|
|
resolve()
|
|
|
});
|
|
|
}
|
|
|
+export function sendWifi(wifi){
|
|
|
+ deviceTool.sendWifi(wifi);
|
|
|
+ return new Promise(resolve => {
|
|
|
+ resolve()
|
|
|
+ });
|
|
|
+}
|
|
|
+export function sendEnd(end){
|
|
|
+ deviceTool.sendEnd(end);
|
|
|
+ return new Promise(resolve => {
|
|
|
+ resolve()
|
|
|
+ });
|
|
|
+}
|
|
|
+export function sendPwd(wifi){
|
|
|
+ deviceTool.sendPwd(wifi);
|
|
|
+ return new Promise(resolve => {
|
|
|
+ resolve()
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
//--------------------------------
|
|
|
let queue = Promise.resolve();
|
|
|
@@ -569,7 +630,7 @@ function test(){
|
|
|
}
|
|
|
arr =[170,103,13,1,0,0,0,0,0,0,0,0,0,23,233,0,117];
|
|
|
console.log(arr)
|
|
|
- console.log( parseData(arr))
|
|
|
+ console.log( parseData(arr))
|
|
|
}
|
|
|
|
|
|
function testQueue(){
|
|
|
@@ -577,5 +638,9 @@ function testQueue(){
|
|
|
sendBlueData(i+"");
|
|
|
}
|
|
|
}
|
|
|
-// test()
|
|
|
+
|
|
|
+function testWifi(){
|
|
|
+deviceTool.sendWifi("MERCURY_D8BC8A$$")
|
|
|
+}
|
|
|
+// testWifi()
|
|
|
|