connectBle.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. // pages/connectBle/connectBle.js
  2. const btHelper = require('../../devices/bt_helper');
  3. const toastUtil = require('../../utils/toast_util');
  4. import routeUtil from '../../utils/route_util'
  5. import route_constant from '../../utils/route_constant.js'
  6. Page({
  7. /**
  8. * 页面的初始数据
  9. */
  10. data: {
  11. connectDevice: {},
  12. nvabarData: {
  13. showCapsule: 1, //是否显示左上角图标 1表示显示 0表示不显示
  14. title: '连接设备', //导航栏 中间的标题
  15. callback() {
  16. wx.navigateBack({
  17. delta: 1,
  18. })
  19. }
  20. },
  21. searchTips: "正在搜索设备,请保持设备开机状态",
  22. buttonTips: "正在搜索设备"
  23. },
  24. async connectDeviceTap() {
  25. this.setData({
  26. searchTips: "正在搜索设备,请保持设备开机状态",
  27. buttonTips: "正在搜索设备"
  28. })
  29. await btHelper.search()
  30. await this.getConnectedDevices()
  31. let _this = this
  32. btHelper.findDevices(function (devices) {
  33. devices.forEach(element => {
  34. console.log('发现设备:', element.deviceId, element.uuid, element.mac);
  35. let deviceId = element.deviceId ?? ""
  36. if (deviceId.includes("D8:24:07:89:31") ||
  37. element.deviceId.includes("F5:A5:43:70:C8:F1") ||
  38. element.deviceId.includes("D1:4D:DA:76:42:50")
  39. ) {
  40. toastUtil.show("开始连接设备")
  41. btHelper.stopSearch()
  42. _this.setData({
  43. searchTips: "正在连接设备,请保持设备开机状态",
  44. buttonTips: "正在连接设备"
  45. })
  46. btHelper.connect(element, function (data) {
  47. // console.log("连接成功", data)
  48. _this.setData({
  49. searchTips: data ? "连接成功" : "连接失败",
  50. buttonTips: data ? "连接成功" : "连接失败"
  51. })
  52. })
  53. return
  54. }
  55. });
  56. })
  57. }, getConnectedDevices: async function () {
  58. try {
  59. const connectedDevices = await btHelper.getConnectedDevices()
  60. console.log("全部设备", connectedDevices)
  61. if (connectedDevices) {
  62. connectedDevices.forEach(element => {
  63. console.log('已连接的蓝牙设备:', element);
  64. // if (element.deviceId.includes("D8:24:07:89:31") ||
  65. // element.deviceId.includes("F5:A5:43:70:C8:F1") ||
  66. // element.deviceId.includes("D1:4D:DA:76:42:50")
  67. // ) {
  68. // toastUtil.show("开始连接设备")
  69. // btHelper.stopSearch()
  70. // btHelper.connect(element, function (data) {
  71. // // console.log("连接成功", data)
  72. // })
  73. // }
  74. return;
  75. });
  76. }
  77. // console.log('已连接的蓝牙设备:', connectedDevices);
  78. } catch (error) {
  79. console.error(error);
  80. }
  81. },
  82. /**
  83. * 生命周期函数--监听页面加载
  84. */
  85. onLoad(options) {
  86. btHelper.initBluetooth()
  87. let device = options.param;
  88. this.setData({
  89. connectDevice: device
  90. })
  91. },
  92. /**
  93. * 生命周期函数--监听页面初次渲染完成
  94. */
  95. onReady() {
  96. },
  97. /**
  98. * 生命周期函数--监听页面显示
  99. */
  100. onShow() {
  101. },
  102. /**
  103. * 生命周期函数--监听页面隐藏
  104. */
  105. onHide() {
  106. },
  107. /**
  108. * 生命周期函数--监听页面卸载
  109. */
  110. onUnload() {
  111. // todo 要关闭吗
  112. btHelper.closeBle()
  113. },
  114. /**
  115. * 页面相关事件处理函数--监听用户下拉动作
  116. */
  117. onPullDownRefresh() {
  118. },
  119. /**
  120. * 页面上拉触底事件的处理函数
  121. */
  122. onReachBottom() {
  123. },
  124. /**
  125. * 用户点击右上角分享
  126. */
  127. onShareAppMessage() {
  128. }
  129. })