96
アプリケーションノート R20AN0400JJ0201 Rev.2.01 Page 1 of 93 2017.11.22 Bluetooth ® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン 要旨 本アプリケーションノートは、Bluetooth SIG が提供する「Bluetooth Developer Studio(以降 BDS)でユーザ が設計した独自のサービスから、ルネサス Bluetooth Low Energy マイコン(RL78/G1D)向け「Bluetooth Low Energy プロトコルスタック」(以降 BLE ソフトウェア)に組み込み可能なカスタムサービスデータベースとカ スタムプロファイル API を生成するための BDS 用プラグインのインストール、使用方法について記載してい ます。 動作確認デバイス RL78/G1D 関連資料 関連資料は暫定版の場合がありますが、この資料では「暫定」の表示をしておりません。あらかじめご了 承ください。 資料名 資料番号 和文 英文 Bluetooth Low Energy プロトコルスタック クイックスタートガイド R01AN2767J R01AN2767E ユーザーズマニュアル R01UW0095J R01UW0095E API リファレンスマニュアル 基本編 R01UW0088J R01UW0088E API リファレンスマニュアル FMP R01UW0089J R01UW0089E API リファレンスマニュアル PXP R01UW0090J R01UW0090E API リファレンスマニュアル HTP R01UW0091J R01UW0091E API リファレンスマニュアル BLP R01UW0092J R01UW0092E API リファレンスマニュアル HOGP R01UW0093J R01UW0093E API リファレンスマニュアル ScPP R01UW0094J R01UW0094E API リファレンスマニュアル HRP R01UW0097J R01UW0097E API リファレンスマニュアル CSCP R01UW0098J R01UW0098E API リファレンスマニュアル CPP R01UW0099J R01UW0099E API リファレンスマニュアル GLP R01UW0103J R01UW0103E API リファレンスマニュアル TIP R01UW0106J R01UW0106E API リファレンスマニュアル RSCP R01UW0107J R01UW0107E API リファレンスマニュアル ANP R01UW0108J R01UW0108E API リファレンスマニュアル PASP R01UW0109J R01UW0109E API リファレンスマニュアル LNP R01UW0113J R01UW0113E API リファレンスマニュアル PLXP R01UW0182J R01UW0182E Embedded 構成サンプルプログラム R01AN3319J R01AN3319E GATTBrowser for iOS スマートフォンアプリ取扱説明書 R21AN0017J R21AN0017E GATTBrowser for Android スマートフォンアプリ取扱説明書 R01AN3802J R01AN3802E R20AN0400JJ0201 Rev.2.01 2017.11.22

Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

  • Upload
    others

  • View
    6

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

アプリケーションノート

R20AN0400JJ0201 Rev.2.01 Page 1 of 93

2017.11.22

Bluetooth® Low Energyプロトコルスタック

Bluetooth Developer Studioプラグイン

要旨

本アプリケーションノートは、Bluetooth SIG が提供する「Bluetooth Developer Studio」(以降 BDS)でユーザ

が設計した独自のサービスから、ルネサス Bluetooth Low Energyマイコン(RL78/G1D)向け「Bluetooth Low

Energyプロトコルスタック」(以降 BLE ソフトウェア)に組み込み可能なカスタムサービスデータベースとカ

スタムプロファイル APIを生成するための BDS用プラグインのインストール、使用方法について記載してい

ます。

動作確認デバイス

RL78/G1D

関連資料

関連資料は暫定版の場合がありますが、この資料では「暫定」の表示をしておりません。あらかじめご了

承ください。

資料名 資料番号

和文 英文

Bluetooth Low Energy プロトコルスタック ― ―

クイックスタートガイド R01AN2767J R01AN2767E

ユーザーズマニュアル R01UW0095J R01UW0095E

API リファレンスマニュアル 基本編 R01UW0088J R01UW0088E

API リファレンスマニュアル FMP 編 R01UW0089J R01UW0089E

API リファレンスマニュアル PXP 編 R01UW0090J R01UW0090E

API リファレンスマニュアル HTP 編 R01UW0091J R01UW0091E

API リファレンスマニュアル BLP 編 R01UW0092J R01UW0092E

API リファレンスマニュアル HOGP 編 R01UW0093J R01UW0093E

API リファレンスマニュアル ScPP 編 R01UW0094J R01UW0094E

API リファレンスマニュアル HRP 編 R01UW0097J R01UW0097E

API リファレンスマニュアル CSCP 編 R01UW0098J R01UW0098E

API リファレンスマニュアル CPP 編 R01UW0099J R01UW0099E

API リファレンスマニュアル GLP 編 R01UW0103J R01UW0103E

API リファレンスマニュアル TIP 編 R01UW0106J R01UW0106E

API リファレンスマニュアル RSCP 編 R01UW0107J R01UW0107E

API リファレンスマニュアル ANP 編 R01UW0108J R01UW0108E

API リファレンスマニュアル PASP 編 R01UW0109J R01UW0109E

API リファレンスマニュアル LNP 編 R01UW0113J R01UW0113E

API リファレンスマニュアル PLXP 編 R01UW0182J R01UW0182E

Embedded 構成サンプルプログラム R01AN3319J R01AN3319E

GATTBrowser for iOS スマートフォンアプリ取扱説明書 R21AN0017J R21AN0017E

GATTBrowser for Android スマートフォンアプリ取扱説明書 R01AN3802J R01AN3802E

R20AN0400JJ0201

Rev.2.01

2017.11.22

Page 2: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 2 of 93

2017.11.22

目次

1. 概要 .................................................................................................................................. 4

2. 適用 .................................................................................................................................. 4

3. 注意事項 ........................................................................................................................... 4

4. 動作環境 ........................................................................................................................... 4

5. インストール .................................................................................................................... 5

5.1 内容物 ............................................................................................................................................ 5

5.2 インストール手順 ......................................................................................................................... 5

6. BDSの操作手順 ................................................................................................................ 6

6.1 プロジェクトの作成 ...................................................................................................................... 6

6.2 サービスの設計 ............................................................................................................................. 8

6.2.1 BDSリポジトリ・ブラウザからサービスを選択する場合...................................................... 8

6.2.2 独自のサービスを設計する場合 .............................................................................................. 9

6.3 コード生成 .................................................................................................................................. 12

6.3.1 Server用コード生成 .............................................................................................................. 12

6.3.2 Client用コード生成 ............................................................................................................... 14

7. BDS上の設定可能箇所 ................................................................................................... 16

7.1 プロファイル ............................................................................................................................... 16

7.2 サービス ...................................................................................................................................... 17

7.3 特性値 / フィールド ................................................................................................................... 18

7.4 GAP Settings ............................................................................................................................... 20

8. 生成ファイルのビルド .................................................................................................... 24

8.1 BLEソフトウェアの準備 ............................................................................................................. 24

8.2 Embedded構成サンプルプログラムに組み込む方法 .................................................................. 25

8.2.1 Embedded構成サンプルプログラムの準備 .......................................................................... 25

8.2.2 コード生成時に必要な設定 ................................................................................................... 25

8.2.3 生成ファイルの組み込み方 ................................................................................................... 26

8.2.4 ビルド手順 ............................................................................................................................ 27

8.2.5 Embedded構成サンプルプログラム使用時のプロジェクト変更点 ...................................... 28

8.3 BLEソフトウェアに組み込む方法............................................................................................... 31

8.3.1 生成ファイルの組み込み方 ................................................................................................... 31

8.4 コード生成後のカスタマイズ ..................................................................................................... 32

8.4.1 Server Roleのカスタマイズ .................................................................................................. 32

8.4.2 Client Roleのカスタマイズ ................................................................................................... 32

9. BLEソフトウェアの動作確認 ......................................................................................... 33

9.1 スマートフォンでのカスタムサービス(Server Role)の動作確認 ............................................... 33

9.1.1 アドバタイズを行っているServer Roleのスキャン .............................................................. 33

9.1.2 Server Roleへの接続とサービス&特性値の表示 ................................................................. 35

Page 3: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 3 of 93

2017.11.22

9.1.3 Notify属性を持つ特性値の操作 ............................................................................................. 36

9.1.4 Indicate属性を持つ特性値の操作 .......................................................................................... 37

9.1.5 Read属性 / Write属性を持つ特性値の操作 .......................................................................... 39

9.2 RL78/G1D評価ボード対向での動作確認 .................................................................................... 42

9.2.1 アドバタイズ機器のスキャン開始 ........................................................................................ 42

9.2.2 Server Roleへの接続とサービス&特性値検索 ..................................................................... 43

9.2.3 特性値のRead処理 ................................................................................................................ 45

9.2.4 特性値のWrite / Write without response処理 ........................................................................ 45

9.2.5 特性値のNotification Enable / Disable処理 ........................................................................... 46

9.2.6 特性値のIndication Enable / Disable処理 .............................................................................. 48

10. API仕様 .......................................................................................................................... 50

10.1 Server Role用 .............................................................................................................................. 50

10.1.1 Server Role用関数 ................................................................................................................ 50

10.1.2 Server Role用イベント及びイベント構造体 ........................................................................ 53

10.1.3 Server Roleのシーケンス図 .................................................................................................. 57

10.2 Client Role用 ............................................................................................................................... 63

10.2.1 Client Role用関数 .................................................................................................................. 63

10.2.2 Client Role用イベント及びイベント構造体 .......................................................................... 67

10.2.3 Client Roleのシーケンス図 ................................................................................................... 70

11. Appendix ........................................................................................................................ 74

11.1 ファイル・フォルダ構成 ............................................................................................................. 74

11.2 GATTデータベース書き込み時のキューイング .......................................................................... 75

11.3 内部シーケンス ........................................................................................................................... 76

11.3.1 Server Roleの内部シーケンス .............................................................................................. 76

11.3.2 Client Roleの内部シーケンス ................................................................................................ 89

Page 4: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 4 of 93

2017.11.22

1. 概要

本ソフトウェアは、PC上で動作する BDS 用コード生成プラグイン(以降 BDS プラグイン)です。BDS で設

計したカスタムサービスに対して BDS プラグインを実行すると、RL78/G1D 向け BLE ソフトウェアに組み込

み可能なカスタムサービスデータベースとカスタムプロファイル API、動作確認用アプリケーションのソー

スコードを生成することが可能です。

このマニュアルは、BDSプラグインのインストール、使用方法について記載しています。

BLE ソフトウェアの詳細につきましては、関連資料に記載のユーザーズマニュアルを参照してください。

2. 適用

このマニュアルの記載内容は、以下に記述するバージョンに適用します。

Bluetooth Developer Studio Version1.1 以降

BDS プラグイン Version2.0.0

BLE ソフトウェア Version1.20 以降

3. 注意事項

BDS プラグインは、BDSのみで動作させる事が可能です。他の JavaScript 実行アプリケーションで動

作させた場合の動作は保証いたしません。

BDS プラグインが生成したコードを製品等に組み込む場合は、十分に評価を行ってください。

BLE ソフトウェアは、いくつかの Bluetooth SIG の採択済みプロファイルをサポートしています。使用

したいプロファイルを BLE ソフトウェアがサポートしている場合は、BDS を使用せず、BLE ソフト

ウェアが提供するプロファイルのご使用を推奨します。BLE ソフトウェアがサポートするプロファイ

ルの一覧は、関連資料に記載のユーザーズマニュアルの「5.2 rBLE API」を参照してください。

BLE ソフトウェアがサポートするプロファイルを BDS プラグインでコード生成した場合には、「10

API仕様」に記載の API が出力されますが、関連資料に記載の API リファレンスマニュアルの各プロ

ファイル編で説明される rBLE API とは異なります。

生成されたコードが動作する RL78/G1D の構成は Embedded 構成となります。

Server Role及びClient Role用に出力されるアプリケーションはあくまでもBDSで作成したGATTデー

タベースを確認するための簡易アプリケーションです。お客様の製品等で必要な動作をするアプリ

ケーションを作成する必要があります。

4. 動作環境

BDS プラグインの実行には、次のソフトウェア環境が必要です。

Microsoft Windows 7 以降

Bluetooth Developer Studio Version1.1

PCにインストールされていない場合は、以下のサイトより使用許諾に同意の上で入手してください。

Bluetooth SIG:https://www.bluetooth.com/download-developer-studio

(注: BDSの入手及び使用には、Bluetooth SIGへのメンバー登録が必要です)

Page 5: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 5 of 93

2017.11.22

5. インストール

5.1 内容物

BDS プラグインのパッケージには、以下に示すものが含まれています。

ドキュメント

Bluetooth Low Energyプロトコルスタック Bluetooth Developer Studio プラグインマニュアル(本書)

BDS プラグインソースコード一式

Server Role プラグイン

Client Role プラグイン

5.2 インストール手順

BDS プラグインのパッケージを解凍し、BDSのフォルダにコピーします。

BDS プラグインは BDS インストールフォルダの「Plugins」にフォルダごとコピーします。Windows7 32bit

版の場合の例を図5-1に示します。

C:\Program Files\Bluetooth SIG\Bluetooth Developer Studio\Plugins

├ Renesas_Client_X_X_X (注)

└ Renesas_Server_X_X_X (注)

【注】 Xはバージョン番号

図5-1 BDSプラグインインストールフォルダイメージ

BDS プラグインの各フォルダに"Plugin.js"があることを確認し、BDS を起動します。

Page 6: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 6 of 93

2017.11.22

6. BDS の操作手順

この章では、BDS を起動してプロジェクトを作成し、カスタムプロファイルの Server / Client Role 用コード

を生成する方法を説明します。

6.1 プロジェクトの作成

BDS を起動し、メニューバーより"FILE""NEW"を選択してプロジェクトを新規作成します。

図6-1 BDSプロジェクト新規作成

"NAME"に任意のプロジェクト名を入力します。また”NAMESPACE”に任意のネームスペース名を入力し

ます。

"SAVE IN"でプロジェクトをセーブする任意のフォルダを指定することができます。最後に"OK"ボタンを

押下します。

図6-2 プロジェクト名設定

Page 7: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 7 of 93

2017.11.22

プロジェクトが設定され、空のワークスペースが開かれます。

図6-3 ワークスペース作成

Page 8: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 8 of 93

2017.11.22

6.2 サービスの設計

ワークスペースにサービスや特性値を作成します。作成の仕方は二通りあります。

6.2.1 BDS リポジトリ・ブラウザからサービスを選択する場合

BDS 画面右にあるリポジトリ・ブラウザより予め設計されているプロファイルやサービスを選択してワー

クスペースにドラッグアンドドロップすることで、サービスや特性値を作成せずにコード生成することが可

能です。

図6-4はリポジトリ・ブラウザの”PROFILES”タブより「CYCLING SPEED AND CADENCE」のプロファイ

ルを選択してドラッグアンドドロップした場合です。「CYCLING SPEED AND CADENCE」サービスおよび

「DEVICE INFORMATION」サービスがセットでワークスペースに選択されています。

図6-4 「Cycling Speed and Cadence」プロファイルの選択

ドラッグアンドドロップ

Page 9: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 9 of 93

2017.11.22

6.2.2 独自のサービスを設計する場合

ワークスペース上部にある”New Profile”の右にある”>” をクリックすると、プロファイルの設定画面が表

示されます。

図6-5 プロファイル設定画面

ワークスペース上にある"CUSTOM SERVICE"ボタンを押下することで、新規サービスを追加することがで

きます。

図6-6 "CUSTOM SERVICE"ボタン押下直後

Page 10: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 10 of 93

2017.11.22

サービス名をクリックすると、図6-7に示すサービス設定画面が表示されます。

図6-7 サービス設定

生成したサービスに対して、特性値を追加します。サービス表示上にある ボタンを押下します。

図6-8 特性値設定

Page 11: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 11 of 93

2017.11.22

特性値のフィールドの設定を行う場合は、特性値設定下部の"ADD FIELDS"を押下して”FIELDS”の設定ダ

イアログを表示させます。

図 6-9 FIELDS設定

各設定を行った後に、特性値設定の下部にある"SAVE"ボタンを押下することで設定が反映されます。

最後に BDS メニューバーより"FILE""SAVE"を選択し、プロジェクトを保存します。

図6-10 プロジェクトの保存

Page 12: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 12 of 93

2017.11.22

6.3 コード生成

BDS メニューバーより"TOOLS""GENERATE CODE"を選択します。

図6-11 コード生成メニューの選択

6.3.1 Server 用コード生成

