无线装置操作
此模块包含无线电操作的平台抽象。
摘要
函数 |
|
---|---|
otPlatDiagRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
|
void
无线装置驱动程序调用此方法来通知 OpenThread 诊断模块已收到帧。
|
otPlatDiagRadioTransmitDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
|
void
无线装置驱动程序调用此方法,以通知 OpenThread 诊断模块传输已完成。
|
otPlatRadioAddCalibratedPower(otInstance *aInstance, uint8_t aChannel, int16_t aActualPower, const uint8_t *aRawPowerSetting, uint16_t aRawPowerSettingLength)
|
将指定信道的校准功率添加到功率校准表中。
|
otPlatRadioAddSrcMatchExtEntry(otInstance *aInstance, const otExtAddress *aExtAddress)
|
向源地址匹配表添加扩展地址。
|
otPlatRadioAddSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
|
向源地址匹配表添加一个短地址。
|
otPlatRadioClearCalibratedPowers(otInstance *aInstance)
|
从功率校准表中清除所有校准功率。
|
otPlatRadioClearSrcMatchExtEntries(otInstance *aInstance)
|
void
清除源地址匹配表中的所有扩展/长地址。
|
otPlatRadioClearSrcMatchExtEntry(otInstance *aInstance, const otExtAddress *aExtAddress)
|
从源地址匹配表中移除扩展地址。
|
otPlatRadioClearSrcMatchShortEntries(otInstance *aInstance)
|
void
清除源地址匹配表中所有短地址。
|
otPlatRadioClearSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
|
从源地址匹配表中移除一个短地址。
|
otPlatRadioConfigureEnhAckProbing(otInstance *aInstance, otLinkMetrics aLinkMetrics, otShortAddress aShortAddress, const otExtAddress *aExtAddress)
|
为特定发起程序启用/停用或更新无线装置中基于增强型 ACK 的探测。
|
otPlatRadioDisable(otInstance *aInstance)
|
停用无线装置。
|
otPlatRadioEnable(otInstance *aInstance)
|
启用无线装置。
|
otPlatRadioEnableCsl(otInstance *aInstance, uint32_t aCslPeriod, otShortAddress aShortAddr, const otExtAddress *aExtAddr)
|
启用或停用 CSL 接收器。
|
otPlatRadioEnableSrcMatch(otInstance *aInstance, bool aEnable)
|
void
启用/停用来源地址匹配功能。
|
otPlatRadioEnergyScan(otInstance *aInstance, uint8_t aScanChannel, uint16_t aScanDuration)
|
在无线装置上开始能量扫描序列。
|
otPlatRadioEnergyScanDone(otInstance *aInstance, int8_t aEnergyScanMaxRssi)
|
void
无线装置驱动程序调用此方法,以通知 OpenThread 能量扫描已完成。
|
otPlatRadioGetCoexMetrics(otInstance *aInstance, otRadioCoexMetrics *aCoexMetrics)
|
获取无线装置共存指标。
|
otPlatRadioGetCslAccuracy(otInstance *aInstance)
|
uint8_t
获取本地无线装置时钟的当前估计最差精度(与标称频率的最大 ± 偏差),以 PPM 为单位。
|
otPlatRadioGetCslUncertainty(otInstance *aInstance)
|
uint8_t
固定的不确定性(即
|
otPlatRadioGetPreferredChannelMask(otInstance *aInstance)
|
uint32_t
获取设备希望用来设置的电台首选频道掩码。
|
otPlatRadioGetRawPowerSetting(otInstance *aInstance, uint8_t aChannel, uint8_t *aRawPowerSetting, uint16_t *aRawPowerSettingLength)
|
获取指定频道的原始功率设置。
|
otPlatRadioGetRegion(otInstance *aInstance, uint16_t *aRegionCode)
|
获取地区代码。
|
otPlatRadioGetRssi(otInstance *aInstance)
|
int8_t
获取最新的 RSSI 测量值。
|
otPlatRadioGetState(otInstance *aInstance)
|
获取无线装置的当前状态。
|
otPlatRadioGetSupportedChannelMask(otInstance *aInstance)
|
uint32_t
获取允许设备开启的无线装置支持的信道掩码。
|
otPlatRadioGetTransmitBuffer(otInstance *aInstance)
|
获取无线装置传输帧缓冲区。
|
otPlatRadioIsCoexEnabled(otInstance *aInstance)
|
bool
检查是否已启用电台共存。
|
otPlatRadioIsEnabled(otInstance *aInstance)
|
bool
检查是否已启用无线装置。
|
otPlatRadioReceive(otInstance *aInstance, uint8_t aChannel)
|
将无线装置从“睡眠”转换为接收(打开无线装置)。
|
otPlatRadioReceiveAt(otInstance *aInstance, uint8_t aChannel, uint32_t aStart, uint32_t aDuration)
|
将电台接收时段安排在特定时间和时长。
|
otPlatRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
|
void
无线装置驱动程序调用此方法来通知 OpenThread 已收到帧。
|
otPlatRadioSetChannelMaxTransmitPower(otInstance *aInstance, uint8_t aChannel, int8_t aMaxPower)
|
设置特定信道的最大传输功率。
|
otPlatRadioSetChannelTargetPower(otInstance *aInstance, uint8_t aChannel, int16_t aTargetPower)
|
设置指定信道的目标功率。
|
otPlatRadioSetCoexEnabled(otInstance *aInstance, bool aEnabled)
|
启用无线装置共存。
|
otPlatRadioSetRegion(otInstance *aInstance, uint16_t aRegionCode)
|
设置地区代码。
|
otPlatRadioSleep(otInstance *aInstance)
|
将无线装置从“接收”模式转换为“睡眠”模式(关闭无线装置)。
|
otPlatRadioTransmit(otInstance *aInstance, otRadioFrame *aFrame)
|
在无线装置上开始发送序列。
|
otPlatRadioTxDone(otInstance *aInstance, otRadioFrame *aFrame, otRadioFrame *aAckFrame, otError aError)
|
void
无线装置驱动程序调用此函数以通知 OpenThread 传输操作已完成,并提供已传输的帧和已接收的确认帧(若适用)。
|
otPlatRadioTxStarted(otInstance *aInstance, otRadioFrame *aFrame)
|
void
无线装置驱动程序调用此方法,以通知 OpenThread 传输已开始。
|
otPlatRadioUpdateCslSampleTime(otInstance *aInstance, uint32_t aCslSampleTime)
|
void
更新了无线装置驱动程序中的 CSL 采样时间。
|
函数
otPlatDiagRadioReceiveDone
void otPlatDiagRadioReceiveDone( otInstance *aInstance, otRadioFrame *aFrame, otError aError )
无线装置驱动程序调用此方法来通知 OpenThread 诊断模块已收到帧。
在启用诊断时使用。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
otPlatDiagRadioTransmitDone
void otPlatDiagRadioTransmitDone( otInstance *aInstance, otRadioFrame *aFrame, otError aError )
无线装置驱动程序调用此方法,以通知 OpenThread 诊断模块传输已完成。
在启用诊断时使用。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
otPlatRadioAddCalibratedPower
otError otPlatRadioAddCalibratedPower( otInstance *aInstance, uint8_t aChannel, int16_t aActualPower, const uint8_t *aRawPowerSetting, uint16_t aRawPowerSettingLength )
将指定信道的校准功率添加到功率校准表中。
aActualPower
是无线装置硬件模块的参数设置为 aRawPowerSetting
时实际测得的输出功率。
原始功率设置是不透明的字节数组。OpenThread 不定义原始电源设置的格式。其格式与电台硬件相关,应由开发者在平台电台驱动程序中定义。例如,如果无线装置硬件同时包含无线装置芯片和 FEM 芯片,则原始功率设置可以是无线装置功率寄存器和 FEM 增益值的组合。
具体说明 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||
返回值 |
|
otPlatRadioAddSrcMatchExtEntry
otError otPlatRadioAddSrcMatchExtEntry( otInstance *aInstance, const otExtAddress *aExtAddress )
向源地址匹配表添加扩展地址。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otPlatRadioAddSrcMatchShortEntry
otError otPlatRadioAddSrcMatchShortEntry( otInstance *aInstance, otShortAddress aShortAddress )
向源地址匹配表添加一个短地址。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otPlatRadioClearCalibratedPowers
otError otPlatRadioClearCalibratedPowers( otInstance *aInstance )
从功率校准表中清除所有校准功率。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otPlatRadioClearSrcMatchExtEntries
void otPlatRadioClearSrcMatchExtEntries( otInstance *aInstance )
清除源地址匹配表中的所有扩展/长地址。
具体说明 | |||
---|---|---|---|
参数 |
|
otPlatRadioClearSrcMatchExtEntry
otError otPlatRadioClearSrcMatchExtEntry( otInstance *aInstance, const otExtAddress *aExtAddress )
从源地址匹配表中移除扩展地址。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otPlatRadioClearSrcMatchShortEntries
void otPlatRadioClearSrcMatchShortEntries( otInstance *aInstance )
清除源地址匹配表中所有短地址。
具体说明 | |||
---|---|---|---|
参数 |
|
otPlatRadioClearSrcMatchShortEntry
otError otPlatRadioClearSrcMatchShortEntry( otInstance *aInstance, otShortAddress aShortAddress )
从源地址匹配表中移除一个短地址。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otPlatRadioConfigureEnhAckProbing
otError otPlatRadioConfigureEnhAckProbing( otInstance *aInstance, otLinkMetrics aLinkMetrics, otShortAddress aShortAddress, const otExtAddress *aExtAddress )
为特定发起程序启用/停用或更新无线装置中基于增强型 ACK 的探测。
在特定探测启动器配置基于增强型 ACK 的探测之后,发送到该节点的增强型 ACK 应包含包含链路指标数据的供应商特定 IE。此方法指示无线装置开始/停止收集链路指标数据,并包含供应商专用 IE(包含发送到该探测发起方的增强 ACK 中的数据)。
具体说明 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||
返回值 |
|
otPlatRadioDisable
otError otPlatRadioDisable( otInstance *aInstance )
停用无线装置。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otPlatRadioEnable
otError otPlatRadioEnable( otInstance *aInstance )
启用无线装置。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otPlatRadioEnableCsl
otError otPlatRadioEnableCsl( otInstance *aInstance, uint32_t aCslPeriod, otShortAddress aShortAddr, const otExtAddress *aExtAddr )
启用或停用 CSL 接收器。
具体说明 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
|
otPlatRadioEnableSrcMatch
void otPlatRadioEnableSrcMatch( otInstance *aInstance, bool aEnable )
启用/停用来源地址匹配功能。
源地址匹配功能控制无线装置层如何为响应子节点的数据请求命令而发送的确认信息确定“帧待处理”位。
如果停用,无线装置层必须在所有确认数据请求命令时将“帧待处理”设置为“待处理”。
启用后,无线装置层会使用来源地址匹配表来确定是设置还是清除数据请求命令确认中的“帧待处理”位。
源地址匹配表会提供有待处理帧的子项列表。源地址匹配表中既可添加短地址,也可添加扩展/长地址。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
otPlatRadioEnergyScan
otError otPlatRadioEnergyScan( otInstance *aInstance, uint8_t aScanChannel, uint16_t aScanDuration )
在无线装置上开始能量扫描序列。
在无线装置提供 OT_RADIO_CAPS_ENERGY_SCAN 功能时使用。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
|
otPlatRadioEnergyScanDone
void otPlatRadioEnergyScanDone( otInstance *aInstance, int8_t aEnergyScanMaxRssi )
无线装置驱动程序调用此方法,以通知 OpenThread 能量扫描已完成。
在无线装置提供 OT_RADIO_CAPS_ENERGY_SCAN 功能时使用。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
otPlatRadioGetCoexMetrics
otError otPlatRadioGetCoexMetrics( otInstance *aInstance, otRadioCoexMetrics *aCoexMetrics )
获取无线装置共存指标。
在启用 OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE 功能时使用。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otPlatRadioGetCslAccuracy
uint8_t otPlatRadioGetCslAccuracy( otInstance *aInstance )
获取本地无线装置时钟的当前估计最差精度(与标称频率的最大 ± 偏差),以 PPM 为单位。
这是用于安排 CSL 操作的时钟。
如果实现不估算当前值,而是返回固定值,则此值必须是在实现的所有可能可预见的操作条件(温度、压力等)下最糟糕的精确度。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
当前 CSL rx/tx 调度偏移,以 PPM 为单位。
|
otPlatRadioGetCslUncertainty
uint8_t otPlatRadioGetCslUncertainty( otInstance *aInstance )
固定的不确定性(即
随机抖动)。
这指定了传输的实际到达时间相对于根据本地无线电时钟计算得出的传输时间(不考虑已用时间)的最差情况常量正偏差或负偏差。除了经过一段时间后累积的不确定性之外,CSL 信道样本(“RX 窗口”)还必须将这一偏差延长两倍,以便在出现随机到达时间抖动的情况下,保证本地接收器能够检测到实际传输。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
CSL 不确定性,以 10 us 为单位。
|
otPlatRadioGetPreferredChannelMask
uint32_t otPlatRadioGetPreferredChannelMask( otInstance *aInstance )
获取设备希望用来设置的电台首选频道掩码。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
电台首选信道掩码。
|
otPlatRadioGetRawPowerSetting
otError otPlatRadioGetRawPowerSetting( otInstance *aInstance, uint8_t aChannel, uint8_t *aRawPowerSetting, uint16_t *aRawPowerSettingLength )
获取指定频道的原始功率设置。
平台无线装置层应根据无线装置层定义的格式解析原始功率设置,并设置每个无线装置硬件模块的参数。
具体说明 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
|
otPlatRadioGetRegion
otError otPlatRadioGetRegion( otInstance *aInstance, uint16_t *aRegionCode )
获取地区代码。
无线电区域格式为 ISO 3166 alpha-2 代码的 2 个字节 ASCII 表示。
具体说明 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
|
otPlatRadioGetRssi
int8_t otPlatRadioGetRssi( otInstance *aInstance )
获取最新的 RSSI 测量值。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
RSSI(以 dBm 为单位)(若有效)。如果 RSSI 无效,则为 127。
|
otPlatRadioGetState
otRadioState otPlatRadioGetState( otInstance *aInstance )
获取无线装置的当前状态。
OpenThread 不要求。可用于调试和/或应用特定目的。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
无线装置的当前状态。
|
otPlatRadioGetSupportedChannelMask
uint32_t otPlatRadioGetSupportedChannelMask( otInstance *aInstance )
获取允许设备开启的无线装置支持的信道掩码。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
电台支持的信道掩码。
|
otPlatRadioGetTransmitBuffer
otRadioFrame * otPlatRadioGetTransmitBuffer( otInstance *aInstance )
获取无线装置传输帧缓冲区。
OpenThread 在此缓冲区中形成 IEEE 802.15.4 帧,然后调用 otPlatRadioTransmit()
来请求传输。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
指向传输帧缓冲区的指针。
|
otPlatRadioIsCoexEnabled
bool otPlatRadioIsCoexEnabled( otInstance *aInstance )
检查是否已启用电台共存。
在启用 OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE 功能时使用。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果已启用无线电共存,则为 TRUE,否则为 FALSE。
|
otPlatRadioIsEnabled
bool otPlatRadioIsEnabled( otInstance *aInstance )
检查是否已启用无线装置。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果已启用无线装置,则为 TRUE,否则为 FALSE。
|
otPlatRadioReceive
otError otPlatRadioReceive( otInstance *aInstance, uint8_t aChannel )
将无线装置从“睡眠”转换为接收(打开无线装置)。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otPlatRadioReceiveAt
otError otPlatRadioReceiveAt( otInstance *aInstance, uint8_t aChannel, uint32_t aStart, uint32_t aDuration )
将电台接收时段安排在特定时间和时长。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
|
otPlatRadioReceiveDone
void otPlatRadioReceiveDone( otInstance *aInstance, otRadioFrame *aFrame, otError aError )
无线装置驱动程序调用此方法来通知 OpenThread 已收到帧。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
otPlatRadioSetChannelMaxTransmitPower
otError otPlatRadioSetChannelMaxTransmitPower( otInstance *aInstance, uint8_t aChannel, int8_t aMaxPower )
设置特定信道的最大传输功率。
具体说明 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
|
otPlatRadioSetChannelTargetPower
otError otPlatRadioSetChannelTargetPower( otInstance *aInstance, uint8_t aChannel, int16_t aTargetPower )
设置指定信道的目标功率。
无线装置驱动程序应将实际输出功率设置为小于或等于目标功率,并尽可能接近目标功率。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
|
otPlatRadioSetCoexEnabled
otError otPlatRadioSetCoexEnabled( otInstance *aInstance, bool aEnabled )
启用无线装置共存。
在启用 OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE 功能时使用。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otPlatRadioSetRegion
otError otPlatRadioSetRegion( otInstance *aInstance, uint16_t aRegionCode )
设置地区代码。
无线电区域格式为 ISO 3166 alpha-2 代码的 2 个字节 ASCII 表示。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
|
otPlatRadioSleep
otError otPlatRadioSleep( otInstance *aInstance )
将无线装置从“接收”模式转换为“睡眠”模式(关闭无线装置)。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
|
otPlatRadioTransmit
otError otPlatRadioTransmit( otInstance *aInstance, otRadioFrame *aFrame )
在无线装置上开始发送序列。
在请求传输之前,调用方必须在 otPlatRadioGetTransmitBuffer()
提供的缓冲区中形成 IEEE 802.15.4 帧。信道和发射功率也包含在 otRadioFrame 结构中。
传输序列包括:
- 将无线装置从以下任一状态转换为“传输”:
- 在设备空闲或 OT_RADIO_CAPS_SLEEP_TO_TX 不受支持时 RX 处于开启状态时接收
- 如果在设备空闲且支持 OT_RADIO_CAPS_SLEEP_TO_TX 时 RX 关闭,则休眠。
- 在指定信道上以指定的传输功率传输 psdu。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otPlatRadioTxDone
void otPlatRadioTxDone( otInstance *aInstance, otRadioFrame *aFrame, otRadioFrame *aAckFrame, otError aError )
无线装置驱动程序调用此函数以通知 OpenThread 传输操作已完成,并提供已传输的帧和已接收的确认帧(若适用)。
当无线装置提供 OT_RADIO_CAPS_TRANSMIT_SEC
功能时,无线装置平台层使用无线装置维护的安全帧计数器和密钥索引值更新 aFrame
。
具体说明 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
otPlatRadioTxStarted
void otPlatRadioTxStarted( otInstance *aInstance, otRadioFrame *aFrame )
无线装置驱动程序调用此方法,以通知 OpenThread 传输已开始。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
otPlatRadioUpdateCslSampleTime
void otPlatRadioUpdateCslSampleTime( otInstance *aInstance, uint32_t aCslSampleTime )
更新了无线装置驱动程序中的 CSL 采样时间。
采样时间以副本的形式存储在无线装置驱动程序中,用于在通过 CSL IE 发送 ACK 时计算相位。CSL 接收器的 CSL 样本(窗口)在采样时间之前和之后都延长。CSL 采样时间用于标记 CSL 采样窗口中的一个时间戳,表示在没有不准确/时钟偏移的情况下,应在“理想条件”下接收帧。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
资源
OpenThread API 参考文档源自 GitHub 上提供的源代码。如需了解详情,或者为我们的文档做贡献,请参阅资源。