|
@@ -150,7 +150,6 @@ class bleManager {
|
|
// deviceId: device.deviceId,
|
|
// deviceId: device.deviceId,
|
|
// name: device.name || device.localName
|
|
// name: device.name || device.localName
|
|
// }));
|
|
// }));
|
|
- console.log('已扫描过的蓝牙设备:', res);
|
|
|
|
let newDevices = this.fiterDevice(res)
|
|
let newDevices = this.fiterDevice(res)
|
|
|
|
|
|
resolve(newDevices);
|
|
resolve(newDevices);
|
|
@@ -187,9 +186,9 @@ class bleManager {
|
|
const buffer = new ArrayBuffer(data.length);
|
|
const buffer = new ArrayBuffer(data.length);
|
|
const view = new Uint8Array(buffer);
|
|
const view = new Uint8Array(buffer);
|
|
for (let i = 0; i < data.length; i++) {
|
|
for (let i = 0; i < data.length; i++) {
|
|
- view[i] = data[i];
|
|
|
|
|
|
+ view[i] = data[i].toString(16);
|
|
}
|
|
}
|
|
- console.log('开始发送数据:', data, view);
|
|
|
|
|
|
+ console.log('开始发送数据:', view);
|
|
wx.writeBLECharacteristicValue({
|
|
wx.writeBLECharacteristicValue({
|
|
deviceId: this.device.deviceId,
|
|
deviceId: this.device.deviceId,
|
|
serviceId: this.device.serviceId,
|
|
serviceId: this.device.serviceId,
|
|
@@ -307,13 +306,16 @@ class bleManager {
|
|
let newDevices = this.fiterDevice(res)
|
|
let newDevices = this.fiterDevice(res)
|
|
// this.devices.push(...devices);
|
|
// this.devices.push(...devices);
|
|
if (newDevices.length > 0) {
|
|
if (newDevices.length > 0) {
|
|
- console.log('发现设备1:', res);
|
|
|
|
|
|
+ // console.log('发现设备1:', res);
|
|
}
|
|
}
|
|
if (callback) {
|
|
if (callback) {
|
|
callback(newDevices);
|
|
callback(newDevices);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
+ getMac() {
|
|
|
|
+
|
|
|
|
+ }
|
|
ab2hex(buffer) {
|
|
ab2hex(buffer) {
|
|
var hexArr = Array.prototype.map.call(
|
|
var hexArr = Array.prototype.map.call(
|
|
new Uint8Array(buffer),
|
|
new Uint8Array(buffer),
|
|
@@ -321,7 +323,7 @@ class bleManager {
|
|
return ('00' + bit.toString(16)).slice(-2)
|
|
return ('00' + bit.toString(16)).slice(-2)
|
|
}
|
|
}
|
|
)
|
|
)
|
|
- return hexArr.join('');
|
|
|
|
|
|
+ return hexArr.join(':');
|
|
}
|
|
}
|
|
fiterDevice(res) {
|
|
fiterDevice(res) {
|
|
var devices = res.devices.filter(device => {
|
|
var devices = res.devices.filter(device => {
|
|
@@ -329,6 +331,7 @@ class bleManager {
|
|
const localName = device.localName || '';
|
|
const localName = device.localName || '';
|
|
let isNot = this.isNotEmpty(name) || this.isNotEmpty(localName);
|
|
let isNot = this.isNotEmpty(name) || this.isNotEmpty(localName);
|
|
if (isNot) {
|
|
if (isNot) {
|
|
|
|
+ // console.log('是猫王设备名称:', device.advertisData, device.serviceData)
|
|
let mac = this.ab2hex(device.advertisData)
|
|
let mac = this.ab2hex(device.advertisData)
|
|
// console.log(mac)
|
|
// console.log(mac)
|
|
device.mac = mac
|
|
device.mac = mac
|
|
@@ -351,10 +354,11 @@ class bleManager {
|
|
}
|
|
}
|
|
isNotEmpty(name) {
|
|
isNotEmpty(name) {
|
|
let isNot = (name !== ''
|
|
let isNot = (name !== ''
|
|
- && (name.includes("猫王") ||
|
|
|
|
- name.includes("MW_") ||
|
|
|
|
- name.includes("妙播") ||
|
|
|
|
- name.includes("AirSmart") ||
|
|
|
|
|
|
+ && (name.startsWith("MW_") ||
|
|
|
|
+ name.startsWith("MW-") ||
|
|
|
|
+ name.startsWith("猫王") ||
|
|
|
|
+ name.startsWith("妙播") ||
|
|
|
|
+ name.startsWith("AirSmart") ||
|
|
name === "le")
|
|
name === "le")
|
|
)
|
|
)
|
|
// if (!isNot && name !== '') {
|
|
// if (!isNot && name !== '') {
|
|
@@ -363,7 +367,7 @@ class bleManager {
|
|
return isNot;
|
|
return isNot;
|
|
}
|
|
}
|
|
// 连接到指定设备
|
|
// 连接到指定设备
|
|
- connectToDevice(device) {
|
|
|
|
|
|
+ async connectToDevice(device) {
|
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
return new Promise((resolve, reject) => {
|
|
console.log("开始连接蓝牙:", device.deviceId)
|
|
console.log("开始连接蓝牙:", device.deviceId)
|
|
@@ -417,18 +421,22 @@ class bleManager {
|
|
wx.getBLEDeviceServices({
|
|
wx.getBLEDeviceServices({
|
|
deviceId: deviceId,
|
|
deviceId: deviceId,
|
|
success: (res) => {
|
|
success: (res) => {
|
|
- this.device.services = res.services;
|
|
|
|
|
|
+ // this.device.services = res.services;
|
|
let service_id = "";
|
|
let service_id = "";
|
|
for (let i = 0; i < res.services.length; i++) {
|
|
for (let i = 0; i < res.services.length; i++) {
|
|
if (res.services[i].uuid.toUpperCase().indexOf("AB00") != -1
|
|
if (res.services[i].uuid.toUpperCase().indexOf("AB00") != -1
|
|
|| res.services[i].uuid.toUpperCase().indexOf("FFC0") != -1
|
|
|| res.services[i].uuid.toUpperCase().indexOf("FFC0") != -1
|
|
|
|
+ || res.services[i].uuid.toUpperCase().indexOf("ae800") != -1
|
|
) {
|
|
) {
|
|
service_id = res.services[i].uuid;
|
|
service_id = res.services[i].uuid;
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
+ console.log('发现服务1:', service_id);
|
|
|
|
+ service_id = res.services[i].uuid;
|
|
|
|
+
|
|
}
|
|
}
|
|
this.device.serviceId = service_id;
|
|
this.device.serviceId = service_id;
|
|
- console.log('发现服务:', service_id);
|
|
|
|
|
|
+ console.log('发现服务2:', service_id);
|
|
|
|
|
|
resolve(service_id);
|
|
resolve(service_id);
|
|
// resolve(res.services);
|
|
// resolve(res.services);
|
|
@@ -458,7 +466,7 @@ class bleManager {
|
|
success: (res) => {
|
|
success: (res) => {
|
|
// this.characteristics[serviceId] = res.characteristics;
|
|
// this.characteristics[serviceId] = res.characteristics;
|
|
console.log('发现特征值2:', res);
|
|
console.log('发现特征值2:', res);
|
|
- this.device.characteristics = res.characteristics;
|
|
|
|
|
|
+ // this.device.characteristics = res.characteristics;
|
|
|
|
|
|
resolve(res.characteristics);
|
|
resolve(res.characteristics);
|
|
},
|
|
},
|
|
@@ -534,7 +542,7 @@ class bleManager {
|
|
|
|
|
|
setWrite(wirte, characteristicId) {
|
|
setWrite(wirte, characteristicId) {
|
|
console.log('写入特征值:', characteristicId)
|
|
console.log('写入特征值:', characteristicId)
|
|
- this.device.wirte = wirte
|
|
|
|
|
|
+ // this.device.wirte = wirte
|
|
this.device.characteristicId = characteristicId;
|
|
this.device.characteristicId = characteristicId;
|
|
}
|
|
}
|
|
|
|
|