“GENERATE CODE”ダイアログの”GENERATE CODE FOR:”を”Server”にセットして Server用コード生成を

選択し、”SELECT PLUGIN”から Renesasの BDS プラグインを選択して、”GENERATE CODE”ダイアログ下

部の”GENERATE”ボタンを押下します。

図6-12 BDSプラグイン選択メニュー(Server Role)

Page 13: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 13 of 93

2017.11.22

コード生成が行われ、”GENERATE CODE”ダイアログ下部の”SAVE TO”で指定したパスに生成されたファ

イルが保存されます。

図6-13 コード生成実行ログ(Server Role)

生成されるファイルは、以下のとおりです。

➢ Server Role

・ db_handle.h

・ prf_config.c

・ prf_config.h

・ prf_sel.h

・ rble_sample_app_peripheral.c

・ rble_sample_app_peripheral.h

・ sam.h

・ sams.c

・ sams.h

・ copy_sv_src.bat

Page 14: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 14 of 93

2017.11.22

6.3.2 Client 用コード生成

“GENERATE CODE”ダイアログの”GENERATE CODE FOR:”を”Client”にセットして Client 用コード生成を

選択し、”SELECT PLUGIN”から Renesasの BDS プラグインを選択して、”GENERATE CODE”ダイアログ下

部の”GENERATE”ボタンを押下します。

図6-14 BDSプラグイン選択メニュー(Client Role)

コード生成が行われ、”GENERATE CODE”ダイアログ下部の”SAVE TO”で指定したパスに生成されたファ

イルが保存されます。

図6-15 コード生成実行ログ(Client Role)

Page 15: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 15 of 93

2017.11.22

生成されるファイルは以下のとおりです。

➢ Client Role

・ db_handle.h

・ prf_config.c

・ prf_config.h

・ prf_sel.h

・ rble_sample_app_central.c

・ rble_sample_app_central.h

・ sam.h

・ samc.c

・ samc.h

・ copy_cl_src.bat

Page 16: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 16 of 93

2017.11.22

7. BDS 上の設定可能箇所

BDS で設定が可能な場所を以下に示します。

7.1 プロファイル

プロファイルの設定では、以下の項目が有効となります。

図 7-1 プロファイル有効設定箇所

表 7-1 プロファイル有効設定一覧

No. 内容 コード生成エラーが

発生する設定条件

(1) ・ プロファイル名を指定する。この名称が APIの関数名やハ

ンドル等に使用される。

なし。空欄は BDS が

許可しない。

(1)

Page 17: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 17 of 93

2017.11.22

7.2 サービス

サービスの設定では、以下の項目が有効となります。

図 7-2 サービス有効設定箇所

表 7-2 サービス有効設定一覧

No. 設定名 内容 コード生成エラーが

発生する設定条件

(2) NAME ・ サービスを識別する UUIDやハンドル等のマクロ定義に利

用する。

・ カスタムサービスを複数定義する場合、重複したサービス

名を付けることは不可。類似名を付ける場合は、末尾に

「_1」「_2」等の識別子を付けること。

なし。空欄は BDS が

許可しない。

(3) UUID ・ サービスを識別する UUIDのマクロ定義に利用する。

・ サービス作成時に自動的に設定されているが、任意で変更

が可能。

なし。空欄は BDS が

許可しない。

(2) (3)

Page 18: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 18 of 93

2017.11.22

7.3 特性値 / フィールド

特性値及びフィールドの設定では、以下の項目が有効となります。

図 7-3 特性値及びフィールドの有効設定箇所

表 7-3 特性値及びフィールドの有効設定一覧

No. 設定名 内容 コード生成エラーが発

生する設定条件

(4) NAME ・ 特性値の UUID やハンドル等のマクロ名に利用。

・ サービス中で特性値を複数定義する場合、重複した特

性値名を付けることは不可。異なるサービス間で特性

値名が重複するのは可。

なし。空欄は BDS が許

可しない。

(5) UUID ・ 特性値を識別する UUIDのマクロ定義に利用。

・ 特性値作成時に自動的に設定されているが、任意に変

更が可能。

なし。空欄は BDS が許

可しない。

(6) PROPERTIES ・ Property Set のみ有効。 以降は無効。

・ "READ"/ "WRITE"/ "WRITE WITHOUT RESPONSE" /

"NOTIFY" / "INDICATE"の設定のみ有効。その他は設定

が行われてもコード生成には反映されない。

・ "EXCLUDED"かそれ以外で判定する。EXCLUDED でな

い場合は"MANDATORY"として出力コードに反映す

る。 (※1)

なし。

(7) ADD FIELDS ・ 特性値の Attribute data value 設定に利用する。

・ フィールド設定が 1つの場合は 1つの変数を、複数あ

る場合には特性値名の構造体でコード出力を行う。

・ 設定が無い場合は特性値名で uint8_t の変数を作成。

全長が 20バイトを超え

る場合にエラー発生。

(8) NAME ・ 特性値の Attribute data value 変数名に利用する。 なし。空欄は BDS が許

可しない。

(9) FORMAT ・ 特性値の Attribute data value 変数の型選択に利用する。 一部の設定はエラー発

生。詳細は「表 7-4

フィールド

の”FORMAT”設定と出

力される変数型一覧」を

参照。

(※1) "NOTIFY" / "INDICATE"の設定が"EXCLUDED"以外の場合、自動的に"Client Characteristic Configuration

Descriptor"(以下 CCCD)を生成する。本プラグインはこの設定を元に CCCD情報をコードに反映する。

(4) (5)

(6)

(7)

(8)

(9)

Page 19: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 19 of 93

2017.11.22

フィールドの設定により出力される特性値の Value 変数の型の一覧を以下に示します。これら

は”prf_config.c”に定義されます。

表 7-4 フィールドの”FORMAT”設定と出力される変数型一覧

設定名 出力コード 初期値

BOOLEAN bool (変数名) FALSE

FORMATLESS uint8_t (変数名) 0

ITEM2BIT

ITEM4BIT

NIBBLE

ITEM8BIT

UINT8

SINT8

VARIABLE

ITEM24BIT uint8_t (変数名)[3] {0}

UINT24

UINT8_ARRAY uint8_t (変数名)[4] {0x01, 0x02, 0x03, 0x04}

UINT40 uint8_t (変数名)[5] {0}

UINT48 uint8_t (変数名)[6] {0}

REGCERTDATALIST

UINT128 uint8_t (変数名)[16] {0}

UTF8S uint8_t (変数名)[] "Sample”

SINT12 int16_t (変数名) 0

SINT16

SINT24 int8_t(変数名)[3] {0}

SINT48 int8_t (変数名)[6] {0}

SINT128 int8_t (変数名)[16] {0}

ITEM16BIT uint16_t (変数名) 0

UINT12

UINT16

GATT_UUID

DUINT16 uint16_t (変数名)[2] {0}

UINT32 uint32_t (変数名) 0

ITEM32BIT

SINT32 int32_t (変数名) 0

UINT64 unsigned long long (変数名) 0

SINT64 signed long long (変数名) 0

FLOAT32 float (変数名) 0

SFLOAT

FLOAT

FLOAT64 double (変数名) 0

UTF16S エラーでコード生成停止。 -

CHARACTERISTIC

STRUCT

Page 20: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 20 of 93

2017.11.22

7.4 GAP Settings

“Profile Designer”の上部”GAP”ボタンを押下して行う”GAP Settings”の設定で有効な項目を以下に示します。

本設定は Embedded 構成サンプルプログラムの Server Role 側アプリケーション部で使用されます。「8.2

Embedded構成サンプルプログラムに組み込む方法」を用いてビルドを行う場合は設定を必ず行ってください。

“GAP Settings”でコード生成時に設定エラーを検出した場合にコード生成は停止せず、エラーの内容を

Server Role 側の動作確認用アプリケーションソースコードの” rble_sample_app_peripheral.c”に出力します。そ

のため正しく設定されていない場合は、ビルド時にエラーが発生します。その際に表示されたビルドエラー

の場所に出力されているエラーメッセージを確認の上で、該当する”GAP Settings”の設定を見直し、再度コー

ド生成を行ってください。

図 7-4 GAP SETTINGS:ADVERTISING DATA 有効設定箇所

(10)

(11) (12)

(13)

(14)

(15)

(16)

(17)

(18)

(19)

(20)

(21)

Page 21: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 21 of 93

2017.11.22

表 7-5 ADVERTISING DATA 有効設定一覧

No. 設定名 内容 エラー出力が発生する設定条件

(10) DEVICE NAME ・ アドバタイズする Local Name に設定。

1 バイト以上が有効。

なし。空欄は BDS が許可しない

ため発生しない。

(11) USE SHORT

NAME ・ "SHORT NAME"設定の有効/無効を切

り替える設定。

なし。

(12) BYTES IN

SHORT NAME ・ "USE SHORT NAME"が有効の場合、

"DEVICE NAME"先頭から有効な文字

列数を本設定で指定する。

なし。

(13) DISCOVERY

MODE ・ Flagsの"LIMITED" / "GENERAL"ビッ

トの設定を指定する。

なし。

(14) BR/EDR NOT

SUPPORTED ・ Flagsの BR/EDR 設定ビットの有効/無

効を設定する。

・ 有効にする必要があるため、チェック

必須。

設定されていない場合にエラー

メッセージをソースに出力。

(15) SIMULTANEOUS

LE AND BR/ERD

TO SAME

DEVICE

CAPABLE

(CONTROLLER)

・ Flagsの Simultaneous LE and BR/EDR to

same device capable (Controller) 設定

ビットの有効/無効を設定する。

なし。

(16) SIMULTANEOUS

LE AND BR/EDR

TO SAME

DEVICE

CAPABLE(HOST)

・ Flagsの Simultaneous LE and BR/EDR to

same device capable (Host)設定ビットの

有効/無効を設定する。

なし。

(17) TX POWER (DB) ・ 電波送信強度指定。

・ 0~127の範囲で指定。

なし。

(18) SLAVE

CONNECTION

INTERVAL

・ Peripheralが要求するコネクションイン

ターバルを指定。

・ 4 バイトを設定値として取得。

なし。

(19) MANUFACTURER

SPECIFIC DATA ・ メーカー固有データを指定。

・ 上位 4バイトをCompany IDとして設定

し、下位 2バイトずつ上位/下位を入れ

替えてデータとして形成する。

空欄ではない (1文字以上の入力

がある)場合にエラーチェック実

施。設定が施された場合は 4 バイ

ト未満の場合にエラーメッセー

ジをソースに出力。

(20) APPEARANCE ・ デバイスの外観を指定。

・ 2 バイトを設定値として取得。

なし。

(21) INCLUDE IN

PACKET ・ アドバタイズ / スキャンレスポンスに

含める項目を指定する。

・ (9)~(19)までの設定が入力されている

場合でも、本設定にチェックがついて

いない項目はアドバタイズ / スキャン

レスポンスに含められない。

チェックを付けてペイロードに

含むデータサイズが 32バイト以

上の場合にエラーメッセージを

ソースに出力。

“Flags”及び”Services to advertise”

にチェックが付いていない場合

にエラーメッセージをソースに

出力。

Page 22: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 22 of 93

2017.11.22

図 7-5 GAP SETTINGS:GAP PROPERTIES有効設定箇所

表 7-6 GAP PROPERTIES有効設定一覧

No. 設定名 内容 エラー出力が発生す

る設定条件

(22) ADVERTISING

INTERVAL

MIN / MAX

・ アドバタイズするインターバルの設定。

・ 設定された値は「Time=設定値×0.625msec」の計算に

より、アドバタイズインターバルが決定する。

(※)上図の設定では最小 30msec、最大 60msecに設定される。

この設定は Bluetooth SIG の推奨値。

0x20-0x4000 の範囲外

の場合にエラーメッ

セージをソースに出

力。

MAX設定<=MIN設定

は BDSが許可しない。

(23) ADVERTISING

CHANNEL

・ アドバタイズするチャンネルを Ch37-39から設定す

る。

Ch37-39 が一つも選択

されていない場合に

エラーメッセージを

ソースに出力。

(22)

(23)

Page 23: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 23 of 93

2017.11.22

図 7-6 GAP SETTINGS:SERVICES有効設定箇所

表 7-7 SERVICES有効設定一覧

No. 設定名 内容 エラー出力が発生す

る設定条件

(24) SERVICES TO

ADVERTISE

・ アドバタイズ / スキャンレスポンスに含めるサービス

UUID を選択する。

なし。

(25) SERVICE

DATA

・ アドバタイズ / スキャンレスポンスに含めるサービス

データを設定する。

なし。

(26) SERVICE

SOLICITATION

UUIDS

・ アドバタイズ / スキャンレスポンスに含める”Service

Solicitation UUID”を選択する。

なし。

(24)

(25)

(26)

Page 24: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 24 of 93

2017.11.22

8. 生成ファイルのビルド

コード生成したファイルを BLE ソフトウェアに組み込み、ビルドを行います。

8.1 BLE ソフトウェアの準備

生成したコードをビルドするためには、BLE ソフトウェアおよび EEPROM エミュレーションライブラリが

必要となります。

➢ BLE ソフトウェア

- https://www.renesas.com/solutions/key-technology/connectivity/bluetooth-smart/protocol-stack.html

➢ EEPROM エミュレーションライブラリ

- CA78K0R 用

- https://www.renesas.com/ja-jp/software/D3017947.html

- CC-RL用

- https://www.renesas.com/ja-jp/software/D3017949.html

- IARv2 用

- FDL_EEL_RL78_Type02_Installer_V200.zip

※ 上記に示すダウンロードリンクは、Webサイトのリニューアルなどにより、予告なく変更に

なる場合があります。

BLE ソフトウェアを解凍し、EEPROM エミュレーションライブラリをインストールします。インストール

手順は、関連資料に記載のクイックスタートガイドの「4.2 EEPROM エミュレーションライブラリのインス

トール」を参照してください。

生成したコードをビルドする方法を「8.2 Embedded構成サンプルプログラムに組み込む方法」及び「8.3 BLE

ソフトウェアに組み込む方法」に説明します。いずれかの方法を選択してビルドを行ってください。

Page 25: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 25 of 93

2017.11.22

8.2 Embedded 構成サンプルプログラムに組み込む方法

8.2.1 Embedded 構成サンプルプログラムの準備

Embedded 構成サンプルプログラムを以下から入手します。

➢ Embedded 構成サンプルプログラム

- https://www.renesas.com/ja-jp/software/D6000906.html

ダウンロードし、解凍した Embedded 構成サンプルプログラムのソースコードディレクトリ

(”Project_Source”)を BLE ソフトウェアのソースコードディレクトリ

の”BLE_Software_Ver_X_XX¥RL78_G1D¥Project_Source”に上書きしてください。

8.2.2 コード生成時に必要な設定

Embedded 構成サンプルプログラムを利用する場合、「7.4 GAP Settings」で解説した設定が必要となります。

また「表 8-1 “GAP Settings”で必要となる項目」に示す説明に従って設定を行わないとビルドエラーが発生

するため、説明通りに設定をしてください。

表 8-1 “GAP Settings”で必要となる項目

設定

No.

設定名 必須設定名 説明

(14) BR/EDR NOT

SUPPORTED チェック必須 チェックが必要。設定されていない場合にエ

ラーメッセージをソースに出力。

(19) MANUFACTURER SPECIFIC DATA

空欄または 4バイト以上の

データ入力必須。

空欄ではない (1文字以上の入力がある)場合に

エラーチェック実施。設定が施された場合は 4

バイト未満の場合にエラーメッセージをソー

スに出力。

(21) INCLUDE IN

PACKET “Flags”にチェック必須。 チェックが必要。設定されていない場合にエ

ラーメッセージをソースに出力。

”Services to advertise”に

チェック必須。

アドバタイズデータにサービス UUIDが含まれ

ていない場合、Client Role がスキャンしても

Server Role を発見できない。

設定されていない場合にエラーメッセージを

ソースに出力。

アドバタイズ / スキャン

レスポンスデータに含め

る情報設定

設定を行うと、下部にある”PACKET SPACE

AVAILABILITY”にアドバタイズするデータサ

イズが視認できる。このデータサイズは 31バ

イト以下に収める必要がある。これを超えてし

まう場合はエラーメッセージをソースに出力。

(22) ADVERTISING

INTERVAL MIN /

MAX

MIN – MAX の指定を

0x20-0x4000 の範囲に設定

