Peripheral: 値を更新する

一度登録したキャラクタリスティクスの値は後からでも書き変えることができます。相手が接続中か否かに限らず操作可能です。

書き換える

キャラクタリスティクスの値はBLE経由で他のデバイスから書き換えられることもありますが、自分から値を書き換えることもできます。characteristic.writeWait()を利用することで値を更新できます。以下の例ではキャラクタリスティクスの値は最初[1,2,3]だったのが、すぐに[0xFF]に書き換わります。ほかデバイスからBLEで接続して確認しても0xFFが読み取れます。

var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function () {
  await obniz.ble.initWait();

  obniz.ble.peripheral.onconnectionupdates = function(data){
    console.log("remote device ", data.address, data.status)
  };

  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.setScanRespData({
    localName : "obniz BLE",
  });
  obniz.ble.advertisement.start();

  await characteristic.writeWait([0xFF]) // over write
}