瀏覽代碼

feature: 处理君正连接状态下,数据交互问题

332777428@qq.com 5 月之前
父節點
當前提交
916e7c18f6
共有 3 個文件被更改,包括 44 次插入31 次删除
  1. 13 4
      pages/deviceConnect4/deviceConnect4.js
  2. 28 26
      utils/blue_ble/manager.js
  3. 3 1
      utils/blue_ble/util.js

+ 13 - 4
pages/deviceConnect4/deviceConnect4.js

@@ -1,6 +1,9 @@
 const app = getApp();
 import strings from '../../utils/strings.js';
 const {
+  BtHelper
+} = require('../../devices/bt_helper');
+const {
   BleUtil
 } = require('../../utils/blue_ble/util');
 
@@ -49,10 +52,16 @@ Page({
     };
 
     console.log("gadsfasdfadfaf===00==");
-    BleUtil.getInstance().startConnect(device, function (changed) {
-      if (changed) {
-        BleUtil.getInstance().sendData(device, app.globalData.ssid, app.globalData.pwdData);
+
+    BtHelper.getInstance().connect(device, function (isConnected, device) {
+      if (isConnected) {
+
       }
-    });
+    }, true, device);
+    // BleUtil.getInstance().startConnect(device, function (changed) {
+    //   if (changed) {
+    //     BleUtil.getInstance().sendData(device, app.globalData.ssid, app.globalData.pwdData);
+    //   }
+    // });
   },
 })

+ 28 - 26
utils/blue_ble/manager.js

@@ -416,30 +416,7 @@ class Manager {
       deviceId: deviceId,
       serviceId: that.writeServiceId,
       success: function (res) {
-        var characteristics = res.characteristics;
-        if (characteristics.length <= 0) {
-          failed();
-          return;
-        }
-
-        for (let i = 0; i < characteristics.length; i++) {
-          var charc = characteristics[i];
-          ///可以开始读取数据
-          if (charc.properties.notify) {
-            console.log("gadsfasdfadfaf===zzz==");
-            getMessageCall(charc.uuid);
-          }
-
-          ///可以开始写入数据
-          if (charc.properties.write || charc.properties.writeWithoutResponse) {
-            console.log("gadsfasdfadfaf===yyy==" + charc.properties.write + "===" + charc.properties.writeWithoutResponse);
-            that.writeCharaterId = charc.uuid;
-            console.log("gadsfasdfadfaf===uuu==" + that.writeServiceId + "===" + that.writeCharaterId);
-            setTimeout(() => {
-              successed();
-            }, 100);
-          }
-        }
+        that._forProcessDeal(res, failed, getMessageCall, successed);
       },
       fail: (err) => {
         failed();
@@ -447,6 +424,31 @@ class Manager {
     });
   }
 
+  async _forProcessDeal(res, failed, getMessageCall, successed) {
+    var that = this;
+    const time_util = require('./../../utils/time_util');
+    var characteristics = res.characteristics;
+    if (characteristics.length <= 0) {
+      failed();
+      return;
+    }
+
+    for (let i = 0; i < characteristics.length; i++) {
+      var charc = characteristics[i];
+      ///可以开始读取数据
+      if (charc.properties.notify) {
+        getMessageCall(charc.uuid);
+        await time_util.delayMills(300);
+      }
+
+      ///可以开始写入数据
+      if (charc.properties.write || charc.properties.writeWithoutResponse) {
+        that.writeCharaterId = charc.uuid;
+        successed();
+      }
+    }
+  }
+
   // 监听特征值变化
   monitorCharacteristicValueChange(device, serviceId, notifyCharaterId) {
     console.log("gadsfasdfadfaf===wwww==" + device.deviceId + "===" + serviceId +
@@ -459,11 +461,11 @@ class Manager {
         serviceId: serviceId,
         characteristicId: notifyCharaterId,
         success: function (res) {
-          console.log("gadsfasdfadfaf===eee==" + JSON.stringify(res));
+          console.log("啊是的发生的发生等份===cccc==" + JSON.stringify(res));
           resolve(true);
         },
         fail: function (res) {
-          console.log("gadsfasdfadfaf===rrr==" + JSON.stringify(res));
+          console.log("啊是的发生的发生等份===dddd==" + JSON.stringify(res));
           resolve(false);
         }
       });

+ 3 - 1
utils/blue_ble/util.js

@@ -97,19 +97,21 @@ class BleUtil {
         onChanged(false);
       }, function (notifyCharaterId) {
         ///监听特征值变化
+        console.log("啊是的发生的发生等份===aaa==");
         var isTrue = that.manager.monitorCharacteristicValueChange(device, serviceId, notifyCharaterId);
         if (!isTrue) {
           onChanged(false);
           return;
         }
 
+        console.log("啊是的发生的发生等份===eeee==");
         ///数据接收
         that.manager.onBLECharacteristicValueChange(function (value) {
           BtParse.parseTLV(value);
         });
       },
       async function () {
-          console.log("gadsfasdfadfaf===ttt==");
+          console.log("啊是的发生的发生等份===bbb==");
           onChanged(true);
         },
         function () {