パブリックサービスのキャラクタリスティックの値の書き込み

解説

サービスのキャラクタリスティックの値の書き込みについてまとめます。

ここでは、パブリックサービスの「バッテリーサービス」のキャラクタリスティック「バッテリーレベル」の値を書き込みます。

関連コマンド解説

キャラクタリスティックの値の書き込み「SUW」

「SUW,<UUID>,<値>」※でキャラクタリスティックの値を書き込みます。


<UUID>は、キャラクタリスティックのUUIDの16進数値です。UUID は、パブリック キャラクタリスティックの場合は16 ビットの短いUUID(16進数表現で4桁)、プライベート キャラクタリスティックの場合は128ビットの長いUUID(16進数表現で32桁)です。
<値>は、書き込む値です。

詳細は、「RN4020 Bluetooth® Low Energy モジュール ユーザガイド」の「SUW」コマンドの説明を参照。

「バッテリーサービス」のキャラクタリスティック「バッテリーレベル」の値を書き込むコマンドは以下のようになります。
「バッテリーレベル」のUUIDは、「0x2A19」です。
書き込む値は、16進数値で書き込みます。例えば10進数の10は「0x0A」、10進数の50は「0x32」、10進数の100は「0x64」です。

10進数の10を書き込む場合は、「SUW,2A19,0A」と入力します。
10進数の20を書き込む場合は、「SUW,2A19,32」と入力します。
10進数の100を書き込む場合は、「SUW,2A19,64」と入力します。

ターミナルソフトからのコマンド送信とAndroidアプリで値の確認

サポートサービスの設定

パブリックサービスのサポートサービスの設定」に従い、「バッテリーサービス」をサポートするように設定します。

AndroidアプリでBLE通信し、バッテリーレベルの値を確認

パブリックサービスのサポートサービスの設定」に従い、Androidアプリ「BLE Scanner: Read,Write,Notify」で、「バッテリーレベル」の値を確認します。
「バッテリーレベル」の値として、「Value:0% battery level」と表示されます。

ターミナルソフトでキャラクタリスティックの値の書き込み

SUW,2A19,0A」と入力し、エンターキーを押します。
コマンドが正しく実行されると、画面に「AOK」と表示されます。

Androidアプリで値が書き換わっていることの確認

Androidアプリ「BLE Scanner: Read,Write,Notify」の「BATTARY LEVEL」の右の「R」ボタンをタップします。
「バッテリーレベル」の値として、「Value:10% battery level」と、バッテリーレベルの値が書き換わります。

Androidアプリで値の自動更新

Bluetooth Low Energyには、キャラクタリスティックが書き換えられて,値が変更された時にその通知を受け取れる仕組みがあります。この仕組みをノーティファイ(Notify)と呼びます。ノーティファイを用いると値が自動更新されます。

ノティファイの有効化

Androidアプリ「BLE Scanner: Read,Write,Notify」の「BATTARY LEVEL」の右の「R」ボタンではなく、「N」ボタンをタップします。


「Notify」を有効にすると、「N」ボタンが緑色になります。

ターミナルソフトからのキャラクタリスティックの値の書き込み

SUW,2A19,32」と入力し、エンターキーを押します。
コマンドが正しく実行されると、画面に「AOK」と表示されます。

Androidアプリで値の自動更新

ノーティファイを有効にしているので、
「バッテリーレベル」の値が、「Value:50% battery level」と、自動更新されます。



以上で、パブリックサービスのキャラクタリスティックの値の書き込みと確認ができました。

関連ページ

前項目:パブリックサービスのサポートサービスの設定