"use strict";
var common_vendor = require("../../common/vendor.js");
const _sfc_main = {
  setup(__props) {
    common_vendor.onMounted(() => {
      openBluetoothAdapter();
    });
    common_vendor.onUnmounted(() => {
      if (discoveryStarted.value) {
        stopBluetoothDevicesDiscovery();
      }
    });
    const bluetoothDevices = common_vendor.reactive([]);
    const ignoreDevices = common_vendor.reactive([]);
    let discoveryStarted = common_vendor.ref(false);
    let showLoading = common_vendor.ref(true);
    const openBluetoothAdapter = () => {
      wx.openBluetoothAdapter({
        success: (res) => {
          console.log("openBluetoothAdapter success", res);
          startBluetoothDevicesDiscovery();
        },
        fail: (res) => {
          console.log(res);
          if (res.errCode === 10001) {
            wx.onBluetoothAdapterStateChange(function(res2) {
              console.log("onBluetoothAdapterStateChange", res2);
              if (res2.available) {
                startBluetoothDevicesDiscovery();
              }
            });
          }
        }
      });
    };
    const startBluetoothDevicesDiscovery = () => {
      if (discoveryStarted.value) {
        return;
      }
      discoveryStarted.value = true;
      wx.startBluetoothDevicesDiscovery({
        success: (res) => {
          console.log("startBluetoothDevicesDiscovery success", res);
          onBluetoothDeviceFound();
        },
        fail: (err) => {
          discoveryStarted.value = false;
          wx.showToast({
            title: "\u5F00\u542F\u641C\u7D22\u5931\u8D25",
            icon: "none",
            duration: 2e3
          });
          console.error("\u5F00\u542F\u84DD\u7259\u8BBE\u5907\u641C\u7D22\u5931\u8D25", err);
        }
      });
    };
    const onBluetoothDeviceFound = () => {
      wx.onBluetoothDeviceFound((res) => {
        showLoading.value = false;
        res.devices.forEach((device) => {
          console.log(device);
          if (device.RSSI > -80 && !bluetoothDevices.some((d) => d.deviceId === device.deviceId) && !ignoreDevices.includes(device.deviceId)) {
            bluetoothDevices.push(device);
          }
        });
      });
    };
    const createBLEConnection = (device) => {
      stopBluetoothDevicesDiscovery();
      wx.showLoading({
        title: "\u8FDE\u63A5\u4E2D..."
      });
      wx.createBLEConnection({
        deviceId: device.deviceId,
        success(res) {
          wx.hideLoading();
          common_vendor.index.navigateTo({
            url: "/pages/bluetooth/device?deviceId=" + device.deviceId + "&name=" + device.name
          });
        },
        fail() {
          wx.hideLoading();
          wx.showToast({
            title: "\u84DD\u7259\u8FDE\u63A5\u5931\u8D25",
            icon: "none",
            duration: 2e3
          });
          return;
        }
      });
    };
    const stopBluetoothDevicesDiscovery = () => {
      wx.stopBluetoothDevicesDiscovery();
    };
    return (_ctx, _cache) => {
      return common_vendor.e({
        a: common_vendor.unref(showLoading)
      }, common_vendor.unref(showLoading) ? {} : {
        b: common_vendor.o(startBluetoothDevicesDiscovery),
        c: common_vendor.f(common_vendor.unref(bluetoothDevices), (device, index, i0) => {
          return {
            a: common_vendor.t(device.name || device.deviceId),
            b: index,
            c: common_vendor.o(($event) => createBLEConnection(device))
          };
        })
      });
    };
  }
};
var MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-0e0dc370"], ["__file", "C:/Users/bzm15/Desktop/ix/mini_web-develop/pages/bluetooth/index.vue"]]);
wx.createPage(MiniProgramPage);
