var timeId, TAG = "JLDeviceWechar+33Protocol", ble = require("./JLBleManager"), protocolRequest = require("./JLObuWechat33Request"), onfire = require("./onfire"), timeOut = require("./timeOut"), request33 = require("./JLObuWechat33Request"), reveive33 = require("./JLObuWechat33Reveice"), Code = require("./errorCode"), config = require("./JLZJConfig"), service = require("./JLService"), dataTool = require("./dataTool"), dataArray = [], isConnect = !1, frame_total = 1, frame_count = 1, fireFlag = "", receive_data = "", receive_data_total_len = "", wechat1 = !1, wechat2 = !1, revc_count = 0; export function scanDevice(e, t, i) { timeId = setTimeout(e => { ble.stopScanDevice(e => { i.call(this, { code: Code.timeOutCode(), err_msg: "扫描超时", data: null, msg: "" }) }) }, t), ble.scanDevice(e, e => { clearTimeout(timeId), i.call(this, e) }) } export function stopScanDevice(e) { ble.stopScanDevice(t => { e.call(this, t) }) } export function connectDevice(e, t) { receive_data = "", null != e && "undefined" != e ? (timeId = setTimeout(e => { disConnectDevice(), t.call(this, { code: Code.timeOutCode(), err_msg: "连接超时", data: null, msg: "" }) }, timeOut.connectTimeOut()), ble.stopScanDevice(i => { i.code == Code.successCode() ? ble.connectDevice(e, e => { e.code == Code.successCode() ? ble.characticValueChange(e.data, e => { console.info(JSON.stringify(e)), ble.initModule(e.data.id), e.code != Code.successCode() && (disConnectDevice(), t.call(this, { code: Code.bleErrorCode(), err_msg: "连接失败", data: null, msg: "" })) }, e => { console.info(TAG + " 监听特征值变化:" + JSON.stringify(e) + "time = " + Date.parse(new Date)), dealReceiveData(e.data.value, e => { clearTimeout(timeId), t.call(this, { code: Code.bleSuccessCode(), err_msg: "连接成功", data: null, msg: "" }) }) }) : t.call(this, e) }) : t.call(this, i) })) : t.call(this, { code: 10003, err_msg: "参数错误", data: null, msg: "" }) } export function onDisconnet(e) { ble.onDeviceDisconnect(t => { isConnect = !1, dataArray = [], frame_count = 0, frame_total = 0, onfire.clear(), receive_data = "", clearTimeout(timeId), e.call(this, t) }) } export function disConnectDevice(e) { receive_data = "", ble.disConnect(t => { isConnect = !1, dataArray = [], frame_count = 0, frame_total = 0, onfire.clear(), clearTimeout(timeId), e.call(this, t) }) } export function checkCard(e) { receive_data = ""; var t = request33.checkCardRequest(); timeId = setTimeout(t => { e.call(this, { code: Code.timeOutCode(), err_msg: "检查卡片超时", data: null, msg: "" }), receive_data = "" }, timeOut.sendTime()), ble.sendCommand(t, t => { t.code == Code.successCode() ? (clearTimeout(timeId), reveive33.recevieShakeHands(t => { e.call(this, t) })) : e.call(this, t) }) } export function getSystemInfo(e) { receive_data = "", timeId = setTimeout(t => { e.call(this, { code: Code.timeOutCode(), err_msg: "读系统信息超时", data: null, msg: "" }), receive_data = "" }, timeOut.sendTime()), service.getSystemInfo(e => { fireFlag = e.fireFlag, receive_data = "" }, t => { clearTimeout(timeId), e.call(this, t) }) } export function getCarInfo(e, t) { receive_data = "", timeId = setTimeout(e => { t.call(this, { code: Code.timeOutCode(), err_msg: "读车辆信息超时", data: null, msg: "" }), receive_data = "" }, timeOut.sendTime()), service.getCarInfo(e, e => { console.log(TAG + "-----fireFlag--------" + JSON.stringify(e)), fireFlag = e.fireFlag, receive_data = "" }, e => { clearTimeout(timeId), t.call(this, e) }) } export function writeObuIfo(e, t, i) { receive_data = "", timeId = setTimeout(e => { receive_data = "", i.call(this, { code: Code.timeOutCode(), err_msg: "写系统信息超时", data: null, msg: "" }) }, timeOut.sendTime()), service.systemInfo_WriteObuInfoFile([t], e => { receive_data = "", fireFlag = e.fireFlag }, e => { clearTimeout(timeId), i.call(this, e) }) } export function getCardInfo(e) { console.log(TAG + " getCardInfo:" + Date.parse(new Date)), receive_data = "", timeId = setTimeout(t => { receive_data = "", e.call(this, { code: Code.timeOutCode(), err_msg: "读取卡信息超时", data: null, msg: "" }) }, timeOut.sendTime()), service.getCardInfo(e => { fireFlag = e.fireFlag, receive_data = "" }, t => { clearTimeout(timeId), e.call(this, t) }) } export function getCardholderInfo(e) { receive_data = "", timeId = setTimeout(t => { receive_data = "", e.call(this, { code: Code.timeOutCode(), err_msg: "读取持卡人信息超时", data: null, msg: "" }) }, timeOut.sendTime()), service.getCardholderInfo(e => { fireFlag = e.fireFlag, receive_data = "" }, t => { clearTimeout(timeId), e.call(this, t) }) } export function writeCardInfomation(e, t, i) { receive_data = "", timeId = setTimeout(e => { receive_data = "", i.call(this, { code: Code.timeOutCode(), err_msg: "读写卡片发行信息超时", data: null, msg: "" }) }, timeOut.sendTime()), service.cardInfo_WriteCardInfoFile([t], e => { fireFlag = e.fireFlag, receive_data = "" }, e => { clearTimeout(timeId), i.call(this, e) }) } export function ICCReset(e) { receive_data = "", timeId = setTimeout(t => { receive_data = "", e.call(this, { code: Code.timeOutCode(), err_msg: "ICC复位超时", data: null, msg: "" }) }, timeOut.sendTime()), console.log(TAG + "cardInfo_ICCReset--------ICC复位"); var t = protocolRequest.ICCResetRequest(); ble.sendCommand(t, t => { t.code == Code.successCode() ? (fireFlag = config.ICCReset(), reveive33.receiveICCReset(t => { clearTimeout(timeId), e.call(this, t) })) : e.call(this, t) }) } export function ESAMRset(e) { receive_data = "", timeId = setTimeout(t => { receive_data = "", e.call(this, { code: Code.timeOutCode(), err_msg: "ICC复位超时", data: null, msg: "" }) }, timeOut.sendTime()), console.log(TAG + "carInfo_ESAMReset--------ESAM 复位"); var t = protocolRequest.ESAMReset(); ble.sendCommand(t, t => { console.log(TAG + "sendCommand--------res" + JSON.stringify(t)), fireFlag = config.ESAMReset(), reveive33.receiveEsamReset(t => { clearTimeout(timeId), console.log(TAG + "receiveEsamReset--------res" + JSON.stringify(t)), e.call(this, t) }) }) } export function ICCChannel(e, t) { var i = protocolRequest.ICCChannelTransmission("00", [e]); timeId = setTimeout(e => { receive_data = "", t.call(this, { code: Code.timeOutCode(), err_msg: "ICC透传超时", data: null, msg: "" }) }, timeOut.sendTime()), ble.sendCommand(i, e => { e.code == Code.successCode() ? (fireFlag = config.ICCChannel(), reveive33.receiveICCChannel(e => { clearTimeout(timeId), t.call(this, e) })) : t.call(this, e) }) } export function ESAMChannel(e, t) { console.log(TAG + "ESAMChannel--------ESAM透传"); var i = protocolRequest.ESAMChannelTransmission("00", [e]); timeId = setTimeout(e => { receive_data = "", t.call(this, { code: Code.timeOutCode(), err_msg: "ESAM透传超时", data: null, msg: "" }) }, timeOut.sendTime()), ble.sendCommand(i, e => { console.log(TAG + "sendCommand--------res" + JSON.stringify(e)), fireFlag = config.ESAMChannel(), reveive33.receiveESAMChannel(e => { clearTimeout(timeId), t.call(this, e) }) }) } export function creditForLoad_Init(e, t, i, a, o) { receive_data = "", timeId = setTimeout(e => { receive_data = "", o.call(this, { code: Code.timeOutCode(), err_msg: "圈存初始化超时", data: null, msg: "" }) }, timeOut.sendTime()), service.creditForLoadInit(e, t, i, a, e => { fireFlag = e.fireFlag, receive_data = "" }, e => { clearTimeout(timeId), o.call(this, e) }) } export function creditForLoad_Load(e, t, i) { receive_data = "", timeId = setTimeout(e => { receive_data = "", i.call(this, { code: Code.timeOutCode(), err_msg: "圈存写卡超时", data: null, msg: "" }) }, timeOut.sendTime()), service.creditForLoad(e, t, e => { fireFlag = e.fireFlag, receive_data = "" }, e => { clearTimeout(timeId), i.call(this, e) }) } export function readRetainFile(e, t, i) { receive_data = "", timeId = setTimeout(t => { receive_data = "", i.call(this, { code: Code.timeOutCode(), err_msg: "读取" + e + "文件信息超时", data: null, msg: "" }) }, timeOut.sendTime()), service.readRetainFile(e, t, e => { fireFlag = e.fireFlag, receive_data = "" }, e => { clearTimeout(timeId), i.call(this, e) }) } export function writeRetainFile(e, t) { receive_data = "", timeId = setTimeout(e => { receive_data = "", t.call(this, { code: Code.timeOutCode(), err_msg: "写卡片信息超时", data: null, msg: "" }) }, timeOut.sendTime()), service.cardInfo_WriteCardInfoFile([e], e => { fireFlag = e.fireFlag, receive_data = "" }, e => { clearTimeout(timeId), t.call(this, e) }) } export function getCardNum(e) { receive_data = "", timeId = setTimeout(t => { receive_data = "", e.call(this, { code: Code.timeOutCode(), err_msg: "读取卡号超时", data: null, msg: "" }) }, timeOut.sendTime()), service.getCardInfo(e => { fireFlag = e.fireFlag, receive_data = "" }, t => { clearTimeout(timeId), t.code == Code.successCode() ? e.call(this, { code: Code.successCode(), err_msg: "获取卡号成功", data: t.data.substr(24, 16), msg: "" }) : e.call(this, t) }) } export function getObuSN(e) { receive_data = "", timeId = setTimeout(t => { e.call(this, { code: Code.timeOutCode(), err_msg: "获取合同序列号超时", data: null, msg: "" }), receive_data = "" }, timeOut.sendTime()), service.getSystemInfo(e => { fireFlag = e.fireFlag, receive_data = "" }, t => { clearTimeout(timeId), e.call(this, { code: Code.successCode(), err_msg: "获取合同序列号成功", data: t.data.substr(20, 16), msg: "" }) }) } export function getCardRandNum(e, t) { receive_data = "", timeId = setTimeout(e => { receive_data = "", t.call(this, { code: Code.timeOutCode(), err_msg: "读取卡片随机数", data: null, msg: "" }) }, timeOut.sendTime()), service.getCardRandom(e, "04", e => { fireFlag = e.fireFlag, receive_data = "" }, e => { clearTimeout(timeId), t.call(this, e) }) } export function getObuRadom(e, t) { receive_data = "", timeId = setTimeout(e => { receive_data = "", t.call(this, { code: Code.timeOutCode(), err_msg: "读随机数超时", data: null, msg: "" }) }, timeOut.sendTime()), console.log(TAG + "-----getObuRadom--------"), service.getObuRandom(e, e => { fireFlag = e.fireFlag, receive_data = "" }, e => { clearTimeout(timeId), t.call(this, e) }) } var timepReceive_data = ""; function dealReceiveData(e, t) { console.log(TAG + " dealReceiveData: " + e + Date.parse(new Date)), console.log(TAG + " revc_count:" + revc_count), console.log(TAG + " timepReceive_data:" + timepReceive_data), 0 == revc_count ? "FE01" == e.substr(0, 4) && (timepReceive_data += e, revc_count++) : (timepReceive_data += e, revc_count++); var i = 2 * parseInt(timepReceive_data.substring(4, 8), 16) == timepReceive_data.length; if (console.log(TAG + " 8blg:" + i), i) { console.log("receive_data:" + timepReceive_data); var a = timepReceive_data.substr(24, 2), o = timepReceive_data.substr(8, 4); if ("33" == a) console.log(TAG + "----fireFlag:" + fireFlag), onfire.fire(fireFlag, timepReceive_data), timepReceive_data = "", receive_data = "", revc_count = 0; else if ("2711" == o || "2713" == o) if ("2711" == o) { var c = timepReceive_data.substring(40, 44), r = protocolRequest.wechatInit1(c); timepReceive_data = "", receive_data = "", revc_count = 0, console.log("认证1", r), ble.sendCommand(r, e => { console.log("发送认证1 :" + JSON.stringify(e)) }) } else if ("2713" == o) { console.log("认证2"); r = protocolRequest.wechatInit2(c); timepReceive_data = "", receive_data = "", revc_count = 0, ble.sendCommand(r, e => { console.log("发送认证2 :" + JSON.stringify(e)), timepReceive_data = "", receive_data = "", revc_count = 0, t.call(this, { code: Code.bleSuccessCode(), msg: "连接成功", data: null }) }) } else t.call(this, { code: Code.bleErrorCode, msg: "非法连接", data: null }); else t.call(this, { code: Code.bleErrorCode, msg: "非法连接", data: null }) } }