Browse Source

ffeature:增加蓝牙连接的界面

zeng.chen 8 tháng trước cách đây
mục cha
commit
6fa25837d6

+ 2 - 1
app.json

@@ -15,7 +15,8 @@
     "pages/wakeList/wakeList",
     "pages/aboutInfo/aboutInfo",
     "pages/deviceList/devices",
-    "pages/deviceConMode/index"
+    "pages/deviceConMode/index",
+    "pages/connectBle/connectBle"
   ],
   "tabBar": {
     "borderStyle": "black",

+ 7 - 4
app.wxss

@@ -1,11 +1,14 @@
-
 /* 字体颜色 */
 
 .main_green {
   color: #A4D099;
 }
 
- /* 以前连接设备的 */
+.main_bg_green {
+  background-color: #A4D099;
+}
+
+/* 以前连接设备的 */
 .deviceRoter .roterps {
   padding: 0 66rpx;
 }
@@ -20,7 +23,7 @@
   width: 512rpx;
 }
 
-.deviceRoter .roterps > text {
+.deviceRoter .roterps>text {
   font-size: 32rpx;
   color: #353533;
   line-height: 44rpx;
@@ -84,4 +87,4 @@
 .deviceRoter .subBtn .notRoter image {
   height: 20rpx;
   margin-left: 20rpx;
-}
+}

+ 130 - 0
pages/connectBle/connectBle.js

@@ -0,0 +1,130 @@
+// pages/connectBle/connectBle.js
+const btHelper = require('../../devices/bt_helper');
+const toastUtil = require('../../utils/toast_util');
+import routeUtil from '../../utils/route_util'
+import route_constant from '../../utils/route_constant.js'
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    connectDevice: {},
+    nvabarData: {
+      showCapsule: 1, //是否显示左上角图标   1表示显示    0表示不显示
+      title: '连接设备', //导航栏 中间的标题
+      callback() {
+        wx.navigateBack({
+          delta: 1,
+        })
+      }
+    },
+  },
+  async connectDeviceTap() {
+    await btHelper.search()
+    await this.getConnectedDevices()
+    btHelper.findDevices(function (devices) {
+      devices.forEach(element => {
+        console.log('发现设备:', element.deviceId, element.uuid, element.mac);
+
+        let deviceId = element.deviceId ?? ""
+        if (deviceId.includes("D8:24:07:89:31") ||
+          element.deviceId.includes("F5:A5:43:70:C8:F1") ||
+          element.deviceId.includes("D1:4D:DA:76:42:50")
+        ) {
+          toastUtil.show("开始连接设备")
+          btHelper.stopSearch()
+          btHelper.connect(element, function (data) {
+            // console.log("连接成功", data)
+          })
+          return
+        }
+      });
+    })
+  }, getConnectedDevices: async function () {
+    try {
+      const connectedDevices = await btHelper.getConnectedDevices()
+      connectedDevices.forEach(element => {
+        if (element.localName != null && element.localName.indexOf("MW") >= 0) {
+          console.log('已连接的蓝牙设备:', element);
+        }
+        // if (element.deviceId.includes("D8:24:07:89:31") ||
+        //   element.deviceId.includes("F5:A5:43:70:C8:F1") ||
+        //   element.deviceId.includes("D1:4D:DA:76:42:50")
+
+        // ) {
+        //   toastUtil.show("开始连接设备")
+        //   btHelper.stopSearch()
+        //   btHelper.connect(element, function (data) {
+        //     // console.log("连接成功", data)
+        //   })
+        // }
+        return;
+      });
+      // console.log('已连接的蓝牙设备:', connectedDevices);
+    } catch (error) {
+      console.error(error);
+    }
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad(options) {
+    btHelper.initBluetooth()
+
+    let device = options.param;
+    this.setData({
+      connectDevice: device
+    })
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload() {
+    btHelper.closeBle()
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage() {
+
+  }
+})

+ 3 - 0
pages/connectBle/connectBle.json

@@ -0,0 +1,3 @@
+{
+  "usingComponents": {}
+}

+ 8 - 0
pages/connectBle/connectBle.wxml

@@ -0,0 +1,8 @@
+<!-- pages/connectBle/connectBle.wxml -->
+<view class="container">
+				<nav-bar bind:goBack="_goBack" nav-bgc-class="ex-nav-bgc-class" nav-title-class="ex-nav-title-class" ex-back-pre="ex-back-pre" navbar-data='{{nvabarData}}'></nav-bar>
+				<image class="device_pic" src="{{connectDevice.img}}" mode="aspectFill" />
+				<view class="top_tips">正在搜索设备,请保持设备开机状态</view>
+				<view style="font-size: 14rpx; color: #666666;">拨动设备-开机</view>
+				<view class="main_bg_green connect_button" bind:tap="connectDeviceTap">正在搜索设备</view>
+</view>

+ 32 - 0
pages/connectBle/connectBle.wxss

@@ -0,0 +1,32 @@
+/* pages/connectBle/connectBle.wxss */
+.container {
+	position: relative;
+	height: 100vh - 60rpx;
+}
+
+.device_pic {
+	top: 200rpx;
+	height: 200rpx;
+	margin-inline: 100rpx;
+}
+
+.top_tips {
+	top: 100rpx;
+	margin-inline: 20rpx;
+	color: white;
+	font-size: 28rpx;
+	text-align: center;
+}
+
+.connect_button {
+	position: fixed;
+	bottom: 100rpx;
+	left: 60rpx;
+	right: 60rpx;
+	/* margin-inline: 60rpx; */
+	color: white;
+	text-align: center;
+	padding: 10px 0;
+	box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.1);
+	/* 添加阴影效果 */
+}

+ 5 - 3
utils/route_constant.js

@@ -1,8 +1,9 @@
 
 /// 抽奖记录
 const deviceList = "../deviceList/devices";
-// /// 抽奖详情
-const detailMode = "../deviceConMode/index";
+// 连接模式
+const connectMode = "../deviceConMode/index";
+const connectBle = "../connectBle/connectBle";
 // // 主页
 // const home = "../home/home";
 // // 主页
@@ -10,7 +11,8 @@ const detailMode = "../deviceConMode/index";
 module.exports = {
 
     deviceList: deviceList,
-    detailMode: detailMode,
+    connectMode: connectMode,
+    connectBle: connectBle,
     // deviceList: detail,
     // home: home
 }