頻道監控
這個模組包含頻道監控功能的函式。
摘要
啟用頻道監控功能 (OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE
) 後,即可使用本單元中的函式。
頻道監控功能會定期監控所有頻道,藉此決定所有乾淨管道 (幹擾程度較低的頻道)。
啟用頻道監控功能後,系統會執行零時差的能量掃描,針對每個取樣間隔收集各管道的 RSSI 樣本。RSSI 範例會與預先設定的 RSSI 門檻進行比較。頻道監控模組可維持管道品質,並提供高於指定頻率 (大約) 的取樣期 (以頻道可住人數計算) 門檻的平均值/百分比。
函式 |
|
---|---|
otChannelMonitorGetChannelOccupancy(otInstance *aInstance, uint8_t aChannel)
|
uint16_t
取得特定頻道目前的可住人數。
|
otChannelMonitorGetRssiThreshold(otInstance *aInstance)
|
int8_t
取得頻道監控 RSSI 門檻 (dBm)。
|
otChannelMonitorGetSampleCount(otInstance *aInstance)
|
uint32_t
取得頻道監控 RSS 樣本的總數 (每個頻道)。
|
otChannelMonitorGetSampleInterval(otInstance *aInstance)
|
uint32_t
以毫秒為單位取得管道監控範例。
|
otChannelMonitorGetSampleWindow(otInstance *aInstance)
|
uint32_t
取得頻道監控的平均取樣期長度 (樣本數)。
|
otChannelMonitorIsEnabled(otInstance *aInstance)
|
bool
指出管道監控功能是否已啟用且正在執行。
|
otChannelMonitorSetEnabled(otInstance *aInstance, bool aEnabled)
|
啟用或停用管道監控作業。
|
函式
otChannelMonitorGetChannelOccupancy
uint16_t otChannelMonitorGetChannelOccupancy( otInstance *aInstance, uint8_t aChannel )
取得特定頻道目前的可住人數。
頻道可住人數值代表 RSSI 取樣率超過 RSSI 門檻 (「不適合」的 RSSI 樣本) 的平均比率/百分比。
第一個「取樣期」樣本的平均值會維持為實際百分比 (即「不良」樣本數除以樣本數) 的平均值。在「窗型」樣本後,平均值使用指數加權移動平均值。簡單來說,這表示在最新 kSampleWindow
樣本中,平均值代表最多 3 * window
個樣本 (具有最高權重)。
0xffff
的最大值表示所有 RSSI 樣本都高於 RSSI 門檻 (亦即 100% 樣本為「不良」)。
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回 |
特定頻道目前的可住人數。
|
otChannelMonitorGetRssiThreshold
int8_t otChannelMonitorGetRssiThreshold( otInstance *aInstance )
取得頻道監控 RSSI 門檻 (dBm)。
詳細說明 | |||
---|---|---|---|
參數 |
|
||
傳回 |
dBm 中的 RSSI 門檻。
|
otChannelMonitorGetSampleCount
uint32_t otChannelMonitorGetSampleCount( otInstance *aInstance )
取得頻道監控 RSS 樣本的總數 (每個頻道)。
這項數值代表自啟用開始的執行緒數量 (自 Thread 網路介面啟用後),每個頻道監控模組總數。
詳細說明 | |||
---|---|---|---|
參數 |
|
||
傳回 |
截至目前為止,RSS 樣本 (每個頻道) 的總數。
|
otChannelMonitorGetSampleInterval
uint32_t otChannelMonitorGetSampleInterval( otInstance *aInstance )
以毫秒為單位取得管道監控範例。
詳細說明 | |||
---|---|---|---|
參數 |
|
||
傳回 |
頻道會監控取樣的時間間隔 (以毫秒為單位)。
|
otChannelMonitorGetSampleWindow
uint32_t otChannelMonitorGetSampleWindow( otInstance *aInstance )
取得頻道監控的平均取樣期長度 (樣本數)。
詳細說明 | |||
---|---|---|---|
參數 |
|
||
傳回 |
平均範例視窗。
|
otChannelMonitorIsEnabled
bool otChannelMonitorIsEnabled( otInstance *aInstance )
指出管道監控功能是否已啟用且正在執行。
詳細說明 | |||
---|---|---|---|
參數 |
|
||
傳回 |
如果已啟用管道監控功能,則傳回 TRUE,否則傳回 FALSE。
|
otChannelMonitorSetEnabled
otError otChannelMonitorSetEnabled( otInstance *aInstance, bool aEnabled )
啟用或停用管道監控作業。
開始操作後,系統會清除先前收集的所有資料。不過在作業停用後,先前收集的資料仍為有效且可以讀取。
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|
||||
回傳值 |
|
資源
OpenThread API 參考資料主題源自原始碼,可於 GitHub 取得。如需更多資訊或為說明文件貢獻心力,請參閱資源。