質問: * ios android共にclassicはユーザーがペア設定を設定した後にコード側でそれを取得しデータを送受信できる。 * bleはコード側でペア設定などを設定でき、データを送受信できる。 * classicはコード制御に制限があり、bleは割と自由。 この認識は間違っていますか?
回答: うーんこの辺「正しく」解説するとなると専門用語が必要です。逆に専門用語なしだと不正確な説明がわかった**つもり**になるだけだったりします。なのできっちり専門書を入手して読んでほしいのですが・・・ 設問が複数ありますが理解すべきは論理接続の仕様だけで 前提知識: bluetooth 末端機器には2種類あり * データを一方向に送り付けるだけの装置(マウス、心拍計、自転車の速度計ケイデンス計など) * 相互通信する装置(表示を伴う装置、キーボード等) * ヘッドホンなどはデータを一方向にもらうだけの装置に見えますが、コネクションの都合で相互通信機器に分類できます 一方向機器は (bluetooth 仕様書の専門用語で言う)コネクションが不要でパソコンやスマホはただ受信するだけです。実用上は、他人の心拍計やケイデンス計を受け取りたくないので、パソコン側では送信元の限定が必要です。 ペアリングという用語は「コネクションを張ること」と「送信元の限定」の両方の意味に使われていたりするので混乱の元です。本当にこの機器と接続してよいこと(この機器が他人のマウスやヘッドホンでないこと)を人間が承認する=送信元の限定という意味に限定して文言「ペアリング」を使うとよいでしょう。 相互通信したい場合はコネクションが必要です。 * bluetooth classic の場合 + マスター(PC)はマスターにしかなれません。1台のマスターは複数のスレーブとコネクションを張ることができます。 + スレーブ(周辺装置)はスレーブにしかなれません。1本コネクションを張ると2本目は張れません。 その意味で「制限があります」 * bluetooth 4.1 (BLE) の場合 + セントラルはペリフェラルになることができます。実際になれるかどうかは SoC やドライバの能力次第。 + 1台のセントラルは複数のペリフェラルとコネクションを張れます。 + ペリフェラルもセントラルになることが規格書上は可能ですが、そんなコストをかけている末端機器はまずないでしょう。 + 1台のペリフェラルは複数のセントラルとコネクションを張れます(規格書上は)が、安価な末端機器に複数張る能力があるかは別問題っす。 その意味で「割と自由」です。 bluetooth BR/EDR (classic, bluetooth version 3.x 以下) と bluetooth LE (BLE, bluetooth version 4.0 以上) では、 設計思想レベルで非互換です。電波仕様も異なるのでこの両者をつなぐことはできません。 機器として BR/EDR と BLE 両方に対応しているものは bluetooth smart ready といいますが、通信する機器両方が対応しているほうの仕様でしか通信しません・できません。 「コードで」接続ってのが意味わかりません(有線の意味?それともプログラムコードって意味?)が、ペアリングの前に「誰かが居る」ことを検出するのはプログラムで行う義務がありますし、操作員が承認したらコネクションを張るなり傍受開始するのはプログラムで行います。接続承認のない機器に無節操に接続しに行くのは単なる迷惑です(時と場合によっては脆弱性)この辺の事情は classic も BLE も同じ。 bluetooth 仕様書は公開されていますが日本語を母国語とする入門者がいきなりこれを読んでも絶対に理解できないでしょう。日本語で解説している書籍を (kindle でもいいっすけど) 入手して穴が開くまで読んでみましょう。書籍は何でもいいです。今オイラの手元にあるのはBluetooth Low Energy をはじめよう です。