var util = require('./util'); import { BLE } from "./btls/ble"; const app = getApp(); const emitter = app.globalData.emitter function ab2hex(buffer) { var hexArr = Array.prototype.map.call( new Uint8Array(buffer), function (bit) { return ('00' + bit.toString(16)).slice(-2) } ) return hexArr.join(','); } function startFp1_63(managerTelephone, managerPassword, userTelephone, userPassword, password, startTime, endTime, num,timestamp,callback) { wx.showLoading({ title: "正在发送...", mask:true }); setTimeout(() => { wx.hideLoading() }, 1000); let cmd = 0x63 let mt = util.stringToUint8Array(managerTelephone) let mp = util.stringToUint8Array(managerPassword) let ut = util.stringToUint8Array(userTelephone) let up = util.stringToUint8Array(userPassword) let pd = util.hexStringToBytesWithPadding(password, 10, 0xff) let ust = util.time40ToBytes(startTime) let uet = util.time40ToBytes(endTime) let fst = util.time40ToBytes(startTime) let fet = util.time40ToBytes(endTime) let length = 1 + 11 + 6 + 11 + 6 + 5 + 5 + 4 + 2 + 10 + 5 + 5 + 1 + 2 + 1 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] = 0xff; b[46] = 0xff; b[47] = 0xff; b[48] = 0xff; //密码长度 uint16 b[49] = 0 b[50] = 0x0a //密码数据 b.set(pd, 51) b.set(fst, 61) b.set(fet, 66) b[71] = 0xff; b[72] = 0xff; b[73] = 0xff; b[74] = num; //添加指纹 app.globalData.ble.send(cmd, b,timestamp,function(data){ callback(data) }) } function startFp_26(managerTelephone, managerPassword,timestamp,callback) { wx.showLoading({ title: "正在发送...", mask:true }); setTimeout(() => { wx.hideLoading() }, 1000); let cmd = 0x26 let mt = util.stringToUint8Array(managerTelephone) let mp = util.stringToUint8Array(managerPassword) let length = 1 + 11 + 6 let b = new Uint8Array(length) b[0] = cmd b.set(mt, 1) b.set(mp, 12) app.globalData.ble.send(cmd, b,timestamp,function(data){ callback(data) }) } function startFp_23(deviceNum, managerTelephone, managerPassword, newPassword, key,timestamp,callback) { wx.showLoading({ title: "正在发送...", mask:true }); setTimeout(() => { wx.hideLoading() }, 1000); let cmd = 0x23 let dn = util.stringToBytesWithPadding(deviceNum, 20, 255) let mt = util.stringToUint8Array(managerTelephone) let mp = util.stringToUint8Array(managerPassword) let ut = util.stringToUint8Array(newPassword) let up = util.stringToUint8Array(key) let length = 1 + 20 + 11 + 6 + 6 + 10 let b = new Uint8Array(length) b[0] = cmd b.set(dn, 1) b.set(mt, 21) b.set(mp, 32) b.set(ut, 38) b.set(up, 44) app.globalData.ble.send(cmd, b,timestamp,function(data){ callback(data) }) } function openLock(userTelephone,userPassword,pwd,openLockType,timestamp,callback) { wx.showLoading({ title: "正在发送...", mask:true }); setTimeout(()=>{ wx.hideLoading() },3000) 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 app.globalData.ble.send(cmd, b, length,timestamp,function(data){ callback(data) }) } function startFp_29(deviceNum, status,timestamp,callback) { wx.showLoading({ title: "正在发送...", mask:true }); let cmd = 0x29 let dn = util.stringToUint8ArrayWithPadding(deviceNum, 20, 0xff) let length = 1 + 20 + 5 + 1 + 1 let b = new Uint8Array(length) b[0] = cmd b.set(dn, 1) //send data=0x0036000008 b[21] = 0x00; b[22] = 0x36; b[23] = 0; b[24] = 0; b[25] = 0x08 b[26] = status //status: 0x03, 0x02, 0x01 b[27] = 0x01 app.globalData.ble.send(cmd, b,timestamp,function(data){ callback(data) }) } function startFp_63(managerTelephone, managerPassword, userTelephone, userPassword, startTime, endTime, num,fingerprintId,timestamp,callback) { wx.showLoading({ title: "正在发送...", mask:true }); let cmd = 0x63 let mt = util.stringToUint8Array(managerTelephone) let mp = util.stringToUint8Array(managerPassword) let ut = util.stringToUint8Array(userTelephone) let up = util.stringToUint8Array(userPassword) let ust = util.time40ToBytes(startTime) let uet = util.time40ToBytes(endTime) let fst = util.time40ToBytes(startTime) let fet = util.time40ToBytes(endTime) let length = 1 + 11 + 6 + 11 + 6 + 5 + 5 + 4 + 2 + 10 + 5 + 5 + 1 + 2 + 1 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] = 0x46; b[46] = 0x46; b[47] = 0x46; b[48] = 0x46; //密码长度 uint16 b[49] = 0 b[50] = 0x0a //密码数据 console.log(fingerprintId, '指纹ID') b[51] = fingerprintId b[52] = 0xff b[53] = 0xff b[54] = 0xff b[55] = 0xff b[56] = 0xff b[57] = 0xff b[58] = 0xff b[59] = 0xff b[60] = 0xff b.set(fst, 61) b.set(fet, 66) b[71] = 0xff; b[72] = 0xff; b[73] = 0xff; b[74] = num; //添加指纹 app.globalData.ble.send(cmd, b,timestamp,function(data){ callback(data) }) } module.exports = { startFp1_63,startFp_26,startFp_23,openLock,startFp_29,startFp_63 }