소스 검색

提交

yxb
yangteng 1 년 전
부모
커밋
38b4ff52ac
2개의 변경된 파일135개의 추가작업 그리고 195개의 파일을 삭제
  1. 1
    1
      manifest.json
  2. 134
    194
      subpackage/carPark/etc/etcDeviceInfo.vue

+ 1
- 1
manifest.json 파일 보기

@@ -73,7 +73,7 @@
"requiredPrivateInfos": ["chooseLocation", "getLocation", "chooseAddress"],
"plugins": {
"issuer-plugin": {
"version": "dev-c58fddd1851394c3af271eb82d0460e2",
"version": "dev-524585a7ff85f3942d20cdfdc876e838",
"provider": "wxa2d9acdd1054e69b"
}
}

+ 134
- 194
subpackage/carPark/etc/etcDeviceInfo.vue 파일 보기

@@ -242,116 +242,116 @@
// }
// })
// } else {
let cmdArr = [cmd.HOME_DIRECTORY, cmd.APPLICATION_DIRECTORY, "00B095002B"];
console.log(cmdArr);
console.log(bluetoothUtil);
bluetoothUtil.transCmd(cmdArr, '10', function(res) { //10:写卡 20:写OBU
console.log("res====", res)
var cardStr = res[2];
if (cardStr == undefined || cardStr == "undefined" || cardStr == "") {
tools.alertF("卡指令不符" + cardStr);
return;
}
if (cardStr.length < 40) {
tools.alertF("卡指令长度不符" + cardStr);
return;
}
card.cardNo = cardStr.substring(24, 40)
getObuId();
let cmdArr = [cmd.HOME_DIRECTORY, cmd.APPLICATION_DIRECTORY, "00B095002B"];
console.log(cmdArr);
console.log(bluetoothUtil);
bluetoothUtil.transCmd(cmdArr, '10', function(res) { //10:写卡 20:写OBU
console.log("res====", res)
var cardStr = res[2];
if (cardStr == undefined || cardStr == "undefined" || cardStr == "") {
tools.alertF("卡指令不符" + cardStr);
return;
let str = res[2].substring(res[2].length - 4, res[2].length); //判断是否为9000
let str3 = res[3].substring(res[3].length - 4, res[3].length); //判断是否为9000
if (str == "9000" || str3 == "9000") {
if (res[2].length > 86 || res[3] >= 12) {
console.log("res[2]", res[2].substring(84, 86), getVehiclePlateColor(parseInt(res[2]
.substring(82, 84), 16)), res[2].substring(18, 19))
card.cardNo = res[2].substring(20, 40);
card.startTime = res[2].substring(40, 48);
card.endTime = res[2].substring(48, 56);
card.version = res[2].substring(18, 19) >= 4 ? "4x" : "2x";
card.money = res[3].substring(0, 8);
card.v_userType = parseInt(res[2].substring(80, 82), 16);
console.log("card.v_userType", card.v_userType)
card.vehiclePlate = HexToStrig(res[2].substring(56, 80));
if (res[2].substring(18, 19) >= 4) {
//4x卡
card.type = getVehicleType(parseInt(res[2].substring(84, 86), 16));
// card.vehiclePlateColor = parseInt(res[2].substring(82, 84), 16);
card.color = getVehiclePlateColor(parseInt(res[2].substring(82, 84), 16))
} else {
//2x卡--获取车牌颜色
card.type = "--";
// card.vehiclePlateColor = parseInt(res[2].substring(82, 84), 16);
card.color = getVehiclePlateColor(parseInt(res[2].substring(82, 86), 16))
}
state.vehicleId = card.vehiclePlate + "_" + parseInt(res[2].substring(82, 84), 16)
console.log("card.color===========", card.vehiclePlate, parseInt(res[2].substring(82,
84),
16))
// 读卡信息
getCardList()
//执行0016文件
let arr = [cmd.HOME_DIRECTORY, cmd.PERSONAL_INFORMATION]
bluetoothUtil.transCmd(arr, '10', function(res) {
let str2 = res[1].substring(res[1].length - 4, res[1].length);
if (str2 == "9000") {
if (res[1].length > 108) {
card.userName = HexToStrig(res[1].substring(4, 44)); //姓名
card.userName = card.userName[0] + '*'.repeat(card.userName
.length - 1)
card.idNum = HexToStrig(res[1].substring(44, 108)).replace(
/^\d{14}/,
'**************'); //身份证号码

}
if (cardStr.length < 40) {
tools.alertF("卡指令长度不符" + cardStr);
return;
}
card.cardNo = cardStr.substring(24, 40)
getObuId();
return;
let str = res[2].substring(res[2].length - 4, res[2].length); //判断是否为9000
let str3 = res[3].substring(res[3].length - 4, res[3].length); //判断是否为9000
if (str == "9000" || str3 == "9000") {
if (res[2].length > 86 || res[3] >= 12) {
console.log("res[2]", res[2].substring(84, 86), getVehiclePlateColor(parseInt(res[2]
.substring(82, 84), 16)), res[2].substring(18, 19))
card.cardNo = res[2].substring(20, 40);
card.startTime = res[2].substring(40, 48);
card.endTime = res[2].substring(48, 56);
card.version = res[2].substring(18, 19) >= 4 ? "4x" : "2x";
card.money = res[3].substring(0, 8);
card.v_userType = parseInt(res[2].substring(80, 82), 16);
console.log("card.v_userType", card.v_userType)
card.vehiclePlate = HexToStrig(res[2].substring(56, 80));
if (res[2].substring(18, 19) >= 4) {
//4x卡
card.type = getVehicleType(parseInt(res[2].substring(84, 86), 16));
// card.vehiclePlateColor = parseInt(res[2].substring(82, 84), 16);
card.color = getVehiclePlateColor(parseInt(res[2].substring(82, 84), 16))
} else {
//2x卡--获取车牌颜色
card.type = "--";
// card.vehiclePlateColor = parseInt(res[2].substring(82, 84), 16);
card.color = getVehiclePlateColor(parseInt(res[2].substring(82, 86), 16))
}
state.vehicleId = card.vehiclePlate + "_" + parseInt(res[2].substring(82, 84), 16)
console.log("card.color===========", card.vehiclePlate, parseInt(res[2].substring(82,
84),
16))
// 读卡信息
getCardList()
//执行0016文件
let arr = [cmd.HOME_DIRECTORY, cmd.PERSONAL_INFORMATION]
bluetoothUtil.transCmd(arr, '10', function(res) {
let str2 = res[1].substring(res[1].length - 4, res[1].length);
if (str2 == "9000") {
if (res[1].length > 108) {
card.userName = HexToStrig(res[1].substring(4, 44)); //姓名
card.userName = card.userName[0] + '*'.repeat(card.userName
.length - 1)
card.idNum = HexToStrig(res[1].substring(44, 108)).replace(
/^\d{14}/,
'**************'); //身份证号码

//获取是否有优惠
let cmdArr3 = [cmd.HOME_DIRECTORY, cmd.APPLICATION_DIRECTORY, cmd
.CMD_00B08E0000
];
bluetoothUtil.transCmd(cmdArr3, '10', function(res) {
let str3 = res[2].substring(res[2].length - 4, res[2]
.length);
if (str3 == "9000") {
if (res[2].length > 131) {
let _str = parseInt(res[2].substring(129, 130),
16);
switch (_str) {
case 0:
card.favourable = "否";
break;
case 1:
card.favourable = "是";
break;
default:
card.favourable = '未知' + "_" + _str;
break;
}
//回调读取OBU指令
getObuId()
tools.hideLoadingAlert();

} else {
alertF("CMD_00B08E0000指令长度不符" + res[2]);
//获取是否有优惠
let cmdArr3 = [cmd.HOME_DIRECTORY, cmd.APPLICATION_DIRECTORY, cmd
.CMD_00B08E0000
];
bluetoothUtil.transCmd(cmdArr3, '10', function(res) {
let str3 = res[2].substring(res[2].length - 4, res[2]
.length);
if (str3 == "9000") {
if (res[2].length > 131) {
let _str = parseInt(res[2].substring(129, 130),
16);
switch (_str) {
case 0:
card.favourable = "否";
break;
case 1:
card.favourable = "是";
break;
default:
card.favourable = '未知' + "_" + _str;
break;
}
return;
//回调读取OBU指令
getObuId()
tools.hideLoadingAlert();

} else {
alertF("CMD_00B08E0000指令长度不符" + res[2]);
}
alertF(cmd.PERSONAL_INFORMATION + "_" + str);
})
} else {
alertF("PERSONAL_INFORMATION指令长度不符" + res[1]);
}
return;
return;
}
alertF(cmd.PERSONAL_INFORMATION + "_" + str);
})
} else {
alertF("PERSONAL_INFORMATION指令长度不符" + res[1]);
}
alertF("PERSONAL_INFORMATION指令长度不符" + res[1]);
})
} else {
alertF("CMD_READBINARY指令长度不符" + res[2]);
}
return;
return;
}
alertF("PERSONAL_INFORMATION指令长度不符" + res[1]);
})
} else {
alertF("CMD_READBINARY指令长度不符" + res[2]);
}
alertF("CMD_READBINARY指令长度不符" + res[2]);
return;
}
alertF("CMD_READBINARY指令长度不符" + res[2]);

})
})
// }

};
@@ -372,30 +372,29 @@
// }
// });
// } else {
let cmdArr = [cmd.HOME_DIRECTORY, cmd.OBU_SYSTEM_FILE];
bluetoothUtil.transCmd(cmdArr, '20', function(res) {
var obuStr = res[1];
if (obuStr == undefined || obuStr == "undefined" || obuStr == "") {
tools.alertF("OBU指令不符" + obuStr);
return;
}
if (obuStr.length < 36) {
tools.alertF("OBU指令长度不符" + obuStr);
return;
}
obu.num = obuStr.substring(20, 36)
let rand = datas.generateMixed(16);
let arr = [cmd.OBU_DF01, cmd.OBU_00B400000A + rand + cmd.OBU_4F00];
bluetoothUtil.transCmd(arr, '20', function(res) {
console.log("解密信息kc没问题",res);
let str2 = res[1].substring(res[1].length - 4, res[1].length);
if (str2 == "9000") {
console.log("===========", obu.num, res[1].substring(0, res[1].length -
4))
decryptObuVehicleInfo(obu.num, res[1].substring(0, res[1].length - 4),
function(res) {
console.log("obu信息", '车辆类型', res, res.substring(28, 30),
HexToInt(res.substring(28, 30)));
let cmdArr = [cmd.HOME_DIRECTORY, cmd.OBU_SYSTEM_FILE];
bluetoothUtil.transCmd(cmdArr, '20', function(res) {
var obuStr = res[1];
if (obuStr == undefined || obuStr == "undefined" || obuStr == "") {
tools.alertF("OBU指令不符" + obuStr);
return;
}
if (obuStr.length < 36) {
tools.alertF("OBU指令长度不符" + obuStr);
return;
}
obu.num = obuStr.substring(20, 36)
let rand = datas.generateMixed(16);
let arr = [cmd.OBU_DF01, cmd.OBU_00B400000A + rand + cmd.OBU_4F00];
bluetoothUtil.transCmd(arr, '20', function(res) {
console.log("解密信息kc没问题", res);
let str2 = res[1].substring(res[1].length - 4, res[1].length);
if (str2 == "9000") {
console.log("===========", obu.num, res[1].substring(0, res[1].length -
4))
decryptObuVehicleInfo(obu.num, res[1].substring(0, res[1].length - 4),function(res) {
console.log("obu信息", '车辆类型', res, res.substring(28, 30),
HexToInt(res.substring(28, 30)));
obu.approvedCount = HexToInt(res.substring(48, 54));
obu.axleCount = HexToInt(res.substring(42, 44));
obu.axleDistance = HexToInt(res.substring(44, 48));
@@ -414,76 +413,17 @@
"x" +
HexToInt(res.substring(36, 38)) + "x" + HexToInt(res
.substring(38, 40))
tools.hideLoadingAlert();
});
}
})
return;
let str = res[1].substring(res[1].length - 4, res[1].length);
if (str == "9000") {
if (res[1].length > 52) {

obu.num = res[1].substring(20, 36);
obu.startTime = res[1].substring(36, 44);
obu.endTime = res[1].substring(44, 52);
obu.version = res[1].substring(18, 19) >= 4 ? "4x" : "2x";
obu.isJH = res[1].substring(53, 54) == "1" ? "是" : res[1].substring(53, 54) == "0" ?
"否" : "其他:" + res[1].substring(53, 54);


let rand = datas.generateMixed(16);
let arr = [cmd.OBU_DF01, cmd.OBU_00B400000A + rand + cmd.OBU_4F00];
bluetoothUtil.transCmd(arr, '20', function(res) {
console.log(res);
let str2 = res[1].substring(res[1].length - 4, res[1].length);
if (str2 == "9000") {
console.log("===========", obu.num, res[1].substring(0, res[1].length -
4))
decryptObuVehicleInfo(obu.num, res[1].substring(0, res[1].length - 4),
function(res) {
console.log("obu信息", '车辆类型', res, res.substring(28, 30),
HexToInt(res.substring(28, 30)));
obu.approvedCount = HexToInt(res.substring(48, 54));
obu.axleCount = HexToInt(res.substring(42, 44));
obu.axleDistance = HexToInt(res.substring(44, 48));
obu.engineNum = HexToStrig(res.substring(86, 118));
obu.type = getVehicleType(HexToInt(res.substring(28, 30)));
obu.userType = HexToInt(res.substring(30, 32)) == 1 ?
"个人用户" :
"单位用户";
obu.vehiclePlate = HexToStrig(res.substring(0, 24), 2);
//获取车牌颜色
obu.vehiclePlateColor = getVehiclePlateColor(HexToInt(res
.substring(24, 28)));
obu.vin = HexToStrig(res.substring(54, 86));
obu.wheelCount = HexToInt(res.substring(40, 42));
obu.outsideDimensions = HexToInt(res.substring(32, 36)) +
"x" +
HexToInt(res.substring(36, 38)) + "x" + HexToInt(res
.substring(38, 40))
getObuList();

tools.hideLoadingAlert();
//提交设备信息
// that.submitDeviceInfo();
});
//断开蓝牙
bluetoothUtil.disconnectDevice();
tools.showToastAlert("蓝牙已断开");
console.log('蓝牙已断开=========')
return;
}
alertF("OBU_00B400000A+rand+OBU_4F00指令长度不符" + res[1]);
})

} else {
alertF("OBU_SYSTEM_FILE指令长度不符" + res[1]);
}
tools.hideLoadingAlert();
});
bluetoothUtil.disconnectDevice();
tools.showToastAlert("蓝牙已断开");
console.log('蓝牙已断开=========')
return;
}
alertF("OBU_SYSTEM_FILE指令长度不符" + res[1]);
})
})
// }
};

@@ -619,4 +559,4 @@
margin: 40rpx;
text-align: center;
}
</style>
</style>

Loading…
취소
저장