0x20-0x4000 の範囲外の場合にエラーメッセー

ジをソースに出力。

(23) ADVERTISING

CHANNEL アドバタイズするチャン

ネルを 1 つ以上設定

Ch37-39 が一つも選択されていない場合にエ

ラーメッセージをソースに出力。

(24) SERVICES TO

ADVERTISE 表示されている先頭の

サービス名

チェックが必要。アドバタイズデータにサービ

ス UUID が含まれていない場合、Client Role が

スキャンしても Server Role を発見できない。

Page 26: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 26 of 93

2017.11.22

8.2.3 生成ファイルの組み込み方

Embedded 構成サンプルプログラムを利用する場合、Embedded 構成サンプルプログラムを適用した BLE ソ

フトウェアへ生成したファイルをコピーすることで、生成したコードを動作させることが可能です。この場

合、生成されたファイルの中にあるバッチファイルを使用してコピーすることができます。

コマンドプロンプトを開き、”SAVE TO”で指定したパスに移動して、引数に BLE ソフトウェアのフォルダ

の先頭パスを指定してバッチファイルを起動します。なお、上書きするフォルダの指定先は「Embedded 構成

サンプルプログラム(R01AN3319J)」を適用したプロジェクトを指定してください。

>copy_sv_src.bat C:\workspace\Renesas\BLE_Software_Ver_X_XX\RL78_G1D\Project_Source (注)

【注】 Xはバージョン番号

図8-1 ファイルコピー用バッチファイル起動例 1(Server Roleの場合・バックアップ実行なし)

また第二引数にバックアップフォルダ名を指定すると、そのフォルダに上書き前のファイルの退避を行な

います。なおバックアップフォルダ名に指定したフォルダが既に存在する場合にはバックアップ及びファイ

ルのコピーは行ないません。ご注意ください。

>copy_sv_src.bat C:\workspace\Renesas\BLE_Software_Ver_X_XX\RL78_G1D\Project_Source .\backup (注)

【注】 Xはバージョン番号

図8-2 ファイルコピー用バッチファイル起動例 2(Server Roleの場合・バックアップ実行あり)

バッチファイルを実行すると、BLE ソフトウェアの以下のファイルが上書きされます。バックアップを行っ

た場合には、バッチファイルの第二引数に指定したフォルダに、上書きされる前の同名ファイルが退避され

ます。

\Renesas\BLE_Software_Ver_X_XX\RL78_G1D\Project_Source\rBLE\src\sample_profile\sam (注)

共通: sam.h

Server Role: sams.c Client Role:samc.c

sams.h samc.h

\Renesas\BLE_Software_Ver_X_XX\RL78_G1D\Project_Source\rBLE\src\sample_app (注)

Server Role:rble_sample_app_peripheral.c Client Role:rble_sample_app_central.c

rble_sample_app_peripheral.h rble_sample_app_central.h

\Renesas\BLE_Software_Ver_X_XX\RL78_G1D\Project_Source\renesas\src\arch\rl78 (注)

共通:db_handle.h

prf_config.c

prf_config.h

prf_sel.h

【注】 Xはバージョン番号

図8-3 生成ファイルの Embedded構成サンプル組み込み先

Page 27: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 27 of 93

2017.11.22

8.2.4 ビルド手順

BLE ソフトウェアのプロジェクトを起動してビルドを行います。対象となるプロジェクトは Embedded 構

成です。ここでは各開発環境の起動方法を示します。

\Renesas\BLE_Software_Ver_X_XX\RL78_G1D\Project_Source\renesas\tools\project (注 1)

CS+ for CC : \CS_CCRL\BLE_Embedded_for_YYYYYY\BLE_Embedded.mtpj (注 3)

CS+ for CA, CX : \CubeSuite\BLE_Embedded_for_YYYYYY\BLE_Embedded.mtpj (注 3)

e2 studio : \e2studio\BLE_Embedded_for_YYYYYY\rBLE_Emb (注2) (注 3)

IAR Embedded Workbench : \iar\BLE_Embedded_for_YYYYYY\BLE_Embedded.eww (注 3)

IAR Embedded Workbench(V2) : \iar_v2\BLE_Embedded_for_YYYYYY\BLE_Embedded.eww (注 3)

【注 1】 Xはバージョン番号

【注 2】e2 studioのプロジェクトは該当フォルダを指定してインポート

【注 3】Yは Centralまたは Peripheral

図8-4 Embedded構成各開発環境プロジェクトファイルパス

上記パスより、Embedded 構成の各プロジェクトを起動します。e2 studio については起動後に上記パスより

プロジェクトのインポートを行います。プロジェクト起動後に、「8.2.5 Embedded構成サンプルプログラム使

用時のプロジェクト変更点」に記載の設定の変更を行います。

Page 28: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 28 of 93

2017.11.22

8.2.5 Embedded 構成サンプルプログラム使用時のプロジェクト変更点

本章では、Embedded 構成サンプルプログラムを使用してビルドを行う際に必要な、プロジェクトの変更点

について記載します。

(1) プロジェクトからの削除

Embedded 構成サンプルプログラム使用時には、カスタムサービスの動作に不要なファイルをプロジェクト

から削除します。対象となるファイルは以下のとおりです。

表 8-2 プロジェクトから外すファイル一覧(Server Role)

ツリーパス 対象ファイル

各開発環境共通:

rBLEsampleseclib

secdb.c

seclib.c

CS+ for CC及び CS+ for CA, CXの場合は、プロジェクトツリーにて該当ファイルを選択して右クリックし、

「プロジェクトファイルから外す」を選択します。

図8-5 CS+ for CC / CS+ for CA, CXプロジェクトツリー

e2 studio では、プロジェクトエクスプローラーにて該当ファイルを選択して右クリックし「削除」を選択

します。

図8-6 e2 studioプロジェクトエクスプローラー

Page 29: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 29 of 93

2017.11.22

IAR Embedded Workbench では、ワークスペースにて該当ファイルを選択して右クリックし、「Remove」

を選択します。

図8-7 IAR Embedded Workbench ワークスペースファイル

(2) 登録マクロ名の変更

Embedded 構成サンプルプログラムを使用する場合、ファイルの削除及び登録を行ったら、プロジェクトの

オプションを変更します。定義されている「USE_SECLIB」マクロ名の先頭に"no"を追加し、

「noUSE_SECLIB」に変更します。

CS+ for CC 及び CS+ for CA, CX の場合は、「CC-RL(ビルド・ツール)」の設定から「コンパイル・オプショ

ン」「プリプロセス」「定義マクロ」を表示して、該当マクロを修正します。

図8-8 CS+ for CC/ CS+ for CA,CX定義マクロ設定(設定後)

Page 30: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 30 of 93

2017.11.22

e2 studio の場合は、「プロジェクトエクスプローラー」にて右クリックし、「Renesas Tool Settings」を表示

して、「C/C++ビルド」「Settings」より「Tool Settings」タブの「Compiler」「ソース」を表示して、「定

義マクロ」より該当マクロを修正します。

図8-9 e2 studio定義マクロ設定(設定後)

IAR Embedded Workbench では、ワークスペースにて右クリックし、「Options」を表示して Categoryより

「C/C++ Compiler」を表示して、「Preprocessor」タブの「Defined symbols」より該当マクロを修正します。

図8-10 IAR Embedded Workbench定義マクロ設定(設定後)

ここまでの設定を行った後に BLE ソフトウェアをビルドすると、RL78/G1D 上にて動作を行う実行 HEX

が生成されます。HEXファイルの書き込み方については、関連資料に記載のクイックスタートガイドの「5 プ

ログラムを書き込む」を参照してください。

Page 31: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 31 of 93

2017.11.22

8.3 BLE ソフトウェアに組み込む方法

8.3.1 生成ファイルの組み込み方

“GENERATE CODE”ダイアログ下部の”SAVE TO”で指定したパスにある生成ファイルを、BLE ソフトウェ

アへ上書きコピーします。

\Renesas\BLE_Software_Ver_X_XX\RL78_G1D\Project_Source\rBLE\src\sample_profile\sam (フォルダパスは任意)(注)

共通: sam.h

Server Role: sams.c Client Role:samc.c

sams.h samc.h

\Renesas\BLE_Software_Ver_X_XX\RL78_G1D\Project_Source\renesas\src\arch\rl78 (注)

共通:db_handle.h

prf_config.c

prf_config.h

prf_sel.h

【注】 Xはバージョン番号

図8-11 生成ファイルの BLEソフトウェアへの組み込み先

BLE ソフトウェアのプロジェクトを起動したら、プロジェクトのコンパイル・オプションで定期されてい

る「noUSE_SAMPLE_PROFILE」のマクロ定義を変更し、先頭の「no」を削除して「USE_SAMPLE_PROFILE」

に変更する必要があります。

図8-12 プロジェクトのマクロ定義変更(例:CS+ for CCの場合)

カスタムプロファイルを動作させるためにアプリケーションによる APIの制御が必要となります。APIの

詳細については「10 API仕様」を参照し、アプリケーションを実装してください。

Page 32: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 32 of 93

2017.11.22

8.4 コード生成後のカスタマイズ

BDS プラグインがコード生成を行った後にカスタマイズが可能な設定について以下に示します。必要に応

じて変更を行ってください。

8.4.1 Server Role のカスタマイズ

Server Role は GATT データベースへの書き込み処理をキューイングし、排他処理を行っています。同時に

書き込み処理が発生した場合は、キューイングした順に書き込み処理を行います。

同時に書き込みが発生した場合のキューイング数を変更することが可能です。GATT データベースの書き

込み要求が同時に多数発生する場合、その要求を全て Server Role に受け付けさせたい場合には、マクロの値

を増やすことで対応が可能となります。キューイングの詳細は「11.2 GATTデータベース書き込み時のキュー

イング」を参照してください。

表 8-3 Server Role側のカスタマイズ可能なマクロ

ソース名 定義 初期値 説明

sams.c QUEUE_MAX 3 GATT データベースの書き込み要求をキューイングする数値

1 つ増やす毎に 28バイトの RAM を消費する。

また GATT データベースの各特性値の初期値を変更することが可能です。初期値を代入している変数名は、

BDS 上で設計したサービスや特性値の名称が反映されるため、以下にコード生成されている場所を示します。

表 8-4 Server Role側の GATTデータベースの特性値変数

ソース名 定義場所 初期値 識別子 説明

prf_config.c L.35~ 特性値のフィールド設定に依存

詳細は「表 7-4 フィールドの”FORMAT”

設定と出力される変数型一覧」を参照

~_char_val 特性値変数

8.4.2 Client Role のカスタマイズ

Client Role はコード生成後にカスタマイズが可能な設定はありません。

Page 33: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 33 of 93

2017.11.22

9. BLE ソフトウェアの動作確認

ビルドして生成した HEXファイルを RL78/G1D 評価ボードに書き込んで実行します。本章では Embedded

構成サンプルプログラムを利用した場合の BLE ソフトウェアの動作確認について解説します。Embedded 構

成サンプルプログラムを使用せずに BLE ソフトウェアへ組み込んだ場合については、別途カスタムプロファ

イルを制御するためのアプリケーションを作成する必要があるため、作成したアプリケーションに応じて動

作確認をおこなってください。

9.1 スマートフォンでのカスタムサービス(Server Role)の動作確認

Server Role の動作確認には、以下の環境が必要となります。

・ Server Role 用の HEX を書き込んだ RL78/G1D 評価ボード(RTK0EN0001D01001BZ)1 台

・ 動作確認を行う BLE アプリケーションをインストールしたスマートフォン

スマートフォンにて BLE アプリケーションを起動すると、BDS で設定したカスタムサービス及び特性値を

読み取ることが可能です。この章では、iOS 機器を使って動作を確認する方法を記載します。なお動作確認

用に Renesas製 BLE アプリケーション「GATTBrowser」を使用します。図9-1に示す URLより GATTBrowser

を入手し、iOS 機器にインストールしてください。

なお GATTBrowser の操作方法に関しては、関連資料に記載の GATTBrowser for iOS スマートフォンアプリ

取扱説明書の「6. 操作方法」を参照してください。

■GATTBrowser

https://itunes.apple.com/jp/app/gattbrowser/id1163057977?mt=8

図9-1 iOS動作確認に利用する BLEアプリケーション

9.1.1 アドバタイズを行っている Server Role のスキャン

iOS 機器にて GATTBrowser を起動します。また Server Role 用の HEX を書き込んだ RL78/G1D 評価ボード

の電源を入れ、動作を開始させます。Server Role 用コードを用いてビルドした場合には自動的にアドバタイ

ズを開始します。 GATTBrowserが起動すると、周辺でアドバタイズを行っているBLE Peripheral機器のスキャ

ンを開始します。デバイスの検索結果に"Renesas-BLE"が表示されるので、それをタップしてアドバタイズ

データを表示します。

図9-2 デバイスの検索結果

Page 34: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 34 of 93

2017.11.22

サービスの UUIDが BDS 上で作成したカスタムサービスで設定されている UUID と一致するのを、

GATTBrowser 上でアドバタイズデータを表示して確認します。

図9-3 Serviceの UUID

図9-4 アドバタイズデータ中の Peripheral機器サービス情報

Page 35: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 35 of 93

2017.11.22

9.1.2 Server Role への接続とサービス&特性値の表示

サービスの UUIDを確認した後、青矢印マークをタップして RL78/G1D 評価ボードへ接続します。

接続すると、BDSにて設定した特性値が GATTBrowser に表示されます。本例では 3つの特性値が表示さ

れています。

図9-5 特性値の UUID

図9-6 Peripheral機器の特性値情報

Page 36: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 36 of 93

2017.11.22

9.1.3 Notify 属性を持つ特性値の操作

GATTBrowser で表示している特性値をタップすると、特性値の操作画面が表示されます。この時表示され

る画面は特性値の属性により異なります。下記例は、特性値の属性"NOTIFY"を"MANDATORY"としている

場合です。この場合、GATTBrowser の"Properties"に"Notify"と表示されます。

図9-7 特性値:Notify属性

青ボタンの"Enable Notification"をタップすると、RL78/G1D 評価ボードから Notification が送信できるよう

になります。タップすると、”Descriptors”の表示が 0から 1に切り替わります。

図9-8 Notification開始ボタンと Descriptorsの切り替わり

この状態で RL78/G1D 評価ボード上の SW2ボタンを押下すると Notificationが送信され、GATTBrowser に

Notification されたデータが表示されます。

図9-9 Notification受信例

Page 37: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 37 of 93

2017.11.22

動作を確認後、"Disable Notification"をタップし、Notification を停止します。この時、”Descriptors”の値も 1

から 0に戻ります。

図9-10 Notification停止ボタン

9.1.4 Indicate 属性を持つ特性値の操作

下記画面は、特性値の属性”INDICATE”が”MANDATORY”の場合です。"Properties"に"Indicate"と表示され

ます。

図9-11 特性値:Indicate属性

Page 38: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 38 of 93

2017.11.22

青ボタンの"Enable Indication"をタップすると、RL78/G1D 評価ボードから Indication が送信できるようにな

ります。タップすると、”Descriptors”の表示が 0から 2 に切り替わります。

図9-12 Indication開始ボタンと Descriptorsの切り替わり

この状態で RL78/G1D 評価ボード上の SW2ボタンを押下すると Indication が送信され、GATTBrowser に

Indication されたデータが表示されます。

図9-13 Indication受信例

動作を確認後、"Disable Indication"をタップし、Indication を停止します。この時、”Descriptors”の値も 2か

ら 0に戻ります。

図9-14 Indication停止ボタン

Page 39: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 39 of 93

2017.11.22

9.1.5 Read 属性 / Write 属性を持つ特性値の操作

以下の図は、特性値の属性”READ”及び”WRITE”が”MANDATORY”の場合です。GATTBrowserの"Properties"

に"Read"と"Write"と表示されます。

図9-15 特性値:Read/Write属性

青ボタンの”Read”をタップすると特性値を読み込みます。下記例では”0x0000”を読み出しています。

図9-16 Readボタン及び押下後のデータ読み込み表示例

Page 40: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 40 of 93

2017.11.22

青ボタンの"Write"の下部にあるテキストフィールドをタップして特性値へ書き込むデータを入力

し”Write”ボタンをタップすると、特性値へ書き込みを行うことができます。下記例では、HEXで”0x1234”と

書き込みを行っています。

図9-17 Writeするデータのセット及び Writeボタン

