var config = require("./NFCConfig"); var nfcTool = require("./NFCManagerTool"); var scanTimeId; //定时扫描 var connectTimeId; //定时链接卡片 var transTimeId; //定时发送数据 var timeOut = 10000; var isConnect = false; export function startScanDevice(callBack) { scanTimeId = setTimeout(res => { nfcTool.stopScanNfcDevice(res => { callBack.call(this, { code: config.timeOutCode(), msg: "扫描超时", data: null }) }) }, timeOut); nfcTool.startScanNfcDevice(res => { clearTimeout(scanTimeId); console.log("返回上层数据:" + JSON.stringify(res)); callBack.call(this, res) }) }; export function stopScanDevice(callBack) { nfcTool.stopScanNfcDevice(res => { callBack.call(this, res) }) }; export function connectDevice(callBack) { if (isConnect) { callBack.call(this, { code: 10004, msg: "卡片已被连接", data: null }); return } nfcTool.connectDevice(res => { if (res.code == 0) { isConnect = true; callBack.call(this, { code: config.successCode(), msg: "连接成功", data: null }) } else { disConnectDevice(res => {}); console.log("返回上层数据:" + JSON.stringify(res)); callBack.call(this, { code: config.nfcErrorCode(), msg: "连接失败", data: null }) } }) }; export function disConnectDevice(callBack) { nfcTool.disConnectDevice(res => { clearTimeout(scanTimeId); clearTimeout(connectTimeId); clearTimeout(transTimeId); isConnect = false; callBack.call(this, res) }) }; export function ICCTransCmd(cmdArr, callBack) { console.info("发送数据=============>>::" + cmdArr); if (!isConnect) { callBack.call(this, { code: config.errorCode(), msg: "未连接NFC标签", data: null }); return } transTimeId = setTimeout(res => { callBack.call(this, { code: config.timeOutCode(), msg: "连接设备蓝牙超时", data: null }) }, timeOut); nfcTool.sendMessageToDevice(cmdArr, res => { clearTimeout(transTimeId); console.log("返回上层数据:" + JSON.stringify(res)); callBack.call(this, res) }) }; export function remove(callBack) { stopScanDevice(res => { disConnectDevice(res => { nfcTool.removeObj(); callBack.call(this, { code: config.successCode(), msg: "断开NFC成功", data: null }); }) }) }