NB SCAN
NB SCAN (Neighbour Scan) は、近隣のノードを探索する目的で使用します。
探索を行うノードは、応答要求の同報通信を行います。これに周囲のノードが応え、応答のあったノードの一覧を報告します。探索されたノードは LQI の順にソートされます。
単純ネットのみ利用可能。
比較的通信が安定し、通信量も少ない条件では探索の成功率が高くなりますが、条件が悪化すると全く探索できなくなる場合もあります。
条件の悪い場所では、存在を知らせるべきノードが定期的に同報通信によるビーコンパケットを送信し、探索側がこのビーコンを受信しながら近隣ノードの存在を確認する実装を行います。
定義
探索する側はToCoNet_USE_MOD_NBSCAN
を、探索される側はToCoNet_USE_MOD_NBSCAN_SLAVE
を定義しておく。
関数
ToCoNet_EnergyScan_bStart()
近隣探索を開始します。
引数
型 | 名前 | 詳細 |
---|---|---|
uint32 | u32ChMask | 探索するチャネルマスク(ch16のみなら 1UL<<16 を指定、ch16,17なら 1UL<<16|1UL<<17 を指定) |
uint16 | u16Dur_ms | 各チャネルの探索時間。おおむね 50ms 以上を推奨値とします。 |
戻り値
型 | 詳細 |
---|---|
boot_t | TRUE なら要求は受け付けられ、FALSE なら要求は受け付けられなかった。 |
ToCoNet_NbScan_bStartToFindAddr()
特定アドレスのノードを見つける目的で、近隣探索を開始します。
同じチャネルのノードが存在するかは、MAC Ack 付きのパケット送信を試みれば確認できますが、ノードのチャネルの設定が不明である場合に利用します。
引数
型 | 名前 | 詳細 |
---|---|---|
|
| 探索するチャネルマスク(ch16のみなら |
|
| 探索するノードのロングアドレス。 |
戻り値
型 | 詳細 |
---|---|
|
|
イベント
結果は cbToCoNet_vNwkEvent() より E_EVENT_TOCONET_NWK_SCAN_COMPLETE イベントにて報告されます。イベント引数には tsToCoNet_NbScan_Result 構造体へのアドレスが指定されます。
pu8Result の値
[0] | 計測されたチャネル数 [N]。 |
---|---|
[1] | 計測された一番若い番号のチャネルレベル。 |
[2] | 次に若いチャネルレベル。 |
... [N] | Nまで続く。 |
レベルは 0..255 の値を取り、0 が最弱、255が最強となる。値が高いほどノイズの多いチャネルとなります。
構造体
tsToCoNet_NbScan_Result
近隣探索の結果を格納する構造体。
|
| 見つかった数。 |
|
| 探索方法。 |
|
| LQI に順に並べたときの |
|
| 探索されたノード情報 |
u8scanModeのビットマップ
ビットマスク | 解説 |
---|---|
|
|
|
|
tsToCoNet_NbScan_Entitiy
近隣探索で発見された各ノードの情報を格納した構造体。
型 | 名前 | 解説 |
---|---|---|
|
| ロングアドレス。 |
|
| ショートアドレス。 |
|
| 発見されたノードの設定されたチャネル。 |
|
| 発見されたノードのLQI。 |
|
| 探索に成功した場合は |
サンプル
最終更新