Page 41: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 41 of 93

2017.11.22

GATTBrowser では書き込みに成功すると履歴に値が表示され、値が反映されたことが確認できます。

図9-18 特性値の Write結果

これらの操作で、BDSにて作成した Server Role用カスタムプロファイルの動作を確認することができます。

Page 42: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 42 of 93

2017.11.22

9.2 RL78/G1D 評価ボード対向での動作確認

Client Role の動作確認には、以下の環境が必要となります。

・ Server Role 用の HEX を書き込んだ RL78/G1D 評価ボード(RTK0EN0001D01001BZ)

・ Client Role 用の HEX を書き込んだ RL78/G1D 評価ボード(RTK0EN0001D01001BZ)

・ Client Role 操作用ターミナルプログラム動作用 PC

・ Client Role 操作用ターミナルプログラム(例:TeraTerm等)

Server Role は電源投入後に自動的に動作し、アドバタイズを開始します。Client Role は PC上のターミナル

ソフトからの制御が必要となります。詳細に関しては関連資料に記載の Embedded 構成サンプルプログラム

の「2.3使用方法」を参照してください。

Client Role 用 HEX を書き込んだ実機を PCへ USBで接続し、PCにてターミナルソフトを起動します。実

機はシリアルポートにて接続が可能です。シリアルポートの設定を以下のように変更してください。

表 9-1 シリアルポート設定

ポート設定 設定値

ボー・レート 4,800bps

データ長 8bit

パリティ なし

ストップビット 1bit

フロー制御 なし

受信改行コード LF

9.2.1 アドバタイズ機器のスキャン開始

RL78/G1D 評価ボードを 2台とも電源を入れ、実行を開始します。Client Role 側にシリアル接続を行うと、

ターミナルにコマンドプロンプト画面が表示されます。

図9-19 起動時のメニュー画面

Page 43: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 43 of 93

2017.11.22

ターミナルソフトでは、基本的に番号指定によるメニュー選択で動作します。数字キーを入力の上、エン

ターキーによりメニューを選択する操作方法となります。

ターミナルより"0"を入力し、スキャンを開始します。

図9-20 スキャン開始画面

表示どおり 7.68 秒を経過すると、アドバタイズを行っている Server Role のスキャン結果が BDアドレスで

表示されます。

図9-21 スキャン結果の表示画面

9.2.2 Server Role への接続とサービス&特性値検索

ターミナルより該当する Server Role の BDアドレスのメニュー番号を選択し、Server Role に接続します。

接続に成功すると、Server Role との通信が行われ、サービス&特性値の検索処理が実行されます。

図9-22 サービス&特性値の検索と結果表示画面

アドバタイズを行っている

Server Role の BD アドレス

接続処理及びサービス

&特性値検索開始を示

す表示

発見されたサービス

Page 44: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 44 of 93

2017.11.22

この処理を経て、Server Role の各特性値にアクセスできるようになります。”図9-22”の例では、サービス

&特性値検索の結果、”Service1”というサービスを発見できています。

ターミナルよりメニュー番号を入力してサービスを選択すると、サービスに含まれる特性値が更に表示さ

れます。下記例では”Service1”というサービスを選択して、特性値を表示しています。

図9-23 サービス選択による特性値表示画面

メニュー番号に続く名前は、BDS 上で特性値に指定した名前となります。その後ろに続く括弧は、特性値

の属性を略称表示しています。属性の略称表記は以下の通りになります。

表 9-2 属性略称表記

表記 意味

R READ

W WRITE

WWR WRITE WITHOUT RESPONSE

N NOTIFY

I INDICATE

サービスに含まれる

特性値の表示

Page 45: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 45 of 93

2017.11.22

9.2.3 特性値の Read 処理

“R”属性を持つ特性値をメニュー番号の入力により選択すると、以下のメニューが表示されます。

図9-24 “R”属性を持つ特性値メニュー

メニュー番号を入力して選択すると、特性値の読み出しが行われます。HEX表示で、その特性値の Field

全てが読み出されます。

図 9-25 特性値の読み出し結果表示

9.2.4 特性値の Write / Write without response 処理

“W”属性もしくは”WWR”属性を持つ特性値をメニュー番号の入力により選択すると、以下のメニューが表

示されます。

図 9-26 “W”属性を持つ特性値メニュー

図 9-27 “WWR”属性を持つ特性値メニュー

Page 46: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 46 of 93

2017.11.22

メニュー番号を入力して選択すると、特性値の書き込みデータの入力待ち状態になります。Embedded 構成

サンプルプログラムでは、ターミナルから 32bit までのデータを書き込むことができます。また先頭に”0x”

を付与すると 16進数で入力することができます。そのまま入力を行った場合は 10進数として処理されます。

図 9-28 特性値への書き込みメニュー選択(“W”属性を持つ特性値の場合)

書き込みに成功すると”Wrote”と表示されます。ここでは”0x1234”と入力しています。

図 9-29 特性値への書き込み結果表示

9.2.5 特性値の Notification Enable / Disable 処理

“N”属性を持つ特性値をメニュー番号の入力により選択すると、以下のメニューが表示されます。

図 9-30 “N”属性を持つ特性値メニュー

現在の CCCD の状態を読み出す場合はターミナルから”Read CCCD”をメニュー番号で選択します。

図 9-31 CCCD読み出し結果表示

Page 47: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 47 of 93

2017.11.22

Notifyを有効にするには、CCCD へ書き込みを行うためターミナルから”Write CCCD”をメニュー番号で選

択します。

図 9-32 “Write CCCD”メニュー選択(Notifyの場合)

Notifyの“Write CCCD”メニューでは、”0”または”1”を入力して、Notifyの ON/OFF を設定します。

”1”を入力すると、特性値の Notifyの送信を許可します。

図 9-33 Notify ON / OFF設定メニュー

この状態で Server Roleが動作する RL78/G1D 評価ボード上の SW2 を押下すると、Server Role から許可さ

れた特性値の Notifyが送信されます。Notifyを受信すると、Client Role のターミナルに以下のように表示さ

れます。

図 9-34 Notify受信結果

Page 48: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 48 of 93

2017.11.22

9.2.6 特性値の Indication Enable / Disable 処理

“I”属性を持つ特性値をメニュー番号の入力により選択すると、”N”の時と同様に以下のメニューが表示さ

れます。

図 9-35 “I”属性を持つ特性値メニュー

現在の CCCD の状態を読み出す場合は、これも”NOTIFY”と同様にターミナルから”Read CCCD”をメニュー

番号の入力で選択します。

図 9-36 CCCD読み出し結果表示

Indicate を有効にするには、CCCD へ書き込みを行うためターミナルから”Write CCCD”をメニュー番号の入

力で選択します。

図 9-37 “Write CCCD”メニュー選択(Indicateの場合)

Indicate の“Write CCCD”メニューでは、”0”または”2”を入力して、Indicateの ON/OFF を設定します。

”2”を入力すると、特性値の Indication の送信を許可します。

図 9-38 Indicate ON / OFF設定メニュー

”1”を入力した場合は CCCD へ 1が書き込まれますが、Indication の送信は許可されません。

Page 49: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 49 of 93

2017.11.22

この状態で Server Roleが動作する RL78/G1D 評価ボード上の SW2 を押下すると、Server Role から許可さ

れた特性値の Indicateが送信されます。Indicate を受信すると、Client Role のターミナルに以下のように表示

されます。

図 9-39 Indicate受信結果

Page 50: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 50 of 93

2017.11.22

10. API 仕様

10.1 Server Role 用

10.1.1 Server Role 用関数

Server Role 用のカスタムプロファイルの関数を以下に示します。なお説明文中に記載の BLE ソフトウェア

の API の詳細に関しては、関連資料に記載の APIリファレンスマニュアル 基本編の「7.2 Functions」を参照

してください。

表 10-1 Server Role 用 API 一覧

関数名 概要

(プロファイル名)_Server_Enable Server Role プロファイル有効化

(プロファイル名)_Server_Disable Server Role プロファイル無効化

(プロファイル名)_Server_Set_Value Server Role の GATT データベースへ値をセット

(プロファイル名)_Server_Char_NtfInd Client へ Notification / Indication

RBLE_STATUS (プロファイル名)_Server_Enable ( uint16_t conhdl, uint8_t con_type,

(プロファイル名)_SERVER_PARAM *param, (プロファイル名)_SERVER_EVENT_HANDLER callback )

説明

・本関数は Server Role プロファイルを有効にする。

・本関数の実行完了は以下のイベントにより通知される。

- (プロファイル名)_SERVER_EVENT_ENABLE_COMP

・conhdl はコネクションハンドルとして、RBLE_GAP_Create_Connection 関数の実行完了イベン

ト「RBLE_GAP_EVENT_CONNECTION_COMP」発生時に connect_info.conhdl へ格納された値

を指定する。

・con_type はカスタムサービスの CCCD の初期化の実施可否を指定する。

- RBLE_PRF_CON_NORMAL:param で指定した値を用いて CCCD パラメータを初期化

- RBLE_PRF_CON_DISCOVERY:CCCD パラメータを 0(全て無効)で初期化する

・ param は CCCD パ ラ メ ー タ を 初 期 化 す る 設 定 値 を 格 納 す る 。 con_type を

RBLE_PRF_CON_DISCOVERY に指定した場合でも引数のパラメータチェックを行うため、空の

(プロファイル名)_SERVER_PARAM 構造体のアドレスを指定する必要がある。

・callback は、Server Role プロファイルのイベントが発生した際に呼び出されるイベントコール

バック関数を指定する。

引数

uint16_t conhdl コネクションハンドル

uint8_t con_type 初期化実施

可否フラグ

RBLE_PRF_CON_NORMAL 初期化実施

RBLE_PRF_CON_DISCOVERY 初期化非実

(プロファイル名)

_SERVER_PARAM *param

CCCD 初期化パラメータ構造体

(sams.h に定義されている構造体を使用する)

(プロファイル名)

_SERVER_EVENT_HANDLER callback

カスタムプロファイルのコールバック関数

戻り値 RBLE_STATUS

処理

結果

RBLE_OK Server Role プロファイル

有効化開始

RBLE_PARAM_ERR パラメータエラー

RBLE_STATUS_ERROR Server Role が既に有効

Page 51: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 51 of 93

2017.11.22

RBLE_STATUS (プロファイル名)_Server_Disable ( uint16_t conhdl )

説明

・本関数は Server Role プロファイルを無効にする。

・本関数の実行完了は以下のイベントにより通知される。

- (プロファイル名)_SERVER_EVENT_DISABLE_COMP

・conhdl はコネクションハンドルとして、RBLE_GAP_Create_Connection 関数の実行完了イベ

ント「RBLE_GAP_EVENT_CONNECTION_COMP」発生時に connect_info.conhdl へ格納され

た値を指定する。

・戻り値が RBLE_BUSY の場合は、処理は開始されず実行完了のイベントは通知されない。こ

の場合は、コネクションインターバルの時間以上経過後に再度本関数を呼ぶこと。

引数 uint16_t conhdl コネクションハンドル

戻り値 RBLE_STATUS

処理

結果

RBLE_OK Server Role プロファイル無効化開始

RBLE_PARAM_ERR パラメータエラー

RBLE_STATUS_ERROR Server Role が既に無効

RBLE_BUSY GATT データベースへ書き込む処理が

実行中

RBLE_STATUS (プロファイル名)_Server_Set_Value ( uint16_t char_hdl, uint8_t *char_val )

説明

・本関数は Server Role の GATT データベースへ値を書き込む。

・本関数の実行完了は以下のイベントにより通知される。

- Value:(プロファイル名)_SERVER_EVENT_SET_VALUE_COMP

- CCCD:(プロファイル名)_SERVER_EVENT_CCCD_WRITE

・char_hdl は、db_handle.h に出力されているハンドル用マクロを使用して特性値を指定する。

・char_val は、GATT データベースへセットする値を格納したメモリ領域を指定する。書き込み

サイズは自動的に特性値が持つ Field 長が指定されるため、char_val で指定するメモリ領域も Field

長と同じサイズを用意する必要がある。

・戻り値が RBLE_BUSY の場合は、処理は開始されず実行完了のイベントは通知されない。この

場合は、コネクションインターバルの時間以上経過後に再度本関数を呼ぶこと。

引数

uint16_t char_hdl 特性値を指すマクロ

(db_handle.h に使用する定義が出力されている)

uint8_t *char_val 設定データ

戻り値 RBLE_STATUS

処理

結果

RBLE_OK GATT データベース書き込み処理開始

RBLE_PARAM_ERR パラメータエラー

RBLE_STATUS_ERROR Server Role が無効

RBLE_BUSY

GATT データベースへ書き込む処理を受

け付けるキューが一杯で受け付けられな

Page 52: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 52 of 93

2017.11.22

RBLE_STATUS (プロファイル名)_Server_Char_NtfInd ( uint16_t conhdl, uint16_t char_hdl, uint8_t *char_val, uint16_t

req_type )

説明

・本関数は char_hdl で指定した特性値へ書き込みを行った後に Client へ Notification または

Indication を行う。どちらを行うかは req_type で指定する。

・本関数の実行完了は、以下のイベントにより通知される。

- Notification:(プロファイル名)_SERVER_EVENT_NOTIFY_COMP イベント

- Indication :(プロファイル名)_SERVER_EVENT_INDICATE_COMP イベント

・CCCD の値が Enable になっていない場合は、GATT データベースの値だけ書き込みを行い、

Notification または Indication の送信処理は行わず、COMP イベントでエラーを返却する。

・conhdl はコネクションハンドルとして、RBLE_GAP_Create_Connection 関数の実行完了イベン

ト「RBLE_GAP_EVENT_CONNECTION_COMP」発生時に connect_info.conhdl へ格納された値

を指定する。

・char_hdl は、db_handle.h に出力されているハンドル用マクロを使用して特性値を指定する。

・char_val は、GATT データベースへセットする値が格納されたメモリ領域を指定する。書き込み

サイズは自動的に特性値が持つ Field 長が指定されるため、char_val で指定するメモリ領域も Field

長と同じサイズを用意する必要がある。

・req_type は sams.h に出力されている以下のマクロを指定する。

- Notification:(プロファイル名)_SERVER_DESC_NTF_ENABLE

- Indication :(プロファイル名)_SERVER_DESC_IND_ENABLE

・戻り値が RBLE_BUSY の場合は、処理は開始されず実行完了のイベントは通知されない。この

場合は、コネクションインターバルの時間以上経過後に再度本関数を呼ぶこと。

引数

uint16_t conhdl コネクションハンドル

uint16_t char_hdl 特性値を指すマクロ

(db_handle.h に使用する定義が出力されている)

uint8_t *char_val 設定データ

uint16_t req_type Ntf/Ind 動作指定フラグ

(sams.h に定義が出力されている)

戻り値 RBLE_STATUS

処理

結果

RBLE_OK Notification または Indication 処理開始

RBLE_PARAM_ERR パラメータエラー

RBLE_STATUS_ERROR Server Role が無効

RBLE_BUSY

GATT データベースへ書き込む処理を受

け付けるキューが一杯で受け付けられ

ない

Page 53: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 53 of 93

2017.11.22

10.1.2 Server Role 用イベント及びイベント構造体

Server Role 用のカスタムプロファイルのイベント及びイベント構造体を以下に示します。

表 10-2 Server Role用カスタムプロファイルイベント一覧

イベント名 内容

(プロファイル名)_SERVER_EVENT_ENABLE_COMP Server Role 有効化イベント

(プロファイル名)_SERVER_EVENT_DISABLE_COMP Server Role 無効化イベント

(プロファイル名)_SERVER_EVENT_CCCD_WRITE NTF/IND の Enable/Disable イベント

(プロファイル名)_SERVER_EVENT_NOTIFY_COMP Notification Complete/Error イベント

(プロファイル名)_SERVER_EVENT_INDICATE_COMP Indication Complete/Error イベント

(プロファイル名)_SERVER_EVENT_SET_VALUE_COMP Set Value Complete イベント

(プロファイル名)_SERVER_EVENT_CHAR_WRITE_RESP Client から特性値へ書き込みされたイベント

Server Role 用イベント構造体を以下に示します。

