4月 252017
 

REX-SEEK2が持つアトリビュート/属性データについて

先の「REX-SEEK2について」でプロファイルにはいくつかのサービスが提供されている
ことを説明しましたが、各サービスの中で定義されているCharacteristicにアクセスすることで
BLEデバイスの情報を読み出したり、BLEデバイスを制御することが可能となります。

以下は、REX-SEEK2が持つCharacteristicの一部で、今回の説明で使用するデータになります。
いくつかのサービスをグループ化したものもサービスと呼び、グループ化したサービス自体も
UUIDを持ちます。
以下では、グループ化したサービス自体のUUIDは「Serive UUID」、個々のCharacteristic
のサービスを「Characteristic UUID」と表しています。

Service:Generic Access Service / Service UUID: 0x180A
これは、GATTで定義されているデータで、その一部です。

Servcie Characteristic UUID Properties Value
Firmware Version 0x2A26 Read ファームウェアのバージョン(文字列)
Ver.X.X.X

Service:SEEK Vender Service / Service UUID: 0x1523
これは、ベンダーユニークとして定義されているデータで、その一部です。

Servcie Characteristic UUID Properties Value
Set LED & Buzzer Mode 0x1525 Read/Write LED/Buzzerの有効無効設定
 Bit  意味
━━━ ━━━━━━━━━━━━━━━━
7~3 未使用
 2  1: Buzzer有効 0: Buzzer無効
 1  1: 赤LED 有効 0: 赤LED 無効
 0  1: 緑LED 有効 0: 緑LED 無効
Set Alert Time 0x1526 Read/Write アラート時間の設定 (sec)
デフォルト:15 (sec)
Start/Stop LED & Buzzer 0x1527 Write LED/Buzzerの動作開始と停止
0x00 – 動作中断
0x06 – アラートモード:ブザーと赤LEDを動作
0x05 – 通知モード:ブザーと緑LEDを動作

クライアント側では、このオブジェクト(UUID)に対するアクセスをハンドル番号という0x0000から0xffffの値
で管理しています。
このため、あらかじめ各サービスのUUIDに対応するハンドル番号を取得しておく必要があります。

ハンドル番号の取得

REX-SEEK2の各アトリビュートの UUIDに対応するハンドル番号を取得するために
gatttool を使って – – char-desc コマンドでCharacteristicをスキャンします。

書式

sudo gatttool -b C5:E6:B7:56:05:42 -t random --char-desc
コマンド –char-desc Characteristicのスキャン
オプション -b C5:E6:B7:56:05:42 対象とするREX-SEEK2のデバイスアドレスを指定
-t random LEアドレスをランダムに指定にする

REX-SEEK2が持つアトリビュートのUUIDとハンドル番号の組合せが上記のように表示されます。
UUIDの5桁目から8桁目が16ビットのUUIDとなります。

上記の結果から今回の説明で使用するデータのUUIDとそれに対するハンドル番号が以下である
ことがわかります。

Handle/ハンドル 16ビット UUID Service/サービス
0x000f 0x2A26 Firmware Version
ファームウェアバージョン
0x001e 0x1525 Set LED & Buzzer Mode
LED点灯とブザーの有効無効の設定
0x0020 0x1526 Set Alert Time
アラーム時間の設定
0x0022 0x1527 Start/Stop LED & Buzzer

アトリビュート/属性データの取得

目的とするアトリビュートのハンドル番号が取得できたら、このハンドル番号を使って
Characteristicの値を取得します。
gatttool を使って – – char-read コマンドでCharacteristicの値を読み出します。

書式

sudo gatttool -b C5:E6:B7:56:05:42 -t random --char-read -a 0x0f
コマンド –char-read キャラクタリスティックの値を取得
オプション -b C5:E6:B7:56:05:42 対象とするREX-SEEK2のデバイスアドレスを指定
-t random LEアドレスをランダムに指定にする
-a 0x0f UUID「0x2A26」のハンドル番号「0x0f」を指定

実行例

~ $ sudo gatttool -b C5:E6:B7:56:05:42 -t random --char-read -a 0x000f
Characteristic value/descriptor: 56 65 72 2e 31 2e 31 2e 31

ここでは、REX-SEEK2のファームウェアのバージョンが文字列 [Ver.1.1.1] として取得されています。

書式

sudo gatttool -b C5:E6:B7:56:05:42 -t random --char-read -a 0x1e
コマンド –char-read Characteristicの値を取得
オプション -b C5:E6:B7:56:05:42 対象とするREX-SEEK2のデバイスアドレスを指定
-t random LEアドレスをランダムに指定にする
-a 0x1e UUID「0x1525」のハンドル番号「0x1e」を指定

