Google 致力于为黑人社区推动种族平等。查看具体行动

频道监控

此模块包含频道监控功能的函数。

摘要

启用频道监控功能 (OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE) 后,即可使用此模块中的函数。

频道监控功能会定期监控所有频道,帮助确定更清洁的频道(干扰较少的频道)。

启用频道监控功能后,系统会执行零持续时间的能源扫描,以在每个采样间隔为每个频道收集单个 RSSI 样本。将 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 样本)。

对于第一个“样本时段”样本,平均值按实际百分比(即“不良”样本数量与样本总数的比率)维护。在计算“窗口”样本后,平均值会使用指数加权移动平均值。实际上,这意味着平均值表示多达最新 3 * window 个样本中最高的 kSampleWindow 个样本。

如果值为 0xffff,则表示所有 RSSI 样本均高于 RSSI 阈值(即 100% 的样本“不理想”)。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aChannel
要为其获取链接占用人数的频道。
返回值
给定渠道的当前占用人数。

otChannelMonitorGetRssiThreshold

int8_t otChannelMonitorGetRssiThreshold(
  otInstance *aInstance
)

获取频道监控 RSSI 阈值(以 dBm 为单位)。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
RSSI 阈值(以 dBm 为单位)。

otChannelMonitorGetSampleCount

uint32_t otChannelMonitorGetSampleCount(
  otInstance *aInstance
)

获取频道监控 RSSI 样本总数(按频道)。

该计数表示自渠道启动以来由频道监控模块提供的每个通道的样本总数(自线程网络接口启用以来)。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
到目前为止获取的 RSSI 样本总数(每个频道)。

otChannelMonitorGetSampleInterval

uint32_t otChannelMonitorGetSampleInterval(
  otInstance *aInstance
)

获取频道监控采样间隔(以毫秒为单位)。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
通道监视器采样间隔(以毫秒为单位)。

otChannelMonitorGetSampleWindow

uint32_t otChannelMonitorGetSampleWindow(
  otInstance *aInstance
)

获取平均频道长度(样本数量)的频道监控值。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
平均样本窗口。

otChannelMonitorIsEnabled

bool otChannelMonitorIsEnabled(
  otInstance *aInstance
)

此函数指示频道监控操作是否已启用并正在运行。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
如果启用了频道监控操作,则为 TRUE,否则为 FALSE。

otChannelMonitorSetEnabled

otError otChannelMonitorSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

此函数可启用/停用频道监控操作。

一旦开始操作,所有先前收集的数据都将被清除。但停用操作后,之前收集的数据仍然有效,并且可以被读取。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aEnabled
TRUE 表示启用/启动频道监控操作,FALSE 表示停用/停止操作。
返回值
OT_ERROR_NONE
已成功更改频道监控状态
OT_ERROR_ALREADY
频道监控已经处于同一状态。

资源

OpenThread API 参考主题源自源代码,可在 GitHub 上找到。 如需了解详情或为我们的文档做贡献,请参阅资源