BLE: ペリフェラル-値の変更通知

他の端末がobnizにBLEで接続して、キャラクタリスティクスの値を読んだり書き換えたりすることができます。
そういったイベントが起きたときに呼ばれる関数を設定して変更に気づくことができます。

読み込み通知

値を書き換えられた場合のみでなく、以下の関数を使えば値の読み取りが行われたタイミングも知ることができます。

characteristic.onreadfromremote = function(){}

このようにキャラクタリスティクスに対して関数を設定すると、何かがBLE経由で値を読んだときにこの関数が呼ばれます。

var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function () {
  await obniz.ble.initWait();
  var service = new obniz.ble.service({ uuid : "1234" });
  var characteristic = new obniz.ble.characteristic({ uuid : "7777", data: [1, 2, 3]});
  service.addCharacteristic(characteristic);
  obniz.ble.peripheral.addService(service);

  obniz.ble.advertisement.setAdvData(service.advData);
  obniz.ble.advertisement.start();

  characteristic.onreadfromremote = function(address){
    console.log("readed from ble central");    
  }
}

スマホアプリからキャラクタリスティクスの値を読めばreadedが表示されます。

書き込み通知

相手が値を書き込んだ場合の通知です。以下のコールバックを設定します。

characteristic.onwritefromremote = function(address, newvalue){
}

addressとnewvalue
newvalueの中に書き込まれた新しい値が入っています。

var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function () {
  await obniz.ble.initWait();
  var service = new obniz.ble.service({ uuid : "1234" });
  var characteristic = new obniz.ble.characteristic({ uuid : "7777", data: [1, 2, 3]});
  service.addCharacteristic(characteristic);
  obniz.ble.peripheral.addService(service);

  obniz.ble.advertisement.setAdvData(service.advData);
  obniz.ble.advertisement.start();

  characteristic.onwritefromremote = function(address, newvalue){
    console.log(newvalue);
  }
}

実行して別デバイスからキャラクタリスティクスに対して書き込みを行えばログにその値が出ることになります。



Next : BLE: Peripheral-update value

You will Get in Few Days

Circuit for Starter “obniz Board” is available on Amazon and other online stores.
You can get it at below

Our products and resellers

Forum

Visit our developer’s forum to discuss and discover technologies.

Forum

Contact

Feel free to contact out support and technical team.

Contact us