ブロックに接続する
MESH ブロックに接続し、コマンドの送信や通知の受信を行うまでの流れについて説明します。
周囲の MESH ブロックをスキャンして接続する場合
接続したい MESH ブロックの電源を入れてから、MESH ブロックの発見にあるアドバタイズ情報を元に、スキャンおよび接続してください。
-
スキャンした周辺のデバイス一覧からブロックを識別するには、「Complete local name」が 17 文字で、かつ「MESH-100」から始まっているものを指定してください。
厳格に識別する場合は、アクティブスキャンを行い、上記に加えて 128-bit Service Class UUIDs に「72c90001-57a9-4d40-b746-534e22ec9f9e」が含まれていることも確認してください。 -
本ドキュメントの対象外となるソフトウェアバージョン 1.2.5 未満のブロックと区別するには、ソフトウェアバージョン 1.2.5 からアドバタイズ情報に追加された Manufacturer specific data の有無を確認してください。
厳格に識別する場合は、Manufacturer specific data が「0x2D 0x01 0x17 0x00」から始まっていることを確認してください。データが存在しても先頭がこの値ではない場合、MESHブロックではないものとして扱って問題ありません。アップデートによりに後続データを追加する可能性があるため、データ長での識別は非推奨です。 -
接続時にボンディングは不要です。
-
ブロックソフトウェアのアップデート中の MESH ブロックは本ドキュメントの対象外です。
MESH ブロックの MAC アドレスを指定して接続する場合
MESH ブロック一つ一つに、アドバタイズに使用される MAC アドレスがランダムに割り当てられています。このアドレスはブロックの電源を切っても変化しないため、MAC アドレスを指定して接続することができます。各ブロックの MAC アドレスはスキャンまたは接続して確認してください。
接続後の初期通信シーケンス
MESHブロックの機能を利用するには、最初に初期通信シーケンスに従って通信してください。通信仕様の概要を参照し、以下の各手順を順番に行います。
1. Indicate、Notify の有効化
Indicate、Notify を有効化します。有効になると、Indicate にブロックの基本情報がバイト列として通告されます。バイト列の各バイトの解釈は、コマンドフレームおよび全ブロック共通より、以下の表のとおりです。その後ヘルスチェック情報なども通告されますが、使用しないため無視してください。
例えば、シリアルナンバー 1012700(0x000F73DC) のボタンブロックと接続すると、Indicate には「0x000202DC730F000102050107490009C4」が通知されます。シリアルナンバーはリトルエンディアンなので、シリアルナンバーの 16 進数表記 0x000F73DC に対して、0xDC、0x73、0x0F、0x00 の逆順に並びます。
ブロック基本情報通知
|
データ位置 |
内容 |
例(下線 は固定値) |
---|---|---|---|
ヘッダ |
0 |
0x00 |
|
|
1 |
0x02(固定値) |
|
データ |
2 |
ブロックの種類 |
0x02(ボタン) |
|
3 |
シリアルナンバー(0 ~ 7 bit) |
0xDC |
|
4 |
シリアルナンバー(8 ~ 15 bit) |
0x73 |
|
5 |
シリアルナンバー(16 ~ 23 bit) |
0x0F |
|
6 |
シリアルナンバー(24 ~ 31 bit) |
0x00 |
|
7 |
ブロックソフトウェアのメジャーバージョン(バージョン x.y.z の場合、x) |
0x01 |
|
8 |
ブロックソフトウェアのマイナーバージョン(バージョン x.y.z の場合、y) |
0x02 |
|
9 |
ブロックソフトウェアのリリース番号(バージョン x.y.z の場合、z) |
0x05 |
|
10 |
使用しません |
- |
|
11 |
使用しません |
- |
|
12 |
使用しません |
- |
|
13 |
使用しません |
- |
|
14 |
バッテリーレベル |
0x09(90 %) |
チェックサム |
15(最終データ) |
0xC4 |
2. ブロック機能の有効化
MESH ブロックに「0x00020103」を書き込み、設定したブロックの機能を有効化します。コマンドフレームの内容は以下のとおりです。
ブロック機能の有効化
|
データ位置 |
内容 |
例(下線 は固定値) |
---|---|---|---|
ヘッダ |
0 |
0x00(共通機能) |
|
|
1 |
0x02(固定値) |
|
データ |
2 |
ブロック機能の有効/無効 |
0x01(有効化) |
チェックサム |
3(最終データ) |
0x03 |
3. 初期設定完了
以上で初期シーケンスは完了です。以降は MESH ブロックとの通信が可能になります。具体的な通信方法は各ブロックの通信仕様を確認してください。
4. ブロック機能のパラメータ設定(オプション)
必要に応じて接続したブロックの機能やパラメータの初期設定が可能です。具体的な通信方法は各ブロックの通信仕様を確認してください。