iOSでのBluetooth通信入門 :CoreBluetooth プログラミングガイド 解説 : Core Bluetoothの概要

bluetooth-ios_001

目次 > Core Bluetoothの概要

Core Bluetoothの概要

Core Bluetoothフレームワークには、iOS/MacアプリケーションがBLEデバイスと通信できるようにする 働きがあります。心拍モニタ、デジタルサーモスタット、あるいは他のiOSデバイスなどのペリフェ ラルを検出、調査し、情報をやり取りできるようになるのです。

フレームワークは、Bluetooth  4.0仕様に定義されているBluetooth通信の、細かな挙動を抽象化してい ます。仕様のうち低階層に当たる詳細を隠蔽して、BLE機器とデータをやり取りするアプリケーショ ンを、容易に開発できるようにしているのです。フレームワークは上記の仕様に基づいているので、 基本的な概念や用語も仕様に沿ったものになります。この章では、Core Bluetoothフレームワークを 使ってアプリケーションを開発する際に知っておくべき、重要な用語や概念について説明します。

セントラルとペリフェラルのBluetooth通信における役割

通信には、セントラルとペリフェラルが関与します。やや伝統的とも言えるクライアント/サーバ 型アーキテクチャが基盤となっており、ペリフェラル(periferal)には通常、他のデバイスが必要とするであろうデータがあります。一方、セントラル(central)は、ペリフェラルから提供される情報 を使って、何らかのタスクを実行します。図 1-1のように、たとえば心拍モニタには有用なデータが あり、Mac/iOSアプリケーションはこれを見やすく加工して表示します。

cb_02
図 1-1 セントラルとペリフェラル

 

セントラルは、アドバタイズしているペリフェラルを検出し、接続する

ペリフェラルはアドバタイズパケットの形式で、所定のデータを同報送信(broadcast)します。アド バタイズパケット(advertising packet)は比較的小さなデータバンドルで、ペリフェラルの名前や主 な機能など、提供可能なデータを表す情報が入っています。たとえばデジタルサーモスタットは、現 在の室温データを提供できる旨アドバタイズします。BLEではアドバタイズが、ペリフェラルが自身 の存在を他の機器に知らしめるための、重要な手段になっています。

一方、セントラルは、必要なデータを提供してくれるペリフェラルがないか走査します(図 1-2を参 照)。アドバタイズを検出したセントラルは、送出元のペリフェラルに対して接続を要求できます。

cb_03
図 1-2 アドバタイズとその検出

 

ペリフェラルのデータはどのような構造になっているか

ペリフェラルに接続する目的は、どのようなデータが提供されるか調査し、そのデータをやり取りす ることです。しかしこの話の前に、ペリフェラルのデータがどのような構成になっているか説明して おきましょう。

ペリフェラルは、1つ以上のサービス(あるいは接続信号強度に関する有用な情報)を提供します。 サービス(service)とは、デバイス(またはその一部)の目的を達成するためのデータと、これに関 連する動作をまとめて呼ぶ用語です。たとえば心拍モニタには、心拍センサーから取得した心拍デー タを提供する、というサービスがあります。

サービス自身は、特性またはサービスから成ります(後者は別のサービスを参照する形で構成)。特 性(characteristic)とは、ペリフェラルのサービスに関する詳細です。たとえば先に述べた心拍サー ビスは、心拍センサーが体のどの位置にあるかを表す特性、心拍測定データを送信する特性などから 成ります。図 1-3に、心拍モニタのサービスと特性の構成(例)を示します。

cb_04
図 1-3 ペリフェラルのサービスと特性

 

セントラルはペリフェラルがどのようなデータを提供するか調査し、実際 にやり取りする

セントラルは、ペリフェラルとの接続を確立した後、提供されるサービスおよび特性に関する情報全 体を取得します(アドバタイズのデータはその一部でしかないこともあります)。

さらに、特性の値を読み書きする、という形で、ペリフェラルのサービスとやり取りすることも可能 です。たとえばデジタルサーモスタットの場合、現在の室温を読み取るほか、設定温度(何度に調整 するか)の値を書き込むことができるかも知れません。

セントラル、ペリフェラル、ペリフェラルのデータをどのよ うに表現するか

BLE通信に関与する2つの機器やデータを、Core Bluetoothフレームワークは非常に分かりやすい形で表 します。

セントラル側のオブジェクト

