const manager = require('./manager'); module.exports = { BleUtil } class BleUtil { static _instance = new BleUtil(); static getInstance() { return BleUtil._instance; } constructor() { var that = this; that.manager = new manager(); } ///获取比较的数据 getCompareList() { var that = this; return that.manager.getCompareList(); } getDissmissDevice() { var that = this; return that.manager.getDissmissDevice(); } getCallBackConnect() { var that = this; return that.manager.getCallBackConnect(); } ///初始化蓝牙适配器 initBluetoothAdapter() { var that = this; that.manager.initBlueAdapter(); } ///获取蓝牙设备 connect:true,去连接,false,去对比 listenBlueDevices() { var that = this; that.manager.listenBlueDevices(); } ///搜索蓝牙设备 startScan(connectWillDevice, boolean, callBackConnect) { var that = this; that.manager.startScan( connectWillDevice, boolean, callBackConnect, ); } ///停止搜索蓝牙设备 async stopScan() { var that = this; await that.manager.stopScan(); } ///开始连接设备 async startConnect(device, onChanged) { var that = this; await that.stopScan(); await that.disconnect(device); var res = await that.manager.startConnect(device); if (res === false) { onChanged(false, device); return; } const strings = require('./../../utils/strings'); var services = await that.manager.getNotifyServices(device); if (strings.isEmpty(services)) { onChanged(false, device); return; } var index = 0; var notify = false; var write = false; var read = false; that.manager.getCharacteristics(device, services, index, notify, write, read, async function (notifyServiceId, notifyCharaterId) { var isTrue = that.manager.monitorCharacteristicValueChange(device, notifyServiceId, notifyCharaterId); if (!isTrue) { onChanged(false, device); return; } const hex_util = require('./../../utils/hex_util'); that.manager.onBLECharacteristicValueChange(function (value) { var receiveText = hex_util.buf2string(value); console.log('接收到数据文字:' + receiveText) }); }, function () { onChanged(false, device); return; }); } ///发送数据 async sendData(device, text) { var isTrue = await that.manager.sendData(device, text); ///发送数据成功 if (isTrue) { } } ///断开设备连接 async disconnect(device) { var that = this; await that.manager.disconnect(device); } }