■ RBT-001をピコネットに明示的に参加させる場合について
RBT-001は別のBluetooth搭載機器が近接した時、端末間で動的にピコネットが形成されます。 1つのピコネットでは最大8台の機器がピコネットに参加できます。 この中で、機器間の通信を指揮する役割を担うのがピコネットマスタで、それ以外はスレーブデバイスとなります。RBT-001はこのピコネットマスタにもスレーブデバイスにもなれます。(但し下記のような条件があります。)
通常、Bluetooth通信をする時どの端末がマスタでどの端末がスレーブかをユーザーが意識する必要はありません。なぜならばピコネットマスタは周波数ホッピングの決定などをしますが、仮にそのマスタがピコネットから抜けたとしても別の機器がマスタに成り代わり通信の指揮をとるためです。普通Bluetooth通信をする場合どの機器がマスタかスレーブなのか意識する必要性がありません。
但し、どうしても明示的にマスター機器になりたい場合には次のような条件の時にのみ、ピコネットマスタになることが可能です。
RBT-001がピコネットマスターになるには必ず、RBT-001同士で通信をする場合で、送受信データ(コマンド以外の実データ)がコマンドモードにてSPP_SEND_DATA(0x0F)コマンドを使用してUARTフレームパケット内通信をするという条件でなければなりません。トランスペアレントモードに以降すると、ピコネットのメンバでなくなるため条件を満たさなくなります。なぜならば、トランスペアレントモードを実行している場合にはRBT-001はリモートデバイスと1対1での通信となり、別のデバイスがそのネットワークに参加できないためです。(ピコネットというのは1対N通信(N<8)の場合だけです。)トランスペアレントモードは1対1で通信するモードですのでこの場合は、トランスペアレントマスターと言います。特にRBT-001がパソコンやタブレット端末等仮想COMポートにて通信するものについてはすべてトランスペアレントモードでの通信となるためピコネットにはなり得ません。
次の要件のいずれかを満たす時、そのRBT-001はピコネットマスタになったといえます。
A.コマンドモードにて動作時に自機から次のコマンドを使って1つ又は複数のリンクを確立した時 ---SPP_ESTABLISH_LINK ---CONNECT TO DEFAULT CONNECTION ---デフォルトコネクションで自動的に電源ON時に接続されたリンク
B."Force Master Role"の設定が、不揮発性メモリ内で0x01の有効に設定されている時に、リモートデバイス(他機)からリンク接続要求(インカミングリンク)が来た時
リモートデバイスとの通信が確立した時、上記の要件を満たしピコネットのメンバになっていれば、RBT-001はコマンドモードの状態を維持しています。(トランスペアレントモードに移行していない)
なお、あるRBT-001がピコネットマスタだった時、その機器には最大7台の接続がサポートされます。
------------------------------------ Force Master Roleについて
Force Master Roleの設定はNVS(不揮発性メモリ)に記憶されます。設定後は再起動又はリセット後のみ初期化されます。もしForce Masterが有効の時に他のRBT-001デバイスからの接続要求(インカミングリンク)があった時、RBT-001はピコネットのマスターになろうとします。(自機からのSPP_ESTABLISH_LINKによるリンク確立要求の場合にはForce Master Roleを無視するならば、通常は確立を要求した側、すなわちSPP_ESTABLISH_LINKを発行した側の機器がマスタとなります。)この時、Force Master Roleが0x01すなわちForce Masterが有効のRBT-001はリンク確立後にリモートデバイスに対して、マスターとスレーブの入れ替え要求を送ります。もしこの入れ替えが成功した場合には、リモートデバイスとのリンク接続は確立した状態を維持し、さらに別のRBT-001の接続を受け入れます。 もし、何らかの理由でリモートデバイスがForce Master有効のデバイスに対してマスターになることを拒否した場合には、リンクはドロップします。(リンク接続の継続有無で成功か失敗を判定)
パケットタイプ:REQ(0x52) オペコード:0x1D (FORCE_MASTER_ROLE) データ長:1 データ(引数):ルール設定→ 0x00:ルールは無視する 0x01:接続設定でForce Master Roleを有効にする
//戻り値
パケットタイプ:CFM(0x43) オペコード:0x1D (FORCE_MASTER_ROLE) データ長:1 ステータス: OK→0x00, 不正なルール→0x1A, 引数が不正→0x01
※更に詳しい情報が必要な場合は開発元リリースの英文マニュアルを参照してください。
|