typedef struct {

(プロファイル名)_SERVER_EVENT_TYPE type; プロファイルイベントタイプ:typedef uint8_t

RBLE_STATUS status; ステータス

uint16_t conhdl; コネクションハンドル

union {

プロファイル無効設定完了イベント

struct {

(プロファイル名)_SERVER_PARAM param; GATT データベースの CCCD 情報

}disable_comp_evt;

Set Value 完了イベント

struct {

uint16_t char_hdl; 特性値ハンドル

}set_value_comp_evt;

CCCD Write イベント

struct {

uint16_t char_hdl; 特性値ハンドル

uint16_t value; CCCD パラメータ

}cccd_write_evt;

Notification 完了イベント

struct {

uint16_t char_hdl; 特性値ハンドル

}ntf_comp_evt;

Indication 完了イベント

struct {

uint16_t char_hdl; 特性値ハンドル

}ind_comp_evt;

Remote への Write Response イベント

struct {

uint16_t char_hdl; 特性値ハンドル

union {

: 特性値情報

} char_write_resp_evt_val;

}char_write_resp_evt;

}param;

} (プロファイル名)_SERVER_EVENT;

図 10-1 Server Role用イベント構造体

Page 54: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 54 of 93

2017.11.22

各イベントが発生した際のイベント構造体のパラメータの詳細を以下に示します。図 10-1に示すとおり、

イベント構造体の一部は union による共用体であるため、発生するイベントによりパラメータが格納される

構造体メンバーが異なります。

(プロファイル名)_SERVER_EVENT_ENABLE_COMP

このイベントはカスタムプロファイルの Server Role の有効化の結果を通知する。

Parameters:

type

プロファイルイベントタイプ

発生したイベントの”(プロファイル名)_SERVER_EVENT_ENABLE_COMP”が格納

される

status Server Role の有効化の結果

RBLE_OK がセットされる

conhdl コネクションハンドル

(プロファイル名)_SERVER_EVENT_DISABLE_COMP

このイベントはカスタムプロファイルの Server Role の無効化結果を通知する。

Parameters:

type

プロファイルイベントタイプ

発生したイベントの”(プロファイル名)_SERVER_EVENT_DISABLE_COMP”が格

納される

status Server Role の無効化の結果

RBLE_OK がセットされる

conhdl コネクションハンドル

(プロファイル

名)_SERVER_PAR

AM param

Notification / Indication の Property を持つ特性値の各 CCCD パラメータが格納され

た構造体

(プロファイル名)_SERVER_EVENT_CCCD_WRITE

このイベントはカスタムプロファイルの CCCD への書き込み結果を通知する。

Parameters:

type

プロファイルイベントタイプ

発生したイベントの”(プロファイル名)_SERVER_EVENT_CCCD_WRITE”が格納さ

れる

status Server Role の CCCD への書き込み結果

conhdl コネクションハンドル

cccd_write_evt.

char_hdl 特性値ハンドル

cccd_write_evt.

value CCCD へ書き込まれた値

Page 55: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 55 of 93

2017.11.22

(プロファイル名)_SERVER_EVENT_NOTIFY_COMP

このイベントはカスタムプロファイルの Client への Notification 結果を通知する。

Parameters:

type

プロファイルイベントタイプ

発生したイベントの”(プロファイル名)_SERVER_EVENT_NOTIFY_COMP”が格納

される

status Server Role の Client への Notification 結果

conhdl コネクションハンドル

ntf_comp_evt.

char_hdl 特性値ハンドル

(プロファイル名)_SERVER_EVENT_INDICATE_COMP

このイベントはカスタムプロファイルの Client への Indication 結果を通知する。

Parameters:

type

プロファイルイベントタイプ

発生したイベントの”(プロファイル名)_SERVER_EVENT_INDICATE_COMP”が格

納される

status Server Role の Client への Indication 結果

conhdl コネクションハンドル

ind_comp_evt.

char_hdl 特性値ハンドル

(プロファイル名)_SERVER_EVENT_SET_VALUE_COMP

このイベントはカスタムプロファイルの GATT データベースへの書き込み結果を通知する。

Parameters:

type

プロファイルイベントタイプ

発生したイベントの”(プロファイル名)_SERVER_EVENT_SET_VALUE _COMP”

が格納される

status Server Role の GATT データベースへの書き込み結果

conhdl コネクションハンドル

set_value_comp_evt.

char_hdl 特性値ハンドル

Page 56: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 56 of 93

2017.11.22

(プロファイル名)_SERVER_EVENT_CHAR_WRITE_RESP

このイベントはカスタムプロファイルの Client からの書き込み結果を通知する。

Parameters:

type

プロファイルイベントタイプ

発生したイベントの”(プロファイル名)_SERVER_EVENT_CHAR_WRITE

_RESP”が格納される

status Server Role の GATT データベースへ Client からの書き込み結果

conhdl コネクションハンドル

char_write_resp_evt.

char_hdl 特性値ハンドル

char_write_resp_evt.

char_write_resp_evt_

val

特性値書き込みデータ構造体

構造体の構成は、対象となる特性値のフィールド設定に依存する。

Page 57: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 57 of 93

2017.11.22

10.1.3 Server Role のシーケンス図

Server Role 用関数の操作タイミング及び BLE ソフトウェア間で発生するイベントの発生タイミングを、以

下のシーケンス図に示します。なおシーケンス図中に記載の BLE ソフトウェアの API の詳細に関しては、関

連資料に記載の API リファレンスマニュアル 基本編の「7.2 Functions」を参照してください。

(1) 起動~接続の確立~(プロファイル名)_Server_Enable 関数の呼び出し

BLEスタックユーザアプリケーションカスタム

プロファイル

RBLE_GAP_EVENT_RESET_RESULT

RBLE_GAP_Reset()

RBLE_GAP_Broadcast_Enable()

RBLE_GAP_EVENT_BROADCAST_ENABLE_COMP

ADV_IND

CONNECT_REQRBLE_GAP_EVENT_CONNECTION_COMP

(プロファイル名)_Server_Enable()RBLE_GATT_Enable()

(プロファイル名)_SERVER_EVENT_ENABLE_COMP

接続の確立

Server Roleの有効化

図 10-2 起動~接続の確立~(プロファイル名)_Server_Enable関数の呼び出し

Page 58: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 58 of 93

2017.11.22

(2) 接続の切断~(プロファイル名)_Server_Disable 関数の呼び出し

ユーザアプリケーションカスタム

プロファイル

LL ackRBLE_GAP_EVENT_DISCONNECT_COMP

(プロファイル名)_Server_Disable()

(プロファイル名)_SERVER_EVENT_DISABLE_COMP

接続の切断

Server Roleの無効化

LL_TERMINATE_IND

BLEスタック

図 10-3 接続の切断~(プロファイル名)_Server_Disable関数の呼び出し

(3) (プロファイル名)_Server_Set_Value 関数の呼び出し(特性値の場合)

ユーザアプリケーションカスタム

プロファイル

(プロファイル名)_Server_Set_Value()

RBLE_GATT_EVENT_SET_DATA_CMP

BLEスタック

RBLE_GATT_Set_Data()

(プロファイル名)_SERVER_EVENT_SET_VALUE_COMP

図 10-4 (プロファイル名)_Server_Set_Value関数の呼び出し(特性値の場合)

(4) (プロファイル名)_Server_Set_Value 関数の呼び出し(CCCD の場合)

ユーザアプリケーションカスタム

プロファイル

(プロファイル名)_Server_Set_Value()

RBLE_GATT_EVENT_SET_DATA_CMP

BLEスタック

RBLE_GATT_Set_Data()

(プロファイル名)_SERVER_EVENT_CCCD_WRITE

図 10-5 (プロファイル名)_Server_Set_Value関数の呼び出し(CCCDの場合)

Page 59: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 59 of 93

2017.11.22

(5) (プロファイル名)_Server_Char_NtfInd 関数の呼び出し(Notification が許可の場合)

ユーザアプリケーションカスタム

プロファイル

(プロファイル名)_Server_Char_NtfInd()

RBLE_GATT_EVENT_SET_DATA_CMP

BLEスタック

RBLE_GATT_Set_Data()

RBLE_GATT_Notify_Request()

RBLE_GATT_EVENT_NOTIFY_COMP

Handle Value Notification(プロファイル名)_SERVER_EVENT_NOTIFY_COMP

図 10-6 (プロファイル名)_Server_Char_NtfInd関数の呼び出し(Notificationが許可の場合)

(6) (プロファイル名)_Server_Char_NtfInd 関数の呼び出し(Notification が禁止の場合)

ユーザアプリケーションカスタム

プロファイル

(プロファイル名)_Server_Char_NtfInd()

RBLE_GATT_EVENT_SET_DATA_CMP

BLEスタック

RBLE_GATT_Set_Data()

(プロファイル名)_SERVER_EVENT_NOTIFY_COMP

図 10-7 (プロファイル名)_Server_Char_NtfInd関数の呼び出し(Notificationが禁止の場合)

Page 60: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 60 of 93

2017.11.22

(7) (プロファイル名)_Server_Char_NtfInd 関数の呼び出し(Indication が許可の場合)

ユーザアプリケーションカスタム

プロファイル

(プロファイル名)_Server_Char_NtfInd()

RBLE_GATT_EVENT_SET_DATA_CMP

BLEスタック

RBLE_GATT_Set_Data()

RBLE_GATT_Indicate_Request()

RBLE_GATT_EVENT_HANDLE_VALUE_CFM

Handle Value Indication

(プロファイル名)_SERVER_EVENT_INDICATE_COMP

Handle Value Confirmation

図 10-8 (プロファイル名)_Server_Char_NtfInd関数の呼び出し(Indicationが許可の場合)

(8) (プロファイル名)_Server_Char_NtfInd 関数の呼び出し(Indication が禁止の場合)

ユーザアプリケーションカスタム

プロファイル

(プロファイル名)_Server_Char_NtfInd()

RBLE_GATT_EVENT_SET_DATA_CMP

BLEスタック

RBLE_GATT_Set_Data()

(プロファイル名)_SERVER_EVENT_INDICATE_COMP

図 10-9 (プロファイル名)_Server_Char_NtfInd関数の呼び出し(Indicationが禁止の場合)

Page 61: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 61 of 93

2017.11.22

(9) (プロファイル名)_SERVER_EVENT_CHAR_WRITE_RESP イベントの発生(書き込み成功)

ユーザアプリケーションカスタム

プロファイル

RBLE_GATT_EVENT_WRITE_CMD_IND

BLEスタック

RBLE_GATT_Set_Data()

Write Response(プロファイル名)_SERVER_EVENT_CHAR_WRITE_RESP

Write Request

RBLE_GATT_EVENT_SET_DATA_CMP

RBLE_GATT_Write_Response()

図 10-10 (プロファイル名)_SERVER_EVENT_CHAR_WRITE_RESP イベントの発生(書き込み成功)

(10) (プロファイル名)_SERVER_EVENT_CHAR_WRITE_RESP イベントの発生(書き込み失敗)

ユーザアプリケーションカスタム

プロファイル

RBLE_GATT_EVENT_WRITE_CMD_IND

BLEスタック

Write Response

Write Request

RBLE_GATT_Write_Response()

図 10-11 (プロファイル名)_SERVER_EVENT_CHAR_WRITE_RESP イベントの発生(書き込み失敗)

Page 62: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 62 of 93

2017.11.22

(11) (プロファイル名)_SERVER_EVENT_CCCD_WRITE イベントの発生(書き込み成功)

ユーザアプリケーションカスタム

プロファイル

RBLE_GATT_EVENT_WRITE_CMD_IND

BLEスタック

RBLE_GATT_Set_Data()

Write Response(プロファイル名)_SERVER_EVENT_CCCD_WRITE

Write Request

RBLE_GATT_EVENT_SET_DATA_CMP

RBLE_GATT_Write_Response()

図 10-12 (プロファイル名)_SERVER_EVENT_CCCD_WRITEイベントの発生(書き込み成功)

(12) (プロファイル名)_SERVER_EVENT_CCCD_WRITE イベントの発生(書き込み失敗)

ユーザアプリケーションカスタム

プロファイル

RBLE_GATT_EVENT_WRITE_CMD_IND

BLEスタック

Write Response

Write Request

RBLE_GATT_Write_Response()

図 10-13 (プロファイル名)_SERVER_EVENT_CCCD_WRITEイベントの発生(書き込み失敗)

Page 63: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 63 of 93

2017.11.22

10.2 Client Role 用

10.2.1 Client Role 用関数

Client Role 用のカスタムプロファイルの関数を以下に示します。なお説明文中に記載の BLE ソフトウェア

の API の詳細に関しては、関連資料に記載の APIリファレンスマニュアル 基本編の「7.2 Functions」を参照

してください。

表 10-3 Client Role 用 API 一覧

関数名 概要

(プロファイル名)_Client_Enable Client Role プロファイル有効化

(プロファイル名)_Client_Disable Client Role プロファイル無効化

(プロファイル名)_Client_SVR_Char_Read Server Role の GATT データベース値をリード

(プロファイル名)_Client_SVR_Char_Write Server Role の GATT データベース値をライト

Page 64: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 64 of 93

2017.11.22

RBLE_STATUS (プロファイル名)_Client_Enable ( uint16_t conhdl, uint8_t con_type,

(プロファイル名)_CLIENT_CONTENT *samc, (プロファイル名)_CLIENT_EVENT_HANDLER callback )

説明

・本関数は Client Role プロファイルを有効にする。

・本関数の実行完了は以下のイベントにより通知される。

- (プロファイル名)_CLIENT_EVENT_ENABLE_COMP

・conhdl はコネクションハンドルとして、RBLE_GAP_Create_Connection 関数の実行完了イベント

「RBLE_GAP_EVENT_CONNECTION_COMP」発生時に connect_info.conhdl へ格納された値を指定

する。

・con_type は Server Role が提供するサービスの検索実施の可否を指定する。

- RBLE_PRF_CON_DISCOVERY:サービス検索を開始する

- RBLE_PRF_CON_NORMAL:サービス検索を行わず samc で指定したハンドル値を使用する

・ samc は Server Role の サ ー ビ ス の ア ト リ ビ ュ ー ト 情 報 を 格 納 す る 。 con_type を

RBLE_PRF_CON_DISCOVERY に指定した場合でも引数のパラメータチェックを行うため、空の

(プロファイル名) _CLIENT_CONTENT 構造体のアドレスを指定する必要がある。

・callback は、Client Role のプロファイルのイベントが発生した際に呼び出されるイベントコール

バック関数を指定する。

・別の Client Role プロファイルの関数を実行中に本関数を呼び出すと RBLE_BUSY が返却される。

引数

uint16_t conhdl コネクションハンドル

uint8_t con_type

サービス検

索実施可否

フラグ

RBLE_PRF_CON_NORMAL サービス検索

非実施

RBLE_PRF_CON_DISCOVERY サービス検索

実施

(プロファイル名)

_CLIENT_CONTENT *samc

ハンドル情報初期化パラメータ構造体

(samc.h に定義されている構造体を使用する)

(プロファイル名)

_CLIENT_EVENT_HANDLER callback

カスタムプロファイルのコールバック関数

戻り値 RBLE_STATUS

処理

結果

RBLE_OK Client Role プロファイル有

効化開始

RBLE_PARAM_ERR パラメータエラー

RBLE_STATUS_ERROR Client Role が既に有効

RBLE_BUSY 別のClient Roleプロファイ

ルの関数が実行中

Page 65: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 65 of 93

2017.11.22

RBLE_STATUS (プロファイル名)_Client_Disable ( uint16_t conhdl )

説明

・本関数は Client Role プロファイルを無効にする。

・本関数の実行完了は以下のイベントにより通知される。

- (プロファイル名)_CLIENT_EVENT_DISABLE_COMP

・conhdl はコネクションハンドルとして、RBLE_GAP_Create_Connection 関数の実行完了イベ

ント「RBLE_GAP_EVENT_CONNECTION_COMP」発生時に connect_info.conhdl へ格納され

た値を指定する。

・別の Client Role プロファイルの関数を実行中に本関数を呼び出すと RBLE_BUSY が返却され

る。

引数 uint16_t conhdl コネクションハンドル

戻り値 RBLE_STATUS

処理結果

RBLE_OK Client Role プロファイル無効化開始

RBLE_PARAM_ERR パラメータエラー

RBLE_BUSY 別の Client Role プロファイルの関数が

実行中

RBLE_STATUS (プロファイル名)_Client_SVR_Char_Read ( uint16_t conhdl, uint16_t char_hdl )

説明

