频道监控
此模块包含频道监控功能的函数。
总结
启用频道监控功能 (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
获取频道监控 RSSI 样本总数(按渠道划分)。
|
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 为单位)。
详情 | |||
---|---|---|---|
参数 |
|
||
返回 |
RSSI 阈值(以 dBm 为单位)。
|
otChannelMonitorGetSampleCount
uint32_t otChannelMonitorGetSampleCount( otInstance *aInstance )
获取频道监控 RSSI 样本总数(按渠道划分)。
计数是指每个频道自频道开始以来(自启用 Thread 网络接口以来)每个频道的样本总数。
详情 | |||
---|---|---|---|
参数 |
|
||
返回 |
到目前为止,每个渠道获得的 RSSI 样本总数。
|
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 上获取。 如需了解详情或为我们的文档贡献内容,请参阅资源。