ローカル側のセントラルを使って、リモート側のペリフェラルと情報をやり取りする場合、BLE通信 のセントラル側で、所定のアクションを実行することになります。ローカル側にペリフェラルを置い てセントラルからの要求に応答する場合を除き、Bluetoothトランザクションの多くはセントラル側で 行います。

アプリケーションにセントラルとしての役割を実装する方法については、“セントラルが実行するタ スク” および“リモートのペリフェラルとのやり取りに関するベストプラクティス” を参照してください。

ローカルのセントラルとリモートのペリフェラル

セントラル側では、ローカルのセントラルをCBCentralManagerオブジェクトで表します。このオブ ジェクトは、検出し、接続したリモートのペリフェラル(CBPeripheralオブジェクトで表す)を管 理するために使います。アドバタイズしているペリフェラルを走査し、検出し、見つかった機器に接続する、などといった処理です。図 1-4に、ローカルのセントラル、リモートのペリフェラルを、Core Bluetoothフレームワークでどのように表現するか、を示します。

図 1-4 セントラル側にあるCore Bluetoothのオブジェクト
図 1-4 セントラル側にあるCore Bluetoothのオブジェクト

リモートのペリフェラルが持つデータはCBServiceおよびCBCharacteristicオブジェクト で表現する

リモートのペリフェラル(CBPeripheralオブジェクトで表す)が持つデータをやり取りするとき、 実際に操作しているのはそのサービスや特性です。Core Bluetoothフレームワークでは、リモートのペ リフェラルが提供するサービスをCBServiceオブジェクトで表します。同様に、このサービスの特性 をCBCharacteristicオブジェクトで表現します。図 1-5に、リモートのペリフェラルが提供するサー ビスや特性の、基本的な構成を示します。

cb_06
図 1-5 リモートのペリフェラルが提供する、サービスや特性が成す木

 

ペリフェラル側のオブジェクト

OS X v10.9およびiOS 6以降、Mac/iOSデバイス自身もBLEペリフェラルとして機能し、他のデバイス(Mac、iPhones、iPadsを含む)にデータを提供できるようになりました。デバイスにペリフェラルと しての役割を実装する場合、BLE通信のペリフェラル側で、所定のアクションを実行することになります。

ローカルのペリフェラルとリモートのセントラル

ペリフェラル側では、ローカルのペリフェラルをCBPeripheralManagerオブジェクトで表します。 このオブジェクトは、ローカルのペリフェラルが提供するサービス/特性のデータベースを管理し、リモートのセントラル(CBCentralオブジェクトで表す)に対してこのサービスをアドバタイズするために使います。また、リモートのセントラルからデータの読み書き要求があったとき、これに応答 するためにも使います。図 1-6に、ローカルのペリフェラル、リモートのセントラルを、Core Bluetooth フレームワークでどのように表現するか、を示します。

図 1-6  ペリフェラル側にあるCore Bluetoothのオブジェクト
図 1-6 ペリフェラル側にあるCore Bluetoothのオブジェクト

ローカルのペリフェラルが持つデータはCBMutableServiceおよびCBMutableCharacteristicオブジェクトで表す

ローカルのペリフェラル(CBPeripheralManagerオブジェクトで表す)が持つデータをやり取りす るとき、実際に操作しているのはそのサービスや特性です。Core Bluetoothフレームワークでは、ロー カルのペリフェラルが提供するサービスをCBMutableServiceオブジェクトで表します。同様に、こ のサービスの特性をCBMutableCharacteristicオブジェクトで表現します。図 1-7に、ローカルのペ リフェラルが提供するサービスや特性の、基本的な構成を示します。

図 1-7  ローカルのペリフェラルが提供する、サービスや特性が成す木
図 1-7 ローカルのペリフェラルが提供する、サービスや特性が成す木

ローカルデバイスにペリフェラルとしての役割を実装する方法については、“ペリフェラルが実行す るタスク” および“ローカルデバイスをペリフェラルとしてセットアップするためのベ ストプラクティス” を参照してください。

 


 

このコンテンツはアップル社の提供する「CoreBluetoothプログラミングガイド」というPDFをwebの形式に変換したものをベースとしています。ページ中に含まれる図やテキストは「CoreBluetoothプログラミングガイド」からの引用が多く含まれます。PDFの形式ではなくウェブの形式で閲覧したい方への利便性を高めることや、「CoreBluetoothプログラミングガイド」だけではわかりにくいという箇所の捕捉を行うことが当コンテンツの主旨です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です