react native ble plx有助于获取服务和特性,并编写响应

2w3kk1z5  于 2021-09-13  发布在  Java
关注(0)|答案(0)|浏览(270)

我是ble plx的新手,并且是react native,我正在从事一个项目,在这个项目中,我们应该能够连接到一个设备并改变其行为,只需编写新的特性,它就应该改变。。。我使用了我在互联网上找到的一个ble启动程序,我能够写出特征并改变行为。所以我知道外围设备可以做到,我只需要开发代码。我已经有了一些东西,但是当我写下设备的特性时,设备不会随着我们的spect而改变,设备不会做任何事情,我也不会得到任何错误,或者只是设备没有做任何事情。这里有一段代码,如果有人能帮上忙,那将是令人惊讶的!
以下是代码的主要部分:

import { BleManager } from 'react-native-ble-plx';

  const manager = new BleManager();

  const Example=()=>{

    useEffect(() => {
      manager.onStateChange((state) => {
        const subscription = manager.onStateChange((state) => {
            if (state === 'PoweredOn') {
                scanAndConnect();
                subscription.remove();
            }
        }, true);
        return () => subscription.remove();
      });
    }, [manager])

    function scanAndConnect() {

      console.log('Escanear')
      manager.startDeviceScan(null,null,async(error,device)=>{
        console.log(device.id)
      if(device.id ==='D1:42:78:C8:AB:FB' || device.id ==='D1:42:BF:F1:D9:3C'){

          manager.stopDeviceScan()
          console.log("ID del dispositivo: ", device.id)
          console.log("Nombre del dispositivo: ", device.name)
          console.log("RRSI del dispositivo: ", device.rssi)
          console.log("MTU del dispositivo: ", device.mtu)

          device.connect()
          .then((device) => {
             const services =  device.discoverAllServicesAndCharacteristics()

             console.log(services)
          })
         .catch((error) => {
          // Handle errors
          console.log(error)
      });
        }
        if (error) {
          console.log(error)
          return
      }
      })
 }
 const writeChar=async()=> {
  var text = (Buffer.from("AA0100000200").toString('base64'));
  manager.writeCharacteristicWithoutResponseForDevice(
    'D1:42:BF:F1:D9:3C',
    'aae0',
    'aae1',
    text,
  )
  .then(() => {
    console.log("Write: " + text);
  })
  .catch((error) => {
    console.log(error);
  });
 }

下面是console.log给我的信息。

D1:42:BF:F1:D9:3C
 LOG  ID del dispositivo:  D1:42:BF:F1:D9:3C
 LOG  Nombre del dispositivo:  Bluetrum-MX
 LOG  RRSI del dispositivo:  -73
 LOG  MTU del dispositivo:  23
 LOG  {"_U": 0, "_V": 0, "_W": null, "_X": null}
 LOG  Write: QUEwMTAwMDAwMjAw

但是,即使没有错误,设备也不会改变,所以这就是我的问题,我无法让设备改变行为并开始振动(仅通过写入特征)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题