BLE: セントラル-値の読み取り・書き込み

characteristicsの値の読み書きは用意された関数で行います。

characterisiticsには属性があり、そこに読み取り専用かどうかなどが指定されています。

console.log(characteristics.properties); // => ['read', 'write', 'notify']

readしか無いものに対してwrite()を行うとエラーとなります。

読み書きの関数は以下が使えます

  • writeWait(number array)
  • writeNumberWait(number)
  • writeTextWait()
  • readWait()

値の書き込み

writeWait()が最も基本的な書き込みで、バイト列をの書き込みを行います。
writeNumberWait()writeTextWait()を利用することで数字や文字列をバイト列に変換して保存することができます。

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

  var target = {
      uuids: ["fff0"],
  };
  var peripheral = await obniz.ble.scan.startOneWait(target);
  if(peripheral){
      await peripheral.connectWait();

      console.log("connected");
      await obniz.wait(1000);

      var dataArray = [0x02, 0xFF];
      await peripheral.getService("FF00").getCharacteristic("FF01").writeWait(dataArray);
      console.log("write success");
  }
}

値を読む

キャラクタリスティクスに書き込まれている値を読み込みます。
読み込みにはreadWait()を利用します。書き込んだのが文字列や数値だったとしてもバイト列として返ってきます

var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function () {
  await obniz.ble.initWait();
  var peripheral = await obniz.ble.scan.startOneWait({ localName: "Blank" });
  if(peripheral) {
    console.log("found");
    var connected = await peripheral.connectWait();
    if(connected){
      console.log("connected");
      var service = peripheral.getService("1111");
      var char = service.getCharacteristic("2222");
      var data = await char.readWait();
      console.log(data); // => ex [0x02, 0xFF]; 
    }else{
      console.log("failed");
    }
  }
}


Next : BLE: Central-Registration for notify

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