2017-05-01 63 views
2

TL; DR;不支持Bluno板上的Web藍牙API特性通知?

我的問題是:

  1. 是從https://developer.mozilla.org/en-US/docs/Web/API/Bluetooth網絡藍牙API在這一刻不完全支持的的Arduino板一些自定義的設備?因爲當我嘗試將BluetoothRemoteGATTCharacteristic.startNotifications()用於我的Bluno Beetle板時,我遇到了DOMException: GATT Error: Not supported.例外情況。

  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. 
    

我的情況:

我試圖建立對鉻,其輸出的文字一點點網絡演示從我的Bluno Beetle v1.0板發送。我的板內

計劃很簡單:

void setup() { 
    Serial.begin(115200); //initial the Serial 
} 

void loop() { 
    Serial.write("hello world"); 
    Serial.println(); 
    delay(500); 
} 

我使用網絡藍牙API從developer.mozilla.org

// 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/An droid APP執行相同的任務,兩個APP都在處理該特性變化的通知。所以我認爲我的Bluno主板在某些配置下工作正常。但我無法找到網絡藍牙API對我來說是有用的,以克服這一點。

任何幫助,將不勝感激!謝謝。

回答