wx.getBLEDeviceCaracterísticas WeChat applet Bluetooth WeChat applet impresora térmica

1 Descripción general del desarrollo de la función Bluetooth del subprograma WeChat
  • El primer paso es determinar si la versión actual de WeChat es compatible con la comunicación Bluetooth.
  • El segundo paso es activar el bluetooth.
  • Paso 3 Escanear el dispositivo
  • Paso 4 Conectar el dispositivo
  • El quinto paso es obtener el servicio y el valor de la característica para ver si admite operaciones de lectura y escritura de datos.
  • Paso 6 Enviar datos

Este artículo es el punto de contenido en el quinto paso del registro.

2 wx.getBLEDeviceCaracterísticas

wx.getBLEDeviceCharacteristics se usa para obtener
Obtener todos los valores característicos (characteristic) en un servicio del dispositivo Bluetooth

El código del núcleo clave es el siguiente

2.1 Obtener los servicios admitidos conectados a Bluetooth

En este paso, escaneé los dispositivos bluetooth disponibles, obtuve el ID de dispositivo de uno de los dispositivos y CallBack es una función de devolución de llamada que configuré

//获取蓝牙设备所有服务(service)
function getBLEDeviceServices(deviceId, callBack) {
    
    
  console.log("连接低功耗蓝牙设备成功 开始获取蓝牙服务"+deviceId)
  wx.getBLEDeviceServices({
    
    
    deviceId,
    success: (res) => {
    
    
      console.log("连接低功耗蓝牙设备成功 获取蓝牙服务成功"+deviceId)
      console.log("getBLEDeviceServices success")
      for (let i = 0; i < res.services.length; i++) {
    
    
        if (res.services[i].isPrimary) {
    
    
          getBLEDeviceCharacteristics(deviceId, res.services[i].uuid, callBack)
        }
      }
    },
    fail: (res) => {
    
    
      console.log("连接低功耗蓝牙设备成功 获取蓝牙服务失败"+deviceId)
      console.log("getBLEDeviceServices fail")
      console.log("获取蓝牙服务失败:" + JSON.stringify(res))
    }
  })
}

Hay algo mal con la documentación oficial de WeChat. Mi práctica es que está disponible en algunos teléfonos Android y hay múltiples servicios disponibles. Si regresa aquí, causará el problema de que los datos no se pueden generar en el siguiente paso. De hecho, puede ser salida.

inserte la descripción de la imagen aquí

2.2 Obtenga el código central clave de valores propios

Es necesario obtener el valor característico de acuerdo con el ID de servicio deviceId y serviceId del dispositivo Bluetooth, por ejemplo, si se admite la lectura de datos del dispositivo Bluetooth o si se admite la escritura de datos en el dispositivo Bluetooth, todos los cuales son juzgados por el valor característico.

En algunos teléfonos con Android, puede haber múltiples servicios disponibles, es decir, múltiples Id. de servicio. Los valores de función proporcionados en cada Id. de servicio son diferentes y deben usarse en combinación.
inserte la descripción de la imagen aquí

function getBLEDeviceCharacteristics(deviceId, serviceId, callBack) {
    
    
  wx.getBLEDeviceCharacteristics({
    
    
    deviceId,
    serviceId,
    success: (res) => {
    
    
      console.log('getBLEDeviceCharacteristics success', res.characteristics)
      for (let i = 0; i < res.characteristics.length; i++) {
    
    
        let item = res.characteristics[i]

        console.log("characteristics "+gloableBlueName+" read "+item.properties.read)
        console.log("characteristics "+gloableBlueName+" write "+item.properties.write)
        console.log("characteristics "+gloableBlueName+" notify "+item.properties.notify)
        console.log("characteristics "+gloableBlueName+" indicate "+item.properties.indicate)

        if (item.properties.read) {
    
    
        //可读数据
          wx.readBLECharacteristicValue({
    
    
            deviceId,
            serviceId,
            characteristicId: item.uuid,
          })
        }
        if (item.properties.write) {
    
    
          // 可写数据
        }
        }
      }
    },
    fail(res) {
    
    
      console.error('获取特征值失败:', res)
    },
    complete() {
    
    
      if (callBack) {
    
    
        console.log('回调 canWrite '+canWrite.toString());
        //我这里主要是用到了可写数据操作
        callBack(canWrite);
      }
    }
  })

Supongo que te gusta

Origin blog.csdn.net/zl18603543572/article/details/122349767
Recomendado
Clasificación