const app = getApp(); var longUtil = require('./../../utils/long'); var util = require('../../utils/util'); import { BLE } from "./../../utils/btls/ble"; const emitter = app.globalData.emitter Page({ /** * 页面的初始数据 */ data: { baseUrlImg: app.globalData.baseUrlImg, bleStatus: false, respond: [], blueyes: false, //是否重发同步指令 connectStatus: "", info:"未初始化蓝牙适配器", }, btntest1(event){ var that = this; this.startconnect() }, btntest2(event){ var that = this let userTelephone = "13028878230" let userPassword = "130288" let pwd = "12344321" let openLockType = 2 this.openLock(userTelephone, userPassword, pwd, openLockType) }, btntest3(event){ var that = this let managerTelephone = "19270949446" let managerPassword = "123456" let userTelephone = "38580151200" let userPassword = "385801" let userStartTime = "20210813010101" let userEndTime = "20680813010101" let fpDataLength = 2048 let fpStartTime = "20210813010101" let fpEndTime = "20680813010101" let times = 255 let recycleTime = 65535 this.startFingerprint(managerTelephone, managerPassword, userTelephone, userPassword, userStartTime, userEndTime, fpDataLength, fpStartTime, fpEndTime, times, recycleTime) }, //获取输入框的数据 getmsg(event){ this.setData({ sendmsg:event.detail.value }) }, btntest4(event){ var that = this; this.closeblue() }, startconnect() { //if(checkWechatVersion()) { const ble = new BLE("yxwl01680000004895", emitter) app.globalData.ble = ble this.watchBLE() app.globalData.ble.init() } }, watchBLE() { if (app.globalData.ble) { app.globalData.ble.listen(res => { if (res.type == 'connect') { if (res.data == "未打开适配器") { wx.showModal({ title: "提示", content: "请检查手机蓝牙和定位功能是否打开?", showCancel: false, confirmText: "确定", }); } else { this.setData({ info: res.data }) app.globalData.bleStatus = res.data } } }) } }, closeblue() { wx.showLoading({ title: "正在停止...", }); app.globalData.ble.close() setTimeout(() => { wx.hideLoading() }, 1000); app.globalData.bleStatus = false this.setData({ bleStatus: false, respond: [] }) }, openLock(userTelephone, userPassword, pwd, openLockType) { wx.showLoading({ title: "正在发送...", }); setTimeout(() => { wx.hideLoading() }, 1000); let cmd = 0x41 let ut = util.stringToUint8Array(userTelephone) let up = util.stringToUint8Array(userPassword) let p = util.hexStringToBytesWithPadding(pwd, 10, 0xff) let length = 1+11+6+10+1 let b = new Uint8Array(length) b[0] = cmd b.set(ut, 1) b.set(up, 12) b.set(p, 18) b[28] = openLockType console.log(b) app.globalData.ble.send(cmd, b, length) }, startFingerprint(managerTelephone, managerPassword, userTelephone, userPassword, userStartTime, userEndTime, fpDataLength, fpStartTime, fpEndTime, times, recycleTime) { wx.showLoading({ title: "正在发送...", }); setTimeout(() => { wx.hideLoading() }, 1000); let cmd = 0x87 let mt = util.stringToUint8Array(managerTelephone) let mp = util.stringToUint8Array(managerPassword) let ut = util.stringToUint8Array(userTelephone) let up = util.stringToUint8Array(userPassword) let ust = util.time40ToBytes(userStartTime) let uet = util.time40ToBytes(userEndTime) let fpPacketCount = (fpDataLength+511)/512 let crc = 0xAAFF46D3; let fst = util.time40ToBytes(fpStartTime) let fet = util.time40ToBytes(fpEndTime) let length = 1 + 11 + 6 + 11 + 6 + 5 + 5 + 4 + 4 + 4 + 5 + 5 + 1 + 2 let b = new Uint8Array(length) b[0] = cmd b.set(mt, 1) b.set(mp, 12) b.set(ut, 18) b.set(up, 29) b.set(ust, 35) b.set(uet, 40) b[45] = (fpDataLength>>24)&0xff; b[46] = (fpDataLength>>16)&0xff; b[47] = (fpDataLength>>8)&0xff; b[48] = fpDataLength&0xff; b[49] = (fpPacketCount>>24)&0xff; b[50] = (fpPacketCount>>16)&0xff; b[51] = (fpPacketCount>>8)&0xff; b[52] = fpPacketCount&0xff; b[53] = (crc>>24)&0xff; b[54] = (crc>>16)&0xff; b[55] = (crc>>8)&0xff; b[56] = crc&0xff; b.set(fst, 57) b.set(fet, 62) b[67] = times; b[68] = (recycleTime>>8)&0xff; b[69] = recycleTime&0xff; console.log(b) app.globalData.ble.send(cmd, b, length) }, }) /** * 版本比较 */ function versionCompare (ver1, ver2) { //版本比较 // console.log("ver1" + ver1 + 'ver2' + ver2); var version1pre = parseFloat(ver1) var version2pre = parseFloat(ver2) var version1next = parseInt(ver1.replace(version1pre + ".", "")) var version2next = parseInt(ver2.replace(version2pre + ".", "")) if (version1pre > version2pre) return true else if (version1pre < version2pre) return false else { if (version1next > version2next) return true else return false } } /** * 微信版本检测 * Android从微信 6.5.7 开始支持,iOS从微信 6.5.6 开始支持 */ function checkWechatVersion() { wx.getSystemInfo({ success: function (res) { let si = res; if (si.platform == 'android' && versionCompare('6.5.7', si.version)) { console.log("当前安卓微信版本过低,请更新至最新版本体验"); wx.showModal({ title: '提示', content: '当前微信版本过低,请更新至最新版本体验', showCancel: false }) return false; }else if (si.platform == 'ios' && versionCompare('6.5.6', si.version)) { console.log("当前苹果微信版本过低,请更新至最新版本体验"); wx.showModal({ title: '提示', content: '当前微信版本过低,请更新至最新版本体验', showCancel: false }) return false; } return true; } }) }