実行例

~ $ sudo gatttool -b C5:E6:B7:56:05:42 -t random --char-read -a 0x001e
Characteristic value/descriptor: 07

ここでは、REX-SEEK2のLED/Buzzerの有効無効設定「07」として取得され、Buzzer有効、赤LED 有効、
緑LED 有効 を表しています。

ブザーを鳴らす、LEDを点灯させる

REX-SEEK2のブザーを鳴らすとかLEDを点滅させるといった操作は、Characteristicにデータを
書込むことで行えます。

ブザーとLED制御のための 16ビットUUID は [0x1527] でハンドル番号は [0x0022] になります。

Characteristicに書込むデータとその動作は以下のとおりです。

データ 動作
0x00 動作中断
0x06 アラートモード:ブザーと赤LEDを動作
0x05 通知モード:ブザーと緑LEDを動作

gatttool を使って – – char-write コマンドで対象のCharacteristicにデータを書き込みます。

書式

sudo gatttool -b C5:E6:B7:56:05:42 -t random --char-write -a 0x22 -n 05
コマンド –char-write Characteristicの値を設定
オプション -b C5:E6:B7:56:05:42 REX-SEEK2のデバイスアドレスを指定
-t random LEアドレスをランダムに指定にする
-a 0x22 UUID「0x1527」のハンドル番号「0x22」を指定
-n XX 設定する値を指定

具体的には以下のようになります。

■ブザーを鳴らして緑LEDを点滅させるために、「05」を設定します。

sudo gatttool -b C5:E6:B7:56:05:42 -t random --char-write -a 0x22 -n 05

ブザーが鳴り、緑LEDが点滅します。

■ブザーを鳴らして赤LEDを点滅させるために、「06」を設定します。

sudo gatttool -b C5:E6:B7:56:05:42 -t random --char-write -a 0x22 -n 06

ブザーが鳴り、赤LEDが点滅します。

■ブザーを止めてLEDを消灯させるために、「06」を設定します。

sudo gatttool -b C5:E6:B7:56:05:42 -t random --char-write -a 0x22 -n 00

ブザーが止まり、LEDが消灯します。

以上が、REX-SEEK2に対するアトリビュート/属性データの取得および設定方法です。

今回は、REX-SEEK2をラズパイから制御する方法として、デバイスアドレスの取得、
設定情報の取得、ブザーを鳴らす、LEDを点灯させる と説明してきました。

最後に、今回紹介しているREX-SEEK2 の機能を応用し呼出タグとして使用している商品を紹介します。

ナンバー呼出表示システム「Vango(バンゴ)」4月下旬出荷開始


ナンバー呼出表示システム「Vango(バンゴ)」は、既存のサイネージシステムやテレビに
番号呼出機能を追加し、診療所や受付窓口などの呼び出し改善を図ります。
テレビへの表示ほか、スピーカーや呼出タグによる「音」での呼び出しにも対応できます。
呼び出し操作は、タブレットやパソコンからWebブラウザーから行えます。
また、これまでの紛失防止タグやBeaconといったBluetoothタグの開発実績を活かし、
番号呼び出し時に対象者の手元へ通知するための呼出タグもオプションとして用意しています。

「Vango」の詳しい製品情報は以下のサイトをご覧ください。
ナンバー呼出表示システム (HDMI入力モデル)
ナンバー呼出表示システム (テレビ放送切替モデル)

※ REX-SEEK2等のBLEタグを利用したシステム開発のご相談は⇒法人様からのお問い合わせ

次回以降も引き続き REX-SESEK2をラズパイから制御する方法として「通知の読み取り」「距離の判定」
の説明を予定しています。

ラズパイでREX-SEEK2 Bluetooth+LE対応 紛失防止タグを使う(その2)」に続く…


ラズパイ対応製品の紹介

REX-SEEK2製品画像
REX-SEEK2 Bluetooth+LE対応 紛失防止タグ

RAL-KCM3MB1製品画像
RAL-KCM3MB1 - Raspberry Pi CM3対応キャリアボード

REX-USB60F製品画像
REX-USB60F - USBシリアルコンバータ

REX-BT60製品画像
REX-BT60 - Bluetooth RS-232C変換アダプター


REX-USB70 - USB to RS-485 Converter

  1 コメント

 返信する

以下のHTML タグと属性が利用できます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(必須)

(必須)

*