不支持Bluno板上的Web蓝牙API特性通知?

时间:2017-05-01 19:10:37

标签: javascript google-chrome bluetooth arduino web-bluetooth

TL; DR;

我的问题是:

  1. 目前,来自https://developer.mozilla.org/en-US/docs/Web/API/Bluetooth的网络蓝牙API是否未完全支持Arduino板等定制设备?因为当我尝试将DOMException: GATT Error: Not supported.用于我的Bluno Beetle板时,我遇到BluetoothRemoteGATTCharacteristic.startNotifications()例外。

  2. 如果startNotifications()已完全实施。然后,是否需要配置我的Bluno板上的任何额外设置才能使通知正常工作?从大多数在线示例中,在使用此方法之前,没有提及设备上的额外设置。我在运行时检查了目标特征的notify属性是true。它不应该是https://webbluetoothcg.github.io/web-bluetooth/中所述的此异常的原因:

    If neither of the Notify or Indicate bits are set in characteristic’s properties, reject promise with a NotSupportedError and abort these steps.
    
  3. 我的情况:

    我正在尝试在chrome上构建一个小型网络演示,可以输出从我的Bluno Beetle v1.0板传输的文本。

    我的董事会内部的计划非常简单:

    void setup() {
        Serial.begin(115200);  //initial the Serial
    }
    
    void loop() {
        Serial.write("hello world");
        Serial.println();
        delay(500);
    }
    

    我正在使用developer.mozilla.org的网络蓝牙API

    // UUID using by Bluno Beetle
    var RXTX_SERVICE = 0xdfb0;
    var RXTX_CHARACTERISTIC = 0xdfb2;
    
    function handleCharacteristicValueChanged(event) {
        var value = event.target.value;
    }
    
    navigator.bluetooth.requestDevice({ acceptAllDevices: true, optionalServices: [RXTX_SERVICE] })
    .then(device => { console.log(device); return device.gatt.connect(); })
    .then(server => { return server.getPrimaryService(RXTX_SERVICE); })
    .then(service => { return service.getCharacteristic(RXTX_CHARACTERISTIC); })
    .then(ch => { console.log(ch); 
        ch.addEventListener('characteristicvaluechanged', handleCharacteristicValueChanged);
        console.log('Notifications have been started.');
        return ch;
    })
    .then(ch => { return ch.startNotifications() })
    .catch(error => { console.log(error); });
    

    一切都很顺利,但是,在执行以下行时我遇到了这个异常:ch.startNotifications()

    DOMException: GATT Error: Not supported.
    

    我尝试使用iOS / Android APP执行相同的任务,两个APP都在处理该特征变化的通知。所以我假设我的Bluno电路板在某些配置下正常工作。但我找不到网络蓝牙API对我来说是有用的。

    任何帮助将不胜感激!感谢。

1 个答案:

答案 0 :(得分:0)

Web蓝牙支持完全GATT通知。

根据https://evothings.com/writing-your-first-mobile-application-for-the-bluno-micro-controller-by-dfrobot/RXTX特征似乎是0xdfb1没有0xdfb2