渠道经理
此模块包含频道管理器的函数。
总结
启用频道管理器功能 (OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE
) 后,此模块中的函数将可供使用。频道管理器仅适用于 FTD build。
函数
otChannelManagerGetAutoChannelSelectionEnabled
bool otChannelManagerGetAutoChannelSelectionEnabled( otInstance *aInstance )
指明是否已启用自动频道选择功能。
详情 | |||
---|---|---|---|
参数 |
|
||
返回 |
如果已启用,则为 TRUE,如果已停用,则为 FALSE。
|
otChannelManagerGetAutoChannelSelectionInterval
uint32_t otChannelManagerGetAutoChannelSelectionInterval( otInstance *aInstance )
获取自动频道选择功能使用的时间段间隔(以秒为单位)。
详情 | |||
---|---|---|---|
参数 |
|
||
返回 |
间隔时间(以秒为单位)。
|
otChannelManagerGetCcaFailureRateThreshold
uint16_t otChannelManagerGetCcaFailureRateThreshold( otInstance *aInstance )
获取 CCA 失败率阈值。
详情 | |||
---|---|---|---|
参数 |
|
||
返回 |
CCA 失败率阈值。值 0 映射到 0%,映射 0xffff 映射到 100%。
|
otChannelManagerGetDelay
uint16_t otChannelManagerGetDelay( otInstance *aInstance )
获取频道管理器对频道更改使用的延迟时间(以秒为单位)。
详情 | |||
---|---|---|---|
参数 |
|
||
返回 |
频道更改的延迟时间(以秒为单位)。
|
otChannelManagerGetFavoredChannels
uint32_t otChannelManagerGetFavoredChannels( otInstance *aInstance )
获取偏爱的频道掩码。
详情 | |||
---|---|---|---|
参数 |
|
||
返回 |
常用频道作为位掩码。
|
otChannelManagerGetRequestedChannel
uint8_t otChannelManagerGetRequestedChannel( otInstance *aInstance )
otChannelManagerGetSupportedChannels
uint32_t otChannelManagerGetSupportedChannels( otInstance *aInstance )
获取支持的通道掩码。
详情 | |||
---|---|---|---|
参数 |
|
||
返回 |
支持的频道作为位掩码。
|
otChannelManagerRequestChannelChange
void otChannelManagerRequestChannelChange( otInstance *aInstance, uint8_t aChannel )
请求更改 Thread 网络通道。
网络会在指定延迟后切换到指定通道(请参阅 otChannelManagerSetDelay())。通道更新通过更新待处理操作数据集来执行。
后续通话将取消之前请求的渠道变更。
详情 | |||||
---|---|---|---|---|---|
参数 |
|
otChannelManagerRequestChannelSelect
otError otChannelManagerRequestChannelSelect( otInstance *aInstance, bool aSkipQualityCheck )
ChannelManager
检查并选择新频道并开始更改频道的请求。
与必须将频道作为参数的 otChannelManagerRequestChannelChange()
不同,此函数要求 ChannelManager
根据选择的频道质量信息本身选择频道。
调用后,频道管理员会执行以下 3 个步骤:
1) ChannelManager
表示更改频道是否有用。如果 aSkipQualityCheck
设为 true(强制生成一个频道选择并跳过质量检查),系统会跳过此检查。此步骤使用设备上收集的链接质量指标(例如 CCA 失败率、每个邻居的帧和消息错误率等),确定当前频道质量是否达到合理的频道变更级别。
2) 如果通过了第一步,ChannelManager
会选择可能更好的频道。它会使用 ChannelMonitor
模块收集的通道质量数据。这一步需要使用支持和收藏的频道。(请参阅 otChannelManagerSetSupportedChannels() 和 otChannelManagerSetFavoredChannels())。
3) 如果新选择的频道与当前频道不同,ChannelManager
会请求/启动频道更改流程(在内部调用 RequestChannelChange()
)。
详情 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otChannelManagerSetAutoChannelSelectionEnabled
void otChannelManagerSetAutoChannelSelectionEnabled( otInstance *aInstance, bool aEnabled )
启用或停用自动频道选择功能。
启用后,ChannelManager
将定期调用 RequestChannelSelect(false)
。时间段间隔可以通过 SetAutoChannelSelectionInterval()
设置。
详情 | |||||
---|---|---|---|---|---|
参数 |
|
otChannelManagerSetAutoChannelSelectionInterval
otError otChannelManagerSetAutoChannelSelectionInterval( otInstance *aInstance, uint32_t aInterval )
设置自动频道选择功能使用的时间段(以秒为单位)。
详情 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otChannelManagerSetCcaFailureRateThreshold
void otChannelManagerSetCcaFailureRateThreshold( otInstance *aInstance, uint16_t aThreshold )
设置 CCA 失败率阈值。
详情 | |||||
---|---|---|---|---|---|
参数 |
|
otChannelManagerSetDelay
otError otChannelManagerSetDelay( otInstance *aInstance, uint16_t aDelay )
设置用于频道更改的延迟时间(以秒为单位)。
该延迟最好最好长于 Thread 网络内所有睡觉设备使用的最大数据轮询时间间隔。
详情 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otChannelManagerSetFavoredChannels
void otChannelManagerSetFavoredChannels( otInstance *aInstance, uint32_t aChannelMask )
设置首选通道掩码。
详情 | |||||
---|---|---|---|---|---|
参数 |
|
otChannelManagerSetSupportedChannels
void otChannelManagerSetSupportedChannels( otInstance *aInstance, uint32_t aChannelMask )
设置支持的通道掩码。
详情 | |||||
---|---|---|---|---|---|
参数 |
|
资源
OpenThread API 参考主题源自源代码,可在 GitHub 上获取。 如需了解详情或为我们的文档贡献内容,请参阅资源。