・本関数は Server Role の GATT データベース値の読み込みを行う。

・本関数の実行完了は以下のイベントにより通知される。

- (プロファイル名)_CLIENT_EVENT_READ_CHAR_RESP

・conhdl はコネクションハンドルとして、RBLE_GAP_Create_Connection 関数の実行完了イベ

ント「RBLE_GAP_EVENT_CONNECTION_COMP」発生時に connect_info.conhdl へ格納され

た値を指定する。

・char_hdl は、samc.h に出力されているマクロを用いて特性値を指定する。

・別の Client Role プロファイルの関数を実行中に本関数を呼び出すと RBLE_BUSY が返却され

る。

引数

uint16_t conhdl コネクションハンドル

uint16_t char_hdl 特性値を指すマクロ

(samc.h に使用する定義が出力されている)

戻り値 RBLE_STATUS

処理結果

RBLE_OK Server Role の GATT データベース

の読み込み処理開始

RBLE_PARAM_ERR パラメータエラー

RBLE_STATUS_ERROR Client Role が無効

RBLE_BUSY 別の Client Role プロファイルの関

数が実行中

Page 66: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 66 of 93

2017.11.22

RBLE_STATUS (プロファイル名)_Client_SVR_Char_Write ( uint16_t conhdl, uint16_t char_hdl, uint8_t *wr_char,

uint8_t req_type )

説明

・本関数は Server Role の GATT データベース値の書き込みを行う。

・本関数の実行完了は以下のイベントで通知される。

- (プロファイル名)_CLIENT_EVENT_WRITE_CHAR_RESP

・conhdl はコネクションハンドルとして、RBLE_GAP_Create_Connection 関数の実行完了イベ

ント「RBLE_GAP_EVENT_CONNECTION_COMP」発生時に connect_info.conhdl へ格納され

た値を指定する。

・char_hdl は、samc.h に出力されているマクロを用いて特性値を指定する。

・wr_char は、GATT データベースへセットする値を格納したメモリ領域を指定する。書き込み

サイズは自動的に特性値が持つ Field 長が指定されるため、wr_char で指定するメモリ領域も

Field 長と同じサイズを用意する必要がある。

・req_type は以下の三種類を指定することができる。

- RBLE_GATT_WRITE_CHAR:Server Role の特性値へ Write

- RBLE_GATT_WRITE_NO_RESPONSE : Server Role の 特 性 値 へ Write Without

Response

- RBLE_GATT_WRITE_DESC:Server Role のディスクリプタへ Write

・別の Client Role プロファイルの関数を実行中に本関数を呼び出すと RBLE_BUSY が返却され

る。

引数

uint16_t conhdl コネクションハンドル

uint16_t char_hdl 特性値を指すマクロ

(samc.h に使用する定義が出力されている)

uint8_t *wr_char 設定データ

uint8_t req_type 書き込みモード

戻り値 RBLE_STATUS

処理結果

RBLE_OK Server Role の GATT データベース

の書き込み処理開始

RBLE_PARAM_ERR パラメータエラー

RBLE_STATUS_ERROR Client Role が無効

RBLE_BUSY 別の Client Role プロファイルの関

数が実行中

Page 67: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 67 of 93

2017.11.22

10.2.2 Client Role 用イベント及びイベント構造体

Client Role 用のカスタムプロファイルのイベント及びイベント構造体を以下に示します。

表 10-4 Client Role用カスタムプロファイルイベント一覧

イベント名 内容

(プロファイル名)_CLIENT_EVENT_ENABLE_COMP Client Role 有効化イベント

(プロファイル名)_CLIENT_EVENT_DISABLE_COMP Client Role 無効化イベント

(プロファイル名)_CLIENT_EVENT_NTF_RECV Server Role からの Notification 受信イベント

(プロファイル名)_CLIENT_EVENT_IND_RECV Server Role からの Indication 受信イベント

(プロファイル名)_CLIENT_EVENT_READ_CHAR_RESP Server Role の特性値読み出し完了イベント

(プロファイル名)_CLIENT_EVENT_WRITE_CHAR_RESP Server Role の特性値書き込み完了イベント

Client Role 用イベント構造体を以下に示します。

typedef struct {

(プロファイル名)_CLIENT_EVENT_TYPE type; プロファイルイベントタイプ:typedef uint8_t

RBLE_STATUS status; ステータス

uint16_t conhdl; コネクションハンドル

union {

プロファイル有効完了イベント

struct {

(プロファイル名)_CLIENT_CONTENT samc; GATT データベースの各ハンドル情報

}enable_comp_evt;

Write/Write without Response 完了イベント

struct {

uint16_t char_hdl; 特性値ハンドル

}send_char_evt;

Read/Notification/Indication 受信イベント

struct {

uint16_t char_hdl; 特性値ハンドル

union {

: 特性値及び/CCCD の受信データ

}recv_char_evt_val;

}st_recv_char_evt;

}param;

} (プロファイル名)_CLIENT_EVENT;

図 10-14 Client Role用イベント構造体

Page 68: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 68 of 93

2017.11.22

各イベントが発生した際のイベント構造体のパラメータの詳細を以下に示します。図 10-14に示すとおり、

イベント構造体の一部は union による共用体であるため、発生するイベントによりパラメータが格納される

構造体メンバーが異なります。

(プロファイル名)_CLIENT_EVENT_ENABLE_COMP

このイベントはカスタムプロファイルの Client Role の有効化の結果を通知する。

Parameters:

type

プロファイルイベントタイプ

発生したイベントの”(プロファイル名)_CLIENT_EVENT_ENABLE_COMP”が格納

される

status Client Role の有効化の結果

RBLE_OK がセットされる

conhdl コネクションハンドル

enable_comp_evt.

samc Server Role の GATT データベースの各ハンドル情報が格納された構造体

(プロファイル名)_CLIENT_EVENT_DISABLE_COMP

このイベントはカスタムプロファイルの Client Role の無効化の結果を通知する。

Parameters:

type

プロファイルイベントタイプ

発生したイベントの”(プロファイル名)_CLIENT_EVENT_DISABLE_COMP”が格納

される

status Client Role の無効化の結果

RBLE_OK がセットされる

conhdl

コネクションハンドル

本イベントが発生時にはコネクションは切断されているため、切断前に使用してい

たハンドルが格納される。

(プロファイル名)_CLIENT_EVENT_NTF_RECV

このイベントはカスタムプロファイルの Server からの Notification 結果を通知する。

Parameters:

type

プロファイルイベントタイプ

発生したイベントの”(プロファイル名)_CLIENT_EVENT_NTF _RECV”が格納さ

れる

status Server からの Notification 結果

conhdl コネクションハンドル

st_recv_char_evt.

char_hdl 特性値ハンドル

st_recv_char_evt.

recv_char_evt_val

Notification 受信データ格納構造体

構造体の構成は、対象となる特性値のフィールド設定に依存する。

Page 69: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 69 of 93

2017.11.22

(プロファイル名)_CLIENT_EVENT_IND_RECV

このイベントはカスタムプロファイルの Server からの Indication 結果を通知する。

Parameters:

type

プロファイルイベントタイプ

発生したイベントの”(プロファイル名)_CLIENT_EVENT_IND_RECV”が格納され

status Server からの Indication 結果

conhdl コネクションハンドル

st_recv_char_evt.

char_hdl 特性値ハンドル

st_recv_char_evt.

recv_char_evt_val

Indication 受信データ格納構造体

構造体の構成は、対象となる特性値のフィールド設定に依存する。

(プロファイル名)_CLIENT_EVENT_READ_CHAR_RESP

このイベントはカスタムプロファイルの Server の特性値の読み出し結果を通知する。

Parameters:

type

プロファイルイベントタイプ

発生したイベントの”(プロファイル名)_CLIENT_EVENT_READ_CHAR_RESP”が

格納される

status Server Role の特性値の読み出し結果

conhdl コネクションハンドル

st_recv_char_evt.

char_hdl 特性値ハンドル

st_recv_char_evt.

recv_char_evt_val

特性値の読み出しデータ格納構造体

構造体の構成は、対象となる特性値のフィールド設定に依存する。

(プロファイル名)_CLIENT_EVENT_WRITE_CHAR_RESP

このイベントはカスタムプロファイルの Server の特性値の書き込み結果を通知する。

Parameters:

type

プロファイルイベントタイプ

発生したイベントの”(プロファイル名)_CLIENT_EVENT_WRITE_CHAR_RESP”

が格納される

status

Server の特性値の書き込み結果

成功時: RBLE_OK

失敗時: RBLE_ATT_ERR_QUEUE_FULL(0x81) GATT データベース更新

キューが Full

conhdl コネクションハンドル

send_char_evt.

char_hdl 特性値ハンドル

Page 70: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 70 of 93

2017.11.22

10.2.3 Client Role のシーケンス図

Client Role 用関数の操作タイミング及び BLE ソフトウェア間で発生するイベントの発生タイミングを、以

下のシーケンス図に示します。なおシーケンス図中に記載の BLE ソフトウェアの API の詳細に関しては、関

連資料に記載の API リファレンスマニュアル 基本編の「7.2 Functions」を参照してください。

(1) 起動~接続の確立~(プロファイル名)_Client_Enable 関数の呼び出し

BLEスタックユーザアプリケーションカスタム

プロファイル

RBLE_GAP_EVENT_RESET_RESULT

RBLE_GAP_Reset()

RBLE_GAP_Device_Search()

RBLE_GAP_EVENT_DEVICE_SEARCH_RESULT_IND

ADV_IND

CONNECT_REQ

RBLE_GAP_EVENT_CONNECTION_COMP

(プロファイル名)_Client_Enable()RBLE_GATT_Enable()

(プロファイル名)_CLIENT_EVENT_ENABLE_COMP

接続の確立

Client Roleの有効化

RBLE_GAP_Create_Connection()

RBLE_GATT_Discovery_Service_Request()

Find By Type Value Request

Find By Type Value Response

RBLE_GATT_EVENT_DISC_SVC_BY_UUID_CMP

RBLE_GATT_EVENT_COMPLETE

RBLE_GATT_Discovery_Char_Request()

Read By Type Request

Read By Type Response

RBLE_GATT_EVENT_DISC_CHAR_ALL_CMP

16bit UUIDの場合

RBLE_GATT_EVENT_DISC_CHAR_ALL_128_CMP128bit UUIDの

場合

RBLE_GATT_EVENT_COMPLETE

RBLE_GATT_Discovery_Char_Descriptor_Request()

Find Information Request

Find Information Response

RBLE_GATT_EVENT_DISC_CHAR_DESC_CMP

RBLE_GATT_EVENT_COMPLETE

サービスの数だけ繰り返し

図 10-15 起動~接続の確立~(プロファイル名)_Client_Enable関数の呼び出し

Page 71: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 71 of 93

2017.11.22

(2) 接続の切断~(プロファイル名)_Client_Disable 関数の呼び出し

BLEスタックユーザアプリケーションカスタム

プロファイル

RBLE_GAP_DISCONNECT_COMP

RBLE_GATT_Disconnect()

LL ack

LL_TERMINATE_IND

(プロファイル名)_Client_Disable()

(プロファイル名)_CLIENT_EVENT_DISABLE_COMP

接続の切断

Client Roleの無効化

図 10-16 接続の切断~(プロファイル名)_Client_Disable関数の呼び出し

(3) (プロファイル名)_Client_SVR_Char_Read 関数の呼び出し

BLEスタックユーザアプリケーションカスタム

プロファイル

RBLE_GATT_EVENT_READ_CHAR_RESP

(プロファイル名)_Client_SVR_Char_Read()

Read Response

Read Request

(プロファイル名)_CLIENT_EVENT_READ_CHAR_RESP

RBLE_GATT_Read_Char_Request()

図 10-17 (プロファイル名)_Client_SVR_Char_Read関数の呼び出し

Page 72: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 72 of 93

2017.11.22

(4) (プロファイル名)_Client_SVR_Char_Write 関数の呼び出し(RBLE_GATT_WRITE_CHAR またはRBLE_GATT_WRITE_DESC の場合 成功時)

BLEスタックユーザアプリケーションカスタム

プロファイル

RBLE_GATT_EVENT_WRITE_CHAR_RESP

(プロファイル名)_Client_SVR_Char_Write()

Write Response

Write Request

(プロファイル名)_CLIENT_EVENT_WRITE_CHAR_RESP

RBLE_GATT_Write_Char_Request()

図 10-18 (プロファイル名)_Client_SVR_Char_Write関数の呼び出し(RBLE_GATT_WRITE_CHAR

または RBLE_GATT_WRITE_DESC の場合 成功時)

(5) (プロファイル名)_Client_SVR_Char_Write 関数の呼び出し(RBLE_GATT_WRITE_NO_RESPONSE の場合 成功時)

BLEスタックユーザアプリケーションカスタム

プロファイル

(プロファイル名)_Client_SVR_Char_Write()

Write Command(プロファイル名)_CLIENT_EVENT_WRITE_CHAR_RESP

RBLE_GATT_Write_Char_Request()

図 10-19 (プロファイル名)_Client_SVR_Char_Write関数の呼び出し

(RBLE_GATT_WRITE_NO_RESPONSE の場合 成功時)

(6) (プロファイル名)_CLIENT_EVENT_NTF_RECV イベントの発生

BLEスタックユーザアプリケーションカスタム

プロファイル

Handle Value Notification

(プロファイル名)_CLIENT_EVENT_NTF_RECV

RBLE_GATT_EVENT_HANDLE_VALUE_NOTIF

図 10-20 (プロファイル名)_CLIENT_EVENT_NTF_RECVイベントの発生

Page 73: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 73 of 93

2017.11.22

(7) (プロファイル名)_CLIENT_EVENT_IND_RECV イベントの発生

BLEスタックユーザアプリケーションカスタム

プロファイル

Handle Value Indication

(プロファイル名)_CLIENT_EVENT_IND_RECV

RBLE_GATT_EVENT_HANDLE_VALUE_IND

Handle Value Confirmation

図 10-21 (プロファイル名)_CLIENT_EVENT_IND_RECVイベントの発生

Page 74: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 74 of 93

2017.11.22

11. Appendix

11.1 ファイル・フォルダ構成

BDS プラグインに関連するファイル・フォルダ構成を以下に示します。

an_r20an0400jjXXXX_g1dbdsp

├ r20an0400jjXXXX_g1dbdsp.pdf Bluetooth Developer Studio プラグインマニュアル(本書)

└ BDS_Plugin BDSプラグイン格納フォルダ

├ Renesas_Client_X_X_X Client用 BDSプラグイン(注 1)

| ├ Plugin.js BDSプラグイン本体(Client用)

| ├ underscore.js Underscore JavaScript ライブラリ(注 2)

| ├ copy_cl_src.bat.template ファイルコピー用バッチファイルテンプレート

| ├ db_handle.h.template ┐

| ├ prf_config.c.template |

| ├ prf_config.h.template ├ Client用 BLEソフトウェア

| ├ prf_sel.h.template | テンプレートファイル

| ├ rble_sample_app_central.c.template |

| ├ rble_sample_app_central.h.template |

| ├ sam.h.template |

| ├ samc.c.template |

| └ samc.h.template ┘

└ Renesas_Server_X_X_X Server用 BDSプラグイン(注 1)

├ Plugin.js BDSプラグイン本体(Server用)

├ underscore.js Underscore JavaScript ライブラリ(注 2)

├ copy_sv_src.bat.template ファイルコピー用バッチファイルテンプレート

├ db_handle.h.template ┐

├ prf_config.c.template |

├ prf_config.h.template ├ Server用 BLEソフトウェア

├ prf_sel.h.template | テンプレートファイル

├ rble_sample_app_peripheral.c.template |

├ rble_sample_app_peripheral.h.template |

├ sam.h.template |

├ sams.c.template |

└ sams.h.template ┘

【注 1】 Xはバージョン番号

【注 2】 Underscore JavaScript ライブラリは Jeremy Ashkenas, DocumentCloud Inc.が開発した JavaScript ライブラリ

です。https://github.com/jashkenas/underscore/blob/master/LICENSE

図 11-1 ファイル・フォルダ構成

Page 75: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 75 of 93

2017.11.22

11.2 GATT データベース書き込み時のキューイング

Server Role が管理する GATT データベースは、同時にアクセスして GATT データベースの書き込み処理が

行われないようにキューイングして排他制御しています。キューに登録された GATT データベースの書き込

