var ble = null var bleUtils = { initBle:function(){ ble = api.require('ble'); }, initManager:function(param,callback){ ble.initManager(param, function (ret) { callback(ret) }); }, scan:function(param,callback){ ble.clearAllSimpleNotifyData(); ble.scan(param, function (ret) { callback(ret) }); }, stopScan:function(){ ble.stopScan() }, getPeripheral:function(callback){ ble.getPeripheral(function (ret) { if (ret.peripherals.length > 0) { var li = []; ret.peripherals.forEach(function (p) { if (undefined !== p.name) { if (p.name.indexOf("TMR_BLE") === -1){ return false }else{ console.log(p.name) li.push({"id":p.uuid,"name":p.name}) } } }); callback(li) } }); }, isConnected:function (param,callback){ ble.isConnected(param, function(ret) { if (ret.status) { // console.log('已连接'); } callback(ret.status) }); }, disconnect:function(param,callback){ ble.disconnect(param, function(ret, err) { if (ret.status) { console.log("断开连接成功!"); } callback(ret,err) }); }, connect:function(param,callback){ bleUtils.isConnected(param,function (ret){ if (ret.status) { console.log('已连接'); callback(ret) }else { ble.connect(param, function (ret, err) { console.log(JSON.stringify(err)) callback(ret,err) }); } }) }, setMtu:function(param,callback){ //设置MTU包大小 ble.setMtu({ peripheralUUID: param.peripheralUUID, mtu:param.mtu },function(ret){ callback(ret) }); }, discoverService:function(param,callback){ ble.discoverService(param, function (ret) { console.log("discoverService"); if (ret.services.length > 0) { console.log("发现服务成功!"); ret.services.forEach(function (ret4) { if (ret4.indexOf("0000ffe") !== -1) { if (ret4 && ret4.length > 0) { //发现特征 bleUtils.discoverCharacteristics({ serviceUUID: ret4, peripheralUUID: param.peripheralUUID }, function (ret5) { if(ret5.indexOf("0000ffe2")!==-1){ return false } console.log(ret4) console.log(ret5) callback({ peripheralUUID: param.peripheralUUID, serviceUUID: ret4, characteristicUUID: ret5 }) }); } } }); } else { console.log("发现服务失败!"); } }); }, discoverCharacteristics:function(param,callback){ ble.discoverCharacteristics(param, function (ret) { let res = ''; if (ret.characteristics.length > 0) { // console.log("发现特征成功!"); ret.characteristics.forEach(function (s) { if (s.serviceUUID === param.serviceUUID) { callback(s.uuid); } }); } else { console.log("发现特征失败!"); callback(res); } }) }, setNotify:function(param,callback){ ble.setNotify(param, function (ret) { callback(ret.characteristic.value) }) }, /*发送消息到蓝牙*/ writeValueForCharacteristic(param, callback) { ble.writeValueForCharacteristic(param, function (ret) { // console.log(param.value) if (ret.status) { // console.log("发送成功"); } else { console.log("发送失败:"+param.value); // msgList.push("FF0A000404140414"); } callback(ret); }); } } export { bleUtils }