BLE Central 接続する

見つけてから接続

接続するためにはまず、見つけなければなりません。
そして見つけたperipheralに対してconnect()を呼ぶことで接続できます。

var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function () {
  await obniz.ble.initWait();
  var target = {
    localName: "Blank"
  };
  var peripheral = await obniz.ble.scan.startOneWait(target);
  if(peripheral) {
    console.log("found");
    try {
      await peripheral.connectWait();
      console.log("connected");
    } catch(e) {
      console.error(e);
    }
  }
}

接続とスキャンの同時実行はできないため、自動でスキャンは停止されます。
ただ、接続してしまったあとの両立はできますので再度スキャンの実行ができます。

var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function () {
  await obniz.ble.initWait();
  var target = {
    localName: "Blank"
  };
  var peripheral = await obniz.ble.scan.startOneWait(target);
  if(peripheral) {
    console.log("found");
    try {
      await peripheral.connectWait();
      console.log("connected");
      obniz.ble.scan.start(); // start scan all device
    } catch(e) {
      console.error(e);
    }
  }
}

エラーハンドリング

無線通信ですので、通信を始めるとエラーが起こることがあります。
途中で相手がいなくなったとか、できないことを要求したなどです。

ペリフェラルとのあいだで起きたエラーはこのように検出できます。

var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function () {
  await obniz.ble.initWait();
  var target = {
    localName: "Blank"
  };
  var peripheral = await obniz.ble.scan.startOneWait(target);
  if(peripheral) {
    console.log("found");
    try {
      await peripheral.connectWait();
      peripheral.onerror = function(err){
        console.log("error : " + err.message);
      }
      console.log("connected");
      obniz.ble.scan.start(); // start scan all device
    } catch(e) {
      console.error(e);
    }
  }
}

エラーには何に対してやった何のエラーなのかが入っています。
詳しくはBLE Central Docをご覧ください。

切断

接続できたペリフェラルと切断するには

peripheral.disconnectWait();

を利用します。
繋がったらすぐに切るというプログラムにする場合はこのようになります。

var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function () {
  await obniz.ble.initWait();
  var target = {
    localName: "Blank"
  };
  var peripheral = await obniz.ble.scan.startOneWait(target);
  if(peripheral) {
    console.log("found");
    await peripheral.connectWait();
    console.log("connected");
    await peripheral.disconnectWait();
    console.log("disconnected");
  }
}

callbackによる記載

callback形式での記載も可能です。obniz.jsのリファレンスを参照ください。



Next : BLE: Central-Service and characteristics and descriptor

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