み処理要求は、先に書き込みを行っている処理が完了した時にキューから取り出されて実行されます。

GATT データベースの書き込み中にキューイングが発生する場合を以下に示します。以下の操作を 1つ実

行すると、1 つに付き 1個キューイングされます。

➢ (プロファイル名)_Server_Char_NtfInd()関数をコールして正常終了(RBLE_OK)した場合

➢ (プロファイル名)_Server_Set_Value()関数をコールして正常終了(RBLE_OK)した場合

➢ Client 側から特性値の書き込み要求があり(プロファイル名)_SERVER_EVENT_CHAR_WRITE_RESP

イベントが発生する場合

➢ Client 側から CCCD の書き込み要求があり(プロファイル名)_SERVER_EVENT_CCCD_WRITE イベン

トが発生する場合

GATT データベースの書き込み処理中に発生した書き込み処理要求は、最大で”QUEUE_MAX”で設定した

個数までキューイングされます。

キューイングの発生、及びキューイングされた GATT データベースへの書き込み処理が実行されるタイミ

ングについては、「11.3.1 Server Roleの内部シーケンス」を参照してください。

GATT データベースへの書き込み要求が同時に多数発生した場合、受け付けた順番にキューイングされま

す。しかし、QUEUE_MAX で定める以上の書き込み要求はキューイングされず、API はエラーとして

「RBLE_BUSY」が、Client 側からの書き込み要求は Response として「RBLE_ATT_ERR_QUEUE_FULL(0x81)」

が返却されます。この場合は Server Role 側の GATT データベースの書き込み処理が終わるのを待って、再度

書き込み要求を出すことで処理を行うことができます。

Server 側から同時に多数の Notify / Indicate を行う場合や、Client から GATT データベースの書き込み要求

が同時に多数発生する場合など、GATT データベースの書き込み要求が同時に多数発生する場合、その要求

を全て Server Role に受け付けさせたい場合には、マクロの値を増やすことで対応が可能となります。

Page 76: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 76 of 93

2017.11.22

11.3 内部シーケンス

11.3.1 Server Role の内部シーケンス

Server Role と BLE ソフトウェア間で発生する内部シーケンスを以下に示します。なお図中で”_”で始まる

記述は、先頭に「プロファイル名」が付随します。なおシーケンス図中に記載の BLE ソフトウェアの API

の詳細に関しては、関連資料に記載の APIリファレンスマニュアル 基本編の「7.2 Functions」を参照してく

ださい。

(1) (プロファイル名)_Server_Enable 動作フロー(“Notify”または”Indicate”属性がある場合)

RBLE_GATT_Enable()

_server_set_init_data()

BLEスタックユーザアプリケーションカスタム

プロファイル

_Server_Enable()

_server_set_cccd()

_server_set_data_queueing()

RBLE_GATT_Set_Data()

キューは初期状態は空のため、必ず処理を開始する。

RBLE_GATT_EVENT_SET_DATA_CMP

_server_set_data_cmp_handler()_server_gatt_callback()

_server_set_init_data()

_server_set_cccd()

_server_set_data_queueing()

RBLE_GATT_Set_Data()

::

RBLE_GATT_EVENT_SET_DATA_CMP CCCDの数だけ繰り返し初期化はcon_typeがRBLE_PRF_CON_NORMALでもRBLE_PRF_CON_DISCOVERYでも実施する。RBLE_GATT_EVENT_SET_DATA_CMP

_server_set_data_cmp_handler()_server_gatt_callback()

_server_set_init_data()

_SERVER_EVENT_ENABLE_COMP

RBLE_OK

_server_set_data()

_server_set_data()

_server_send_event()

info.callback()

図 11-2 (プロファイル名)_Server_Enable動作フロー(“Notify”または”Indicate”属性がある場合)

Page 77: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 77 of 93

2017.11.22

(2) (プロファイル名)_Server_Enable 動作フロー(“Notify”または”Indicate”属性がない場合)

RBLE_GATT_Enable()

_server_set_init_data()

BLEスタックユーザアプリケーションカスタム

プロファイル

_Server_Enable()

_SERVER_EVENT_ENABLE_COMP

_server_send_event()

info.callback()

図 11-3 (プロファイル名)_Server_Enable動作フロー(“Notify”または”Indicate”属性がない場合)

(3) (プロファイル名)_Server_Disable 動作フロー

BLEスタックユーザアプリケーションカスタム

プロファイル

info.callback()

info.state = _SERVER_STATE_IDLE

_SERVER_EVENT_DISABLE_COMP

RBLE_OK

_server_send_event()

_Server_Disable()

図 11-4 (プロファイル名)_Server_Disable動作フロー

Page 78: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 78 of 93

2017.11.22

(4) (プロファイル名)_Server_Set_Value 動作フロー(キュー空の場合)

BLEスタックユーザアプリケーションカスタム

プロファイル

_Server_Set_Value()_server_set_data_queueing()

RBLE_GATT_Set_Data()

RBLE_GATT_EVENT_SET_DATA_CMP

_server_set_data_cmp_handler()_server_gatt_callback()

_server_send_event()_SERVER_EVENT_CHAR_WRITE_RESPor

_SERVER_EVENT_CCCD_WRITE

RBLE_OK

info.callback()

now_set_data = TRUE

now_set_dataがTRUEの間は更新処理は全てキューイング

_server_set_data()

図 11-5 (プロファイル名)_Server_Set_Value動作フロー(キュー空の場合)

Page 79: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 79 of 93

2017.11.22

(5) (プロファイル名)_Server_Set_Value 動作フロー(キューデータ有りの場合)

BLEスタックユーザアプリケーションカスタム

プロファイル

_Server_Set_Value()_server_set_data_queueing()

キューイング

RBLE_GATT_EVENT_SET_DATA_CMP

_server_set_data_cmp_handler()_server_gatt_callback()

_server_send_event()

_SERVER_EVENT_SET_VALUE_COMP

RBLE_OK

info.callback()

キューに溜まっていた別の書き込み処理の結果イベント

キューイング数>0

_server_set_data_queue_read()

RBLE_GATT_Set_Data()

RBLE_GATT_EVENT_SET_DATA_CMP

_server_set_data_cmp_handler()_server_gatt_callback()

_server_send_event()_SERVER_EVENT_CHAR_WRITE_RESP

or_SERVER_EVENT_CCCD_WRITE info.callback()

_Server_Set_Value関数でコールした書き込み処理が完了した結果イベント

_Server_Set_Value()でキューイングした書き込み処理をキューからReadして処理開始

now_set_dataがTRUEなのでキューイング

キューイング数が0の場合はnow_set_data = FALSE

now_set_dataがTRUEの間は全てキューイング

_server_set_data()

図 11-6 (プロファイル名)_Server_Set_Value動作フロー(キューデータ有りの場合)

Page 80: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 80 of 93

2017.11.22

(6) (プロファイル名)_Server_Set_Value 動作フロー(キューFull の場合)

BLEスタックユーザアプリケーションカスタム

プロファイル

_Server_Set_Value()_server_set_data_queueing()

RBLE_BUSY キューFull

図 11-7 (プロファイル名)_Server_Set_Value動作フロー(キューFullの場合)

(7) (プロファイル名)_Server_Char_NtfInd 動作フロー(Ntf&キュー空の場合)

BLEスタックユーザアプリケーションカスタム

プロファイル

_Server_Char_NtfInd()_server_set_data_queueing()

RBLE_GATT_Set_Data()

RBLE_GATT_EVENT_SET_DATA_CMP

_server_set_data_cmp_handler()_server_gatt_callback()

RBLE_OK

TRUE==info.send_ntf_ind_server_notify_request()

RBLE_GATT_Notify_Request()

CCCDチェックしてNtfが許可されていたらコール

_SERVER_EVENT_NOTIFY_COMP

キューイング数==0

now_set_data = TRUE

キューイング数が0の時はnow_set_data = FALSE

now_set_dataがTRUEの間は全てキューイング

_server_gatt_callback()RBLE_GATT_EVENT_NOTIFY_COMP

_server_notify_comp_handler()

_server_send_event()

info.callback()

_server_set_data()

Handle Value Notification

図 11-8 (プロファイル名)_Server_Char_NtfInd動作フロー(Ntf&キュー空の場合)

Page 81: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 81 of 93

2017.11.22

(8) (プロファイル名)_Server_Char_NtfInd 動作フロー(Ntf&キューデータ有りの場合)

BLEスタックユーザアプリケーションカスタム

プロファイル

_Server_Char_NtfInd()_server_set_data_queueing()

RBLE_GATT_EVENT_SET_DATA_CMP_server_gatt_callback()

キューイング数>0 _server_set_data_queue_read()

RBLE_GATT_Set_Data()

RBLE_GATT_EVENT_SET_DATA_CMP

_server_set_data_cmp_handler()_server_gatt_callback()

Char_NtfIndで書き込み処理した項目が完了した結果イベント

キューイングRBLE_OK

Char_NtfIndでキューイングした書き込み処理をキューからRead

now_set_dataがTRUEなのでキューイング

now_set_dataがTRUEの間は全てキューイング

キューイング数が0の場合はnow_set_data = FALSE

TRUE==info.send_ntf_ind_server_notify_request()

RBLE_GATT_Notify_Request()

CCCDチェックしてNtfが許可されていたらコール

RBLE_GATT_EVENT_NOTIFY_COMP

_SERVER_EVENT_NOTIFY_COMP

_server_gatt_callback()_server_notify_comp_handler()

_server_send_event()

info.callback()

_server_set_data()

Handle Value Notification

_SERVER_EVENT_SET_VALUE_COMP

_server_set_data_cmp_handler()

_server_send_event()

info.callback()

キューに溜まっていた別の書き込み処理の結果イベント

図 11-9 (プロファイル名)_Server_Char_NtfInd動作フロー(Ntf&キューデータ有りの場合)

Page 82: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 82 of 93

2017.11.22

(9) (プロファイル名)_Server_Char_NtfInd 動作フロー(Ntf 不許可)

BLEスタックユーザアプリケーションカスタム

プロファイル

_Server_Char_NtfInd()_server_set_data_queueing()

RBLE_GATT_Set_Data()

RBLE_GATT_EVENT_SET_DATA_CMP

_server_set_data_cmp_handler()_server_gatt_callback()

RBLE_OK

TRUE==info.send_ntf_ind _server_notify_request()

CCCDチェックしてNtfが不許可

_SERVER_EVENT_NOTIFY_COMP(Error)

キューイング数>0

_server_set_data_queue_read()

RBLE_GATT_Set_Data()

キューに溜まっている書き込み処理をキューからReadして処理開始

now_set_data=TRUE

now_set_dataがTRUEの間は全てキューイング

キューイング数が0の場合はnow_set_data = FALSE

_server_set_data()

_server_set_data()

図 11-10 (プロファイル名)_Server_Char_NtfInd動作フロー(Ntf 不許可)

Page 83: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 83 of 93

2017.11.22

(10) (プロファイル名)_Server_Char_NtfInd 動作フロー(Ind&キュー空の場合)

BLEスタックユーザアプリケーションカスタム

プロファイル

_Server_Char_NtfInd()_server_set_data_queueing()

RBLE_GATT_Set_Data()

RBLE_GATT_EVENT_SET_DATA_CMP

_server_set_data_cmp_handler()_server_gatt_callback()

RBLE_OK

TRUE==info.send_ntf_ind _server_indicate_request()

RBLE_GATT_Indicate_Request()

CCCDチェックしてIndが許可されていたらコール

RBLE_GATT_EVENT_HANDLE_VALUE_CFM_server_gatt_callback()_server_handle_value_cfm_handler()

_server_send_event()

info.callback()_SERVER_EVENT_INDICATE_COMP

キューイング数==0

now_set_data = TRUE

now_set_dataがTRUEの間は全てキューイング

キューイング数が0の時はnow_set_data = FALSE

_server_set_data()

Handle Value Indication

Handle Value Confirmation

図 11-11 (プロファイル名)_Server_Char_NtfInd動作フロー(Ind&キュー空の場合)

Page 84: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 84 of 93

2017.11.22

(11) (プロファイル名)_Server_Char_NtfInd 動作フロー(Ind&キューデータ有りの場合)

BLEスタックユーザアプリケーションカスタム

プロファイル

_Server_Char_NtfInd()_server_set_data_queueing()

キューイング

RBLE_GATT_EVENT_SET_DATA_CMP

_server_set_data_cmp_handler()_server_gatt_callback()

_server_send_event()

_SERVER_EVENT_SET_VALUE_COMP

RBLE_OK

info.callback()

キューに溜まっていた別の書き込み処理の結果イベント

キューイング数>0

_server_set_data_queue_read()

RBLE_GATT_Set_Data()

RBLE_GATT_EVENT_SET_DATA_CMP

_server_set_data_cmp_handler()_server_gatt_callback()

TRUE==info.send_ntf_ind _server_indicate_request()

RBLE_GATT_Indicate_Request()

CCCDチェックしてIndが許可されていたらコール

RBLE_GATT_EVENT_HANDLE_VALUE_CFM_server_gatt_callback()_server_handle_value_cfm_handler()

_server_send_event()

info.callback()_SERVER_EVENT_INDICATE_COMP

キューイング数>0

_server_set_data_queue_read()

RBLE_GATT_Set_Data()

Char_NtfIndしてキューイングされた書き込み処理をキューからRead

キューに溜まっている次の書き込み処理をキューからReadして処理開始

now_set_dataがTRUEなのでキューイング

now_set_dataがTRUEの間は更新処理は全てキューイング

キューイング数が0の場合はnow_set_data = FALSE

_server_set_data()

_server_set_data()

Handle Value Indication

Handle Value Confirmation

図 11-12 (プロファイル名)_Server_Char_NtfInd動作フロー(Ind&キューデータ有りの場合)

Page 85: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 85 of 93

2017.11.22

(12) (プロファイル名)_Server_Char_NtfInd 動作フロー(Ind 不許可)

BLEスタックユーザアプリケーションカスタム

プロファイル

_Server_Char_NtfInd()_server_set_data_queueing()

RBLE_GATT_Set_Data()

RBLE_GATT_EVENT_SET_DATA_CMP

_server_set_data_cmp_handler()_server_gatt_callback()

RBLE_OK

TRUE==info.send_ntf_ind_server_indicate_request()

CCCDチェックしてIndが不許可

_SERVER_EVENT_INDICATE_COMP(Error)

キューイング数>0

_server_set_data_queue_read()

_server_set_data()

RBLE_GATT_Set_Data()

キューに溜まっている次の書き込み処理をキューからReadして処理開始

now_set_data=TRUE

now_set_dataがTRUEの間は全てキューイング

キューイング数が0の場合はnow_set_data = FALSE

_server_set_data()

図 11-13 (プロファイル名)_Server_Char_NtfInd動作フロー(Ind不許可)

(13) (プロファイル名)_Server_Char_NtfInd 動作フロー(キューFull の場合)

BLEスタックユーザアプリケーションカスタム

プロファイル

_Server_Char_NtfInd()_server_set_data_queueing()

RBLE_BUSY キューFull

図 11-14 (プロファイル名)_Server_Char_NtfInd動作フロー(キューFullの場合)

Page 86: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 86 of 93

2017.11.22

(14) RBLE_GATT_EVENT_WRITE_CMD_IND イベント発生時(キュー空の場合)

BLEスタックユーザアプリケーションカスタム

プロファイル

Write Request

RBLE_GATT_EVENT_WRITE_CMD_IND_server_gatt_callback()

_server_write_cmd_ind_handler()

_server_set_data_queueing()

RBLE_GATT_Set_Data()

RBLE_GATT_EVENT_SET_DATA_CMP

_server_set_data_cmp_handler()_server_gatt_callback()

_server_write_resp()

RBLE_GATT_Write_Response()

_server_send_event()_SERVER_EVENT_CHAR_WRITE_RESPor

_SERVER_EVENT_CCCD_WRITE info.callback()

Write Response

now_set_data = TRUE

now_set_dataがTRUEの間は全てキューイング

キューイング数が0の場合はnow_set_data = FALSE

_server_set_data()

図 11-15 RBLE_GATT_EVENT_WRITE_CMD_IND イベント発生時(キュー空の場合)

Page 87: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 87 of 93

2017.11.22

(15) RBLE_GATT_EVENT_WRITE_CMD_IND イベント発生時(キューデータ有りの場合)

