コマンドを使うなどして生成します。デベロッパーズブログ))GATTは、サーバが持つデータを、キャラクタリスティクスという単位で読み書きする仕組みを提供します。サーバには多くのキャラクタリスティクスがありますが、そのキャラクタリスティクスをグループ化する、サービスという仕組みも提供します。サービスは、その機器のハードウェアとしての機能を表します。体温計があるとします。体温計のハードウェアとしての機能は、温度の計測と、計測が完了した時のアラート音の出力の2つだとします。この場合、温度計測をするサービスが1つ、そして警告音を出すサービスが1つ、あるでしょう。それぞれのサービスには、温度を読み出すキャラクタリスティクス、警告音のOn/Offの指示を書き込むキャラクタリスティクスがあるでしょう。体温計という振る舞いにではなく、ハードウェアとしての機能に、サービスが割り当てられます。LEのアプリケーションは、GATTの上に作られます。LEの規格認証の範囲はGATTまでです。サーバがどのようなサービスやキャラクタリスティクスを提供するかは、機器のアプリケーションとして実装されます。LEの規格認証のもとで、任意のサービスおよびキャラクタリスティクスを定義して、それを実装できます。これはiOSアプリケーションでも同じです。Bluetoothフレームワークを通して、GATTのサービスとキャラクタリスティクスにアクセスできます。iOSアプリケーションは、接続した機器の複数のサービスを組み合わせて、機器の振る舞いを制御します。LEを使うiOSアプリケーションは、パソコンで言うデバイス・ドライバに相当する部分を、アプリケーション内部に持つことになります。クラシックBluetoothで任意のアプリケーションを作る場合は、勝手なプロファイルを定義できないため、SPPの汎用通信を使うほかありません。LEは、その規格のもとで任意のプロファイルを勝手に定義することができます。先ほどの体温計のサービスを利用して、iOSアプリケーションの振る舞いの制御を変えれば、室温を計測して熱中症をアラート音で警告する振る舞いをさせることも、できます。SIGは、よく使われるサービスやプロファイルを定義しています。バッテリー残量やアラートの出力のようなサービスが定義されています。必要なプロファイルに使えるサービスがすでに定義されていれば、それを利用することができます。定義や開発をする必要はありません。プロファイルは、開発者が任意に定義できますが、これでは特定のメーカや機種を超えた汎用性が得られません。LEの公式のプロファイルの定義とすることで、これを解決します。(http://reinforce-lab.github.io/blog/2013/09/19/blebook-ch3-corebluetooth/)GATTプロファイルは、「サービス」「キャラクタリスティック」「ディスクリプタ」と呼ばれる3つの要素で構成されています。プロファイルは1つ以上のサービスから構成されます。サービスはプロファイルの一機能を表します。サービスは、複数の入れ子になっているサービスと複数のキャラクタリスティックから構成されます。キャラクタリスティックは単一の値を持った属性を表します。キャラクタリスティックは、キャラクタリスティック自体の値、値へのアクセス方法を定義するプロパティ、複数のディスクリプタで構成されます。ディスクリプタはキャラクタリスティックに付加情報が必要な際に用いられる属性値を表しており、キャラクタリスティックによってはディスクリプタは定義されていません。クライアントは発見した任意のサーバと接続した後、GATTプロファイルをベースとしたプロファイルで情報の取得や書き込みを行います。実際には、上述のキャラクタリスティックまたはディスクリプタの値で情報をやりとりします。Service」サービスに対応している必要があります。GATT」プロファイルなどがあります。Bluetooth」に約20ページにわたる詳細な解説があります。プロファイルの話も出てきます。(22)月別アーカイブリンクWishlist検索はてなブログをはじめよう!shu223さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。