NB SCAN

NB SCAN (Neighbour Scan) は、近隣のノードを探索する目的で使用します。

探索を行うノードは、応答要求の同報通信を行います。これに周囲のノードが応え、応答のあったノードの一覧を報告します。探索されたノードは LQI の順にソートされます。

定義

探索する側はToCoNet_USE_MOD_NBSCANを、探索される側はToCoNet_USE_MOD_NBSCAN_SLAVEを定義しておく。

// define modules
#define ToCoNet_USE_MOD_NBSCAN
#define ToCoNet_USE_MOD_NBSCAN_SLAVE

// includes
#include "ToCoNet.h"
#include "ToCoNet_mod_prototype.h"

関数

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 付きのパケット送信を試みれば確認できますが、ノードのチャネルの設定が不明である場合に利用します。

引数

名前
詳細

uint32

u32ChMask

探索するチャネルマスク(ch16のみなら 1UL<<16 を指定、ch16,17なら 1UL<<16|1UL<<17 を指定)

uint32

u32Addr

探索するノードのロングアドレス

戻り値

詳細

boot_t

TRUE なら要求は受け付けられ、FALSE なら要求は受け付けられなかった。

イベント

結果は 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

近隣探索の結果を格納する構造体。

uint8

u8found

見つかった数。

uint8

u8scanMode

探索方法。

uint8

u8IdxLqiSort

LQI に順に並べたときのsScanResultのインデックス

tsToCoNet_NbScan_Entitiy

sScanResult[NBSCAN_MAXLIST]

探索されたノード情報

u8scanModeのビットマップ

ビットマスク
解説

TOCONET_NBSCAN_NORMAL_MASK

ToCoNet_EnergyScan_bStart()による探索

TOCONET_NBSCAN_QUICK_EXTADDR_MASK

ToCoNet_NbScan_bStartToFindAddr()による探索

tsToCoNet_NbScan_Entitiy

近隣探索で発見された各ノードの情報を格納した構造体。

名前
解説

uint32

u32addr

ロングアドレス。

uint16

u16addr

ショートアドレス。

uint8

u8ch

発見されたノードの設定されたチャネル。

uint8

u8lqi

発見されたノードのLQI。

uint8

bFound

探索に成功した場合は TRUE、失敗した場合は FALSE

サンプル

最終更新