BLEスタックユーザアプリケーションカスタム

プロファイル

Write RequestRBLE_GATT_EVENT_WRITE_CMD_IND

_server_gatt_callback()

_server_write_cmd_ind_handler()

_server_set_data_queueing()

RBLE_GATT_EVENT_SET_DATA_CMP

_server_set_data_cmp_handler()_server_gatt_callback()

_server_write_resp()

RBLE_GATT_Write_Response()

_server_send_event()_SERVER_EVENT_CHAR_WRITE_RESPor

_SERVER_EVENT_CCCD_WRITE info.callback()

Write Response

キューイング

RBLE_GATT_EVENT_SET_DATA_CMP

_server_set_data_cmp_handler()_server_gatt_callback()

_server_send_event()

_SERVER_EVENT_SET_VALUE_COMP info.callback()

キューに溜まっていた別の書き込み処理の結果イベント

キューイング数>0

_server_set_data_queue_read()

RBLE_GATT_Set_Data()

Clientからキューイングされた書き込み処理をキューからReadして更新処理開始

now_set_dataがTRUEなのでキューイング

now_set_dataがTRUEの間は更新処理は全てキューイング

キューイング数が0の場合はnow_set_data = FALSE

_server_set_data()

図 11-16 RBLE_GATT_EVENT_WRITE_CMD_IND イベント発生時(キューデータ有りの場合)

Page 88: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 88 of 93

2017.11.22

(16) RBLE_GATT_EVENT_WRITE_CMD_IND イベント発生時(キューFull の場合)

BLEスタックユーザアプリケーションカスタム

プロファイル

Write Request

RBLE_GATT_EVENT_WRITE_CMD_IND_server_gatt_callback()

_server_write_cmd_ind_handler()

_server_set_data_queueing()

Write Response(Error)

_server_write_resp()

RBLE_GATT_Write_Response()

キューFull

図 11-17 RBLE_GATT_EVENT_WRITE_CMD_IND イベント発生時(キューFullの場合)

Page 89: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 89 of 93

2017.11.22

11.3.2 Client Role の内部シーケンス

Client Role と BLE ソフトウェア間で発生する内部シーケンスを以下に示します。なお図中で”_”で始まる

記述は、先頭に「プロファイル名」が付随します。なおシーケンス図中に記載の BLE ソフトウェアの API

の詳細に関しては、関連資料に記載の APIリファレンスマニュアル 基本編の「7.2 Functions」を参照してく

ださい。

(1) (プロファイル名)_Client_Enable 動作フロー(RBLE_PRF_CON_DISCOVERY の場合)

RBLE_GATT_Enable()

_client_discovery_service_request()

BLEスタックユーザアプリケーションカスタム

プロファイル

_Client_Enable()

RBLE_GATT_Discovery_Service_Request()

RBLE_GATT_EVENT_DISC_SVC_BY_UUID_CMP_client_gatt_callback()

_client_complete_handler()

_client_discovery_char_request()

RBLE_GATT_Discovery_Char_Request()

::

RBLE_GATT_EVENT_DISC_CHAR_ALL_128_CMP

Serviceの数だけ繰り返し

_CLIENT_EVENT_ENABLE_COMP info[idx].callback()

RBLE_OK

RBLE_GATT_EVENT_COMPLETE_client_gatt_callback()

RBLE_GATT_EVENT_DISC_CHAR_ALL_CMP_client_gatt_callback()

_client_disc_char_all_cmp_handler()

_client_disc_svc_by_uuid_cmp_handler()

_client_disc_char_all_128_cmp_handler()

_client_complete_handler()

RBLE_GATT_EVENT_COMPLETE_client_gatt_callback()

_client_discovery_char_descriptor_request()

RBLE_GATT_Discovery_Char_Descriptor_Request()

RBLE_GATT_EVENT_DISC_CHAR_DESC_128_CMP

RBLE_GATT_EVENT_DISC_CHAR_DESC_CMP_client_gatt_callback()

_client_disc_char_desc_cmp_handler()

_client_disc_char_desc_128_cmp_handler()

RBLE_GATT_EVENT_COMPLETE_client_gatt_callback()

_client_complete_handler()

_client_discovery_service_request()

RBLE_GATT_Discovery_Service_Request()

RBLE_GATT_EVENT_COMPLETE_client_gatt_callback()

_client_complete_handler()

_client_send_event()

図 11-18 (プロファイル名)_Client_Enable動作フロー(RBLE_PRF_CON_DISCOVERY の場合)

Page 90: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 90 of 93

2017.11.22

(2) (プロファイル名)_Client_Enable 動作フロー(RBLE_PRF_CON_NORMAL の場合)

RBLE_GATT_Enable()

BLEスタックユーザアプリケーションカスタム

プロファイル

_Client_Enable()

_CLIENT_EVENT_ENABLE_COMP

図 11-19 (プロファイル名)_Client_Enable動作フロー(RBLE_PRF_CON_NORMALの場合)

(3) (プロファイル名)_Client_SVR_Char_Read 動作フロー

RBLE_GATT_Read_Char_Request()

BLEスタックユーザアプリケーションカスタム

プロファイル

_Client_SVR_Char_Read()

RBLE_GATT_EVENT_READ_CHAR_RESP_client_gatt_callback()

_CLIENT_EVENT_READ_CHAR_RESP info[idx].callback()

RBLE_OK

_client_read_char_resp_handler()

Read Request

Read Response

_client_send_event()

図 11-20 (プロファイル名)_Client_SVR_Char_Read動作フロー

Page 91: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 91 of 93

2017.11.22

(4) (プロファイル名)_Client_SVR_Char_Write 動作フロー(Write)

RBLE_GATT_Write_Char_Request()

BLEスタックユーザアプリケーションカスタム

プロファイル

_Client_SVR_Char_Write()

RBLE_GATT_EVENT_WRITE_CHAR_RESP_client_gatt_callback()

_CLIENT_EVENT_WRITE_CHAR_RESP info[idx].callback()

RBLE_OK

_client_write_char_resp_handler()

Write Request

Write Response

_client_send_event()

図 11-21 (プロファイル名)_Client_SVR_Char_Write動作フロー(Write)

(5) (プロファイル名)_Client_SVR_Char_Write 動作フロー(Write without Response)

RBLE_GATT_Write_Char_Request()

BLEスタックユーザアプリケーションカスタム

プロファイル

_Client_SVR_Char_Write()

RBLE_OK

Write Command_CLIENT_EVENT_WRITE_CHAR_RESP

図 11-22 (プロファイル名)_Client_SVR_Char_Write動作フロー(Write without Response)

Page 92: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 92 of 93

2017.11.22

(6) RBLE_GATT_EVENT_HANDLE_VALUE_NOTIF イベント発生時動作フロー

BLEスタックユーザアプリケーションカスタム

プロファイル

RBLE_GATT_EVENT_HANDLE_VALUE_NOTIF_client_gatt_callback()

_CLIENT_EVENT_NTF_RECV info[idx].callback()

_client_handle_value_notif_handler()

Handle Value Notification

_client_send_event()

図 11-23 RBLE_GATT_EVENT_HANDLE_VALUE_NOTIFイベント発生時動作フロー

(7) RBLE_GATT_EVENT_HANDLE_VALUE_IND イベント発生時動作フロー

BLEスタックユーザアプリケーションカスタム

プロファイル

RBLE_GATT_EVENT_HANDLE_VALUE_IND_client_gatt_callback()

_CLIENT_EVENT_IND_RECV info[idx].callback()

_client_handle_value_indicate_handler()

Handle Value Indication

Handle Value Confirmation

_client_send_event()

図 11-24 RBLE_GATT_EVENT_HANDLE_VALUE_IND イベント発生時動作フロー

Page 93: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン

R20AN0400JJ0201 Rev.2.01 Page 93 of 93

2017.11.22

ホームページとサポート窓口

ルネサス エレクトロニクスホームページ

http://japan.renesas.com/

お問合せ先

http://japan.renesas.com/contact/

すべての商標および登録商標は,それぞれの所有者に帰属します。

Page 94: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

A-1

改訂記録

Rev. 発行日

改訂内容

ページ ポイント

1.00 2015/12/10 - 初版発行

1.01 2016/05/09 - Custom Profile(Server Role)対応内容を追記

1.02 2016/06/23 - Custom Profile (Client Role)対応内容を追記

2.00 2017/08/31 - Ver2.00 として全面改定

ユーザが BLE ソフトウェアを用いた開発を容易にするため、ア

プリケーション及びカスタムプロファイルの API をシンプルに

実装する仕様としてまとめた。

2.01 2017/11/22 - Ver2.01 発行。

P.19 「表 7-4 フィールドの"FORMAT"設定と出力される変数型一

覧」から、BDS の仕様変更により「SINT40」を削除。

Page 95: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

製品ご使用上の注意事項

ここでは、マイコン製品全体に適用する「使用上の注意事項」について説明します。個別の使用上の注意

事項については、本ドキュメントおよびテクニカルアップデートを参照してください。

1. 未使用端子の処理

【注意】未使用端子は、本文の「未使用端子の処理」に従って処理してください。

CMOS 製品の入力端子のインピーダンスは、一般に、ハイインピーダンスとなっています。未使用

端子を開放状態で動作させると、誘導現象により、LSI 周辺のノイズが印加され、LSI 内部で貫通電

流が流れたり、入力信号と認識されて誤動作を起こす恐れがあります。未使用端子は、本文「未使用

端子の処理」で説明する指示に従い処理してください。

2. 電源投入時の処置

【注意】電源投入時は,製品の状態は不定です。

電源投入時には、LSI の内部回路の状態は不確定であり、レジスタの設定や各端子の状態は不定で

す。

外部リセット端子でリセットする製品の場合、電源投入からリセットが有効になるまでの期間、端子

の状態は保証できません。

同様に、内蔵パワーオンリセット機能を使用してリセットする製品の場合、電源投入からリセットの

かかる一定電圧に達するまでの期間、端子の状態は保証できません。

3. リザーブアドレス(予約領域)のアクセス禁止

【注意】リザーブアドレス(予約領域)のアクセスを禁止します。

アドレス領域には、将来の機能拡張用に割り付けられているリザーブアドレス(予約領域)がありま

す。これらのアドレスをアクセスしたときの動作については、保証できませんので、アクセスしない

ようにしてください。

4. クロックについて

【注意】リセット時は、クロックが安定した後、リセットを解除してください。

プログラム実行中のクロック切り替え時は、切り替え先クロックが安定した後に切り替えてくださ

い。

リセット時、外部発振子(または外部発振回路)を用いたクロックで動作を開始するシステムでは、

クロックが十分安定した後、リセットを解除してください。また、プログラムの途中で外部発振子

(または外部発振回路)を用いたクロックに切り替える場合は、切り替え先のクロックが十分安定し

てから切り替えてください。

5. 製品間の相違について

【注意】型名の異なる製品に変更する場合は、製品型名ごとにシステム評価試験を実施してくださ

い。

同じグループのマイコンでも型名が違うと、内部 ROM、レイアウトパターンの相違などにより、電

気的特性の範囲で、特性値、動作マージン、ノイズ耐量、ノイズ輻射量などが異なる場合がありま

す。型名が違う製品に変更する場合は、個々の製品ごとにシステム評価試験を実施してください。

Page 96: Bluetooth Low Energyプロトコルスタック - Renesas …...Bluetooth® Low Energyプロトコルスタック Bluetooth Developer Studioプラグイン R20AN0400JJ0201 Rev.2.01

■営業お問合せ窓口

■技術的なお問合せおよび資料のご請求は下記へどうぞ。 総合お問合せ窓口:https://www.renesas.com/contact/

ルネサス エレクトロニクス株式会社 〒135-0061 東京都江東区豊洲3-2-24(豊洲フォレシア)

© 2017 Renesas Electronics Corporation. All rights reserved.

Colophon 4.1

http://www.renesas.com※営業お問合せ窓口の住所は変更になることがあります。最新情報につきましては、弊社ホームページをご覧ください。

ご注意書き

1. 本資料に記載された回路、ソフトウェアおよびこれらに関連する情報は、半導体製品の動作例、応用例を説明するものです。お客様の機器・システムの設計におい

て、回路、ソフトウェアおよびこれらに関連する情報を使用する場合には、お客様の責任において行ってください。これらの使用に起因して、お客様または第三

者に生じた損害に関し、当社は、一切その責任を負いません。

2. 本資料に記載されている情報は、正確を期すため慎重に作成したものですが、誤りがないことを保証するものではありません。万一、本資料に記載されている情報

の誤りに起因する損害がお客様に生じた場合においても、当社は、一切その責任を負いません。

3. 本資料に記載された製品デ-タ、図、表、プログラム、アルゴリズム、応用回路例等の情報の使用に起因して発生した第三者の特許権、著作権その他の知的財産権

に対する侵害に関し、当社は、何らの責任を負うものではありません。当社は、本資料に基づき当社または第三者の特許権、著作権その他の知的財産権を何ら許

諾するものではありません。

4. 当社製品を改造、改変、複製等しないでください。かかる改造、改変、複製等により生じた損害に関し、当社は、一切その責任を負いません。

5. 当社は、当社製品の品質水準を「標準水準」および「高品質水準」に分類しており、

各品質水準は、以下に示す用途に製品が使用されることを意図しております。

標準水準: コンピュータ、OA機器、通信機器、計測機器、AV機器、

家電、工作機械、パーソナル機器、産業用ロボット等

高品質水準:輸送機器(自動車、電車、船舶等)、交通用信号機器、

防災・防犯装置、各種安全装置等

当社製品は、直接生命・身体に危害を及ぼす可能性のある機器・システム(生命維持装置、人体に埋め込み使用するもの等) 、もしくは多大な物的損害を発生さ

せるおそれのある機器・システム(原子力制御システム、軍事機器等)に使用されることを意図しておらず、使用することはできません。 たとえ、意図しない用

途に当社製品を使用したことによりお客様または第三者に損害が生じても、当社は一切その責任を負いません。 なお、ご不明点がある場合は、当社営業にお問い

合わせください。

6. 当社製品をご使用の際は、当社が指定する最大定格、動作電源電圧範囲、放熱特性、実装条件その他の保証範囲内でご使用ください。当社保証範囲を超えて当社製

品をご使用された場合の故障および事故につきましては、当社は、一切その責任を負いません。

7. 当社は、当社製品の品質および信頼性の向上に努めていますが、半導体製品はある確率で故障が発生したり、使用条件によっては誤動作したりする場合がありま

す。また、当社製品は耐放射線設計については行っておりません。当社製品の故障または誤動作が生じた場合も、人身事故、火災事故、社会的損害等を生じさせ

ないよう、お客様の責任において、冗長設計、延焼対策設計、誤動作防止設計等の安全設計およびエージング処理等、お客様の機器・システムとしての出荷保証

を行ってください。特に、マイコンソフトウェアは、単独での検証は困難なため、お客様の機器・システムとしての安全検証をお客様の責任で行ってください。

8. 当社製品の環境適合性等の詳細につきましては、製品個別に必ず当社営業窓口までお問合せください。ご使用に際しては、特定の物質の含有・使用を規制する

RoHS指令等、適用される環境関連法令を十分調査のうえ、かかる法令に適合するようご使用ください。お客様がかかる法令を遵守しないことにより生じた損害に

関して、当社は、一切その責任を負いません。

9. 本資料に記載されている当社製品および技術を国内外の法令および規則により製造・使用・販売を禁止されている機器・システムに使用することはできません。ま

た、当社製品および技術を大量破壊兵器の開発等の目的、軍事利用の目的その他軍事用途に使用しないでください。当社製品または技術を輸出する場合は、「外

国為替及び外国貿易法」その他輸出関連法令を遵守し、かかる法令の定めるところにより必要な手続を行ってください。

10. お客様の転売等により、本ご注意書き記載の諸条件に抵触して当社製品が使用され、その使用から損害が生じた場合、当社は何らの責任も負わず、お客様にてご負

担して頂きますのでご了承ください。

11. 本資料の全部または一部を当社の文書による事前の承諾を得ることなく転載または複製することを禁じます。

注1. 本資料において使用されている「当社」とは、ルネサス エレクトロニクス株式会社およびルネサス エレクトロニクス株式会社がその総株主の議決権の過半数

を直接または間接に保有する会社をいいます。

注2. 本資料において使用されている「当社製品」とは、注1において定義された当社の開発、製造製品をいいます。