无线装置操作

此模块包含无线电操作的平台抽象。

摘要

函数

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 诊断模块已收到帧。

在启用诊断时使用。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aFrame
指向已接收帧的指针,如果接收操作失败,则为 NULL。
[in] aError
成功接收帧时为 OT_ERROR_NONE;如果接收被中止且未收到帧,则为 OT_ERROR_ABORT;当因缺少 rx 缓冲区空间而无法接收帧时,为 OT_ERROR_NO_BUFS。

otPlatDiagRadioTransmitDone

void otPlatDiagRadioTransmitDone(
  otInstance *aInstance,
  otRadioFrame *aFrame,
  otError aError
)

无线装置驱动程序调用此方法,以通知 OpenThread 诊断模块传输已完成。

在启用诊断时使用。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aFrame
指向已传输帧的指针。
[in] aError
OT_ERROR_NONE(传输帧时)、OT_ERROR_CHANNEL_ACCESS_FAILURE tx(由于信道上的活动)无法发生;OT_ERROR_ABORT(如果传输因其他原因而中止)。

otPlatRadioAddCalibratedPower

otError otPlatRadioAddCalibratedPower(
  otInstance *aInstance,
  uint8_t aChannel,
  int16_t aActualPower,
  const uint8_t *aRawPowerSetting,
  uint16_t aRawPowerSettingLength
)

将指定信道的校准功率添加到功率校准表中。

aActualPower 是无线装置硬件模块的参数设置为 aRawPowerSetting 时实际测得的输出功率。

原始功率设置是不透明的字节数组。OpenThread 不定义原始电源设置的格式。其格式与电台硬件相关,应由开发者在平台电台驱动程序中定义。例如,如果无线装置硬件同时包含无线装置芯片和 FEM 芯片,则原始功率设置可以是无线装置功率寄存器和 FEM 增益值的组合。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aChannel
电台频道。
[in] aActualPower
实际功率(以 0.01dBm 为单位)。
[in] aRawPowerSetting
指向原始电源设置字节数组的指针。
[in] aRawPowerSettingLength
aRawPowerSetting 的长度。
返回值
OT_ERROR_NONE
已成功将校准后的功率添加到功率校准表中。
OT_ERROR_NO_BUFS
功率校准表中没有可用条目。
OT_ERROR_INVALID_ARGS
aChannelaActualPoweraRawPowerSetting 无效,或者功率校准表中已存在 aActualPower
OT_ERROR_NOT_IMPLEMENTED
此功能未实现。

otPlatRadioAddSrcMatchExtEntry

otError otPlatRadioAddSrcMatchExtEntry(
  otInstance *aInstance,
  const otExtAddress *aExtAddress
)

向源地址匹配表添加扩展地址。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aExtAddress
要添加的扩展地址,按小端字节序存储。
返回值
OT_ERROR_NONE
扩展地址已成功添加到来源匹配表中。
OT_ERROR_NO_BUFS
源匹配表中没有可用的条目。

otPlatRadioAddSrcMatchShortEntry

otError otPlatRadioAddSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

向源地址匹配表添加一个短地址。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aShortAddress
要添加的短地址。
返回值
OT_ERROR_NONE
已成功将短地址添加到来源匹配表中。
OT_ERROR_NO_BUFS
源匹配表中没有可用的条目。

otPlatRadioClearCalibratedPowers

otError otPlatRadioClearCalibratedPowers(
  otInstance *aInstance
)

从功率校准表中清除所有校准功率。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
返回值
OT_ERROR_NONE
已成功从功率校准表中清除所有校准功率。
OT_ERROR_NOT_IMPLEMENTED
此功能未实现。

otPlatRadioClearSrcMatchExtEntries

void otPlatRadioClearSrcMatchExtEntries(
  otInstance *aInstance
)

清除源地址匹配表中的所有扩展/长地址。

具体说明
参数
[in] aInstance
OpenThread 实例结构。

otPlatRadioClearSrcMatchExtEntry

otError otPlatRadioClearSrcMatchExtEntry(
  otInstance *aInstance,
  const otExtAddress *aExtAddress
)

从源地址匹配表中移除扩展地址。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aExtAddress
要移除的扩展地址,以小端字节顺序存储。
返回值
OT_ERROR_NONE
已成功从来源匹配表中移除扩展地址。
OT_ERROR_NO_ADDRESS
扩展地址不在源地址匹配表中。

otPlatRadioClearSrcMatchShortEntries

void otPlatRadioClearSrcMatchShortEntries(
  otInstance *aInstance
)

清除源地址匹配表中所有短地址。

具体说明
参数
[in] aInstance
OpenThread 实例结构。

otPlatRadioClearSrcMatchShortEntry

otError otPlatRadioClearSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

从源地址匹配表中移除一个短地址。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aShortAddress
要移除的短地址。
返回值
OT_ERROR_NONE
已成功从来源匹配表中移除短地址。
OT_ERROR_NO_ADDRESS
短地址不在源地址匹配表中。

otPlatRadioConfigureEnhAckProbing

otError otPlatRadioConfigureEnhAckProbing(
  otInstance *aInstance,
  otLinkMetrics aLinkMetrics,
  otShortAddress aShortAddress,
  const otExtAddress *aExtAddress
)

为特定发起程序启用/停用或更新无线装置中基于增强型 ACK 的探测。

在特定探测启动器配置基于增强型 ACK 的探测之后,发送到该节点的增强型 ACK 应包含包含链路指标数据的供应商特定 IE。此方法指示无线装置开始/停止收集链路指标数据,并包含供应商专用 IE(包含发送到该探测发起方的增强 ACK 中的数据)。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aLinkMetrics
此参数指定要查询的指标。根据规范 4.11.3.4.4.6,最多只能指定 2 个指标。如果 aLinkMetrics 为按位 0,则会停用探测。
[in] aShortAddress
探测启动器的短地址。
[in] aExtAddress
探测启动器的扩展源地址。aExtAddr 不得为 NULL
返回值
OT_ERROR_NONE
已成功配置基于增强型 ACK 的探测。
OT_ERROR_INVALID_ARGS
aExtAddressNULL
OT_ERROR_NOT_FOUND
尝试清除时未找到 aShortAddress 指示的发起者。
OT_ERROR_NO_BUFS
已不再支持启动器。
OT_ERROR_NOT_IMPLEMENTED
该功能未实现。

otPlatRadioDisable

otError otPlatRadioDisable(
  otInstance *aInstance
)

停用无线装置。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
返回值
OT_ERROR_NONE
已成功转换为“已停用”状态。
OT_ERROR_INVALID_STATE
无线装置没有处于睡眠状态

otPlatRadioEnable

otError otPlatRadioEnable(
  otInstance *aInstance
)

启用无线装置。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
返回值
OT_ERROR_NONE
已成功启用。
OT_ERROR_FAILED
无法启用无线装置。

otPlatRadioEnableCsl

otError otPlatRadioEnableCsl(
  otInstance *aInstance,
  uint32_t aCslPeriod,
  otShortAddress aShortAddr,
  const otExtAddress *aExtAddr
)

启用或停用 CSL 接收器。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aCslPeriod
CSL 周期,0 表示停用 CSL。CSL 句点的单位为 10 个符号。
[in] aShortAddr
CSL 接收器对等体的短源地址。
[in] aExtAddr
CSL 接收器对等体的扩展源地址。
返回值
kErrorNotImplemented
电台驱动程序不支持 CSL。
kErrorFailed
其他平台特定错误。
kErrorNone
已成功启用或停用 CSL。

otPlatRadioEnableSrcMatch

void otPlatRadioEnableSrcMatch(
  otInstance *aInstance,
  bool aEnable
)

启用/停用来源地址匹配功能。

源地址匹配功能控制无线装置层如何为响应子节点的数据请求命令而发送的确认信息确定“帧待处理”位。

如果停用,无线装置层必须在所有确认数据请求命令时将“帧待处理”设置为“待处理”。

启用后,无线装置层会使用来源地址匹配表来确定是设置还是清除数据请求命令确认中的“帧待处理”位。

源地址匹配表会提供有待处理帧的子项列表。源地址匹配表中既可添加短地址,也可添加扩展/长地址。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aEnable
启用/停用来源地址匹配功能。

otPlatRadioEnergyScan

otError otPlatRadioEnergyScan(
  otInstance *aInstance,
  uint8_t aScanChannel,
  uint16_t aScanDuration
)

在无线装置上开始能量扫描序列。

在无线装置提供 OT_RADIO_CAPS_ENERGY_SCAN 功能时使用。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aScanChannel
执行能量扫描的通道。
[in] aScanDuration
要扫描的频道的时长(以毫秒为单位)。
返回值
OT_ERROR_NONE
已成功开始扫描频道。
OT_ERROR_BUSY
无线装置正在执行能量扫描。
OT_ERROR_NOT_IMPLEMENTED
无线装置不支持能量扫描。

otPlatRadioEnergyScanDone

void otPlatRadioEnergyScanDone(
  otInstance *aInstance,
  int8_t aEnergyScanMaxRssi
)

无线装置驱动程序调用此方法,以通知 OpenThread 能量扫描已完成。

在无线装置提供 OT_RADIO_CAPS_ENERGY_SCAN 功能时使用。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aEnergyScanMaxRssi
已扫描的频道上遇到的最大 RSSI。

otPlatRadioGetCoexMetrics

otError otPlatRadioGetCoexMetrics(
  otInstance *aInstance,
  otRadioCoexMetrics *aCoexMetrics
)

获取无线装置共存指标。

在启用 OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE 功能时使用。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[out] aCoexMetrics
指向共存指标结构的指针。
返回值
OT_ERROR_NONE
已成功检索到共存指标。
OT_ERROR_INVALID_ARGS
aCoexMetrics 为 NULL。

otPlatRadioGetCslAccuracy

uint8_t otPlatRadioGetCslAccuracy(
  otInstance *aInstance
)

获取本地无线装置时钟的当前估计最差精度(与标称频率的最大 ± 偏差),以 PPM 为单位。

这是用于安排 CSL 操作的时钟。

如果实现不估算当前值,而是返回固定值,则此值必须是在实现的所有可能可预见的操作条件(温度、压力等)下最糟糕的精确度。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
当前 CSL rx/tx 调度偏移,以 PPM 为单位。

otPlatRadioGetCslUncertainty

uint8_t otPlatRadioGetCslUncertainty(
  otInstance *aInstance
)

固定的不确定性(即

随机抖动)。

这指定了传输的实际到达时间相对于根据本地无线电时钟计算得出的传输时间(不考虑已用时间)的最差情况常量正偏差或负偏差。除了经过一段时间后累积的不确定性之外,CSL 信道样本(“RX 窗口”)还必须将这一偏差延长两倍,以便在出现随机到达时间抖动的情况下,保证本地接收器能够检测到实际传输。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
CSL 不确定性,以 10 us 为单位。

otPlatRadioGetPreferredChannelMask

uint32_t otPlatRadioGetPreferredChannelMask(
  otInstance *aInstance
)

获取设备希望用来设置的电台首选频道掩码。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
返回值
电台首选信道掩码。

otPlatRadioGetRawPowerSetting

otError otPlatRadioGetRawPowerSetting(
  otInstance *aInstance,
  uint8_t aChannel,
  uint8_t *aRawPowerSetting,
  uint16_t *aRawPowerSettingLength
)

获取指定频道的原始功率设置。

平台无线装置层应根据无线装置层定义的格式解析原始功率设置,并设置每个无线装置硬件模块的参数。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aChannel
电台频道。
[out] aRawPowerSetting
指向原始电源设置字节数组的指针。
[in,out] aRawPowerSettingLength
在输入时,指向 aRawPowerSetting 大小的指针。在输出时,指向原始电源设置数据长度的指针。
返回值
OT_ERROR_NONE
成功获得目标能量。
OT_ERROR_INVALID_ARGS
aChannel 无效,aRawPowerSettingaRawPowerSettingLength 为 NULL 或过短。
OT_ERROR_NOT_FOUND
找不到 aChannel 的原始电源设置。

otPlatRadioGetRegion

otError otPlatRadioGetRegion(
  otInstance *aInstance,
  uint16_t *aRegionCode
)

获取地区代码。

无线电区域格式为 ISO 3166 alpha-2 代码的 2 个字节 ASCII 表示。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[out] aRegionCode
电台区域。
返回值
OT_ERROR_INVALID_ARGS
aRegionCode 为 nullptr。
OT_ERROR_FAILED
其他平台特定错误。
OT_ERROR_NONE
已成功获取地区代码。
OT_ERROR_NOT_IMPLEMENTED
该功能未实现。

otPlatRadioGetRssi

int8_t otPlatRadioGetRssi(
  otInstance *aInstance
)

获取最新的 RSSI 测量值。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
返回值
RSSI(以 dBm 为单位)(若有效)。如果 RSSI 无效,则为 127。

otPlatRadioGetState

otRadioState otPlatRadioGetState(
  otInstance *aInstance
)

获取无线装置的当前状态。

OpenThread 不要求。可用于调试和/或应用特定目的。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
返回值
无线装置的当前状态。

otPlatRadioGetSupportedChannelMask

uint32_t otPlatRadioGetSupportedChannelMask(
  otInstance *aInstance
)

获取允许设备开启的无线装置支持的信道掩码。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
返回值
电台支持的信道掩码。

otPlatRadioGetTransmitBuffer

otRadioFrame * otPlatRadioGetTransmitBuffer(
  otInstance *aInstance
)

获取无线装置传输帧缓冲区。

OpenThread 在此缓冲区中形成 IEEE 802.15.4 帧,然后调用 otPlatRadioTransmit() 来请求传输。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
返回值
指向传输帧缓冲区的指针。

otPlatRadioIsCoexEnabled

bool otPlatRadioIsCoexEnabled(
  otInstance *aInstance
)

检查是否已启用电台共存。

在启用 OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE 功能时使用。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
返回值
如果已启用无线电共存,则为 TRUE,否则为 FALSE。

otPlatRadioIsEnabled

bool otPlatRadioIsEnabled(
  otInstance *aInstance
)

检查是否已启用无线装置。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
返回值
如果已启用无线装置,则为 TRUE,否则为 FALSE。

otPlatRadioReceive

otError otPlatRadioReceive(
  otInstance *aInstance,
  uint8_t aChannel
)

将无线装置从“睡眠”转换为接收(打开无线装置)。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aChannel
用于接收数据的渠道。
返回值
OT_ERROR_NONE
已成功转换为接收端。
OT_ERROR_INVALID_STATE
无线装置已停用或正在传输。

otPlatRadioReceiveAt

otError otPlatRadioReceiveAt(
  otInstance *aInstance,
  uint8_t aChannel,
  uint32_t aStart,
  uint32_t aDuration
)

将电台接收时段安排在特定时间和时长。

具体说明
参数
[in] aChannel
要在其上接收音频的电台频道。
[in] aStart
接收窗口的开始时间相对于本地电台时钟,请参阅 otPlatRadioGetNow。无线电接收器应开启,并准备好在窗口开始时接收帧 SHR 的第一个符号。
[in] aDuration
由本地无线装置时钟测量的接收窗口持续时间(以微秒为单位)。超过该持续时间后,应关闭无线装置(如果需要发送 ACK 帧,则应切换到 TX 模式),除非它仍在主动接收帧。在后一种情况下,无线装置应保持接收模式,直到帧接收成功或失败。
返回值
OT_ERROR_NONE
已成功安排接收时间范围。
OT_ERROR_FAILED
无法安排接收时段。

otPlatRadioReceiveDone

void otPlatRadioReceiveDone(
  otInstance *aInstance,
  otRadioFrame *aFrame,
  otError aError
)

无线装置驱动程序调用此方法来通知 OpenThread 已收到帧。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aFrame
指向已接收帧的指针,如果接收操作失败,则为 NULL。
[in] aError
成功接收帧时为 OT_ERROR_NONE;如果接收被中止且未收到帧,则为 OT_ERROR_ABORT;当因缺少 rx 缓冲区空间而无法接收帧时,为 OT_ERROR_NO_BUFS。

otPlatRadioSetChannelMaxTransmitPower

otError otPlatRadioSetChannelMaxTransmitPower(
  otInstance *aInstance,
  uint8_t aChannel,
  int8_t aMaxPower
)

设置特定信道的最大传输功率。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aChannel
电台频道。
[in] aMaxPower
如果传递最大功率(以 dBm 为单位),则传递 OT_RADIO_RSSI_INVALID 会停用此频道。
返回值
OT_ERROR_NOT_IMPLEMENTED
该功能未实现
OT_ERROR_INVALID_ARGS
指定的渠道无效。
OT_ERROR_FAILED
其他平台特定错误。
OT_ERROR_NONE
成功设置最大传输功率。

otPlatRadioSetChannelTargetPower

otError otPlatRadioSetChannelTargetPower(
  otInstance *aInstance,
  uint8_t aChannel,
  int16_t aTargetPower
)

设置指定信道的目标功率。

无线装置驱动程序应将实际输出功率设置为小于或等于目标功率,并尽可能接近目标功率。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aChannel
电台频道。
[in] aTargetPower
目标功率(以 0.01dBm 为单位)。传递 INT16_MAX 将停用此渠道以使用目标功率。
返回值
OT_ERROR_NONE
已成功设置目标功率。
OT_ERROR_INVALID_ARGS
aChannelaTargetPower 无效。
OT_ERROR_NOT_IMPLEMENTED
该功能未实现。

otPlatRadioSetCoexEnabled

otError otPlatRadioSetCoexEnabled(
  otInstance *aInstance,
  bool aEnabled
)

启用无线装置共存。

在启用 OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE 功能时使用。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aEnabled
如果启用无线电共存,则为 TRUE,否则为 FALSE。
返回值
OT_ERROR_NONE
已成功启用。
OT_ERROR_FAILED
无法启用无线装置共存。

otPlatRadioSetRegion

otError otPlatRadioSetRegion(
  otInstance *aInstance,
  uint16_t aRegionCode
)

设置地区代码。

无线电区域格式为 ISO 3166 alpha-2 代码的 2 个字节 ASCII 表示。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aRegionCode
无线装置地区代码。aRegionCode >> 8 是第一个 ASCII 字符,aRegionCode & 0xff 是第二个 ASCII 字符。
返回值
OT_ERROR_FAILED
其他平台特定错误。
OT_ERROR_NONE
已成功设置地区代码。
OT_ERROR_NOT_IMPLEMENTED
该功能未实现。

otPlatRadioSleep

otError otPlatRadioSleep(
  otInstance *aInstance
)

将无线装置从“接收”模式转换为“睡眠”模式(关闭无线装置)。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
返回值
OT_ERROR_NONE
已成功转换到“睡眠”模式。
OT_ERROR_BUSY
无线电正在传输
OT_ERROR_INVALID_STATE
无线装置已停用。

otPlatRadioTransmit

otError otPlatRadioTransmit(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

在无线装置上开始发送序列。

在请求传输之前,调用方必须在 otPlatRadioGetTransmitBuffer() 提供的缓冲区中形成 IEEE 802.15.4 帧。信道和发射功率也包含在 otRadioFrame 结构中。

传输序列包括:

  1. 将无线装置从以下任一状态转换为“传输”:
    • 在设备空闲或 OT_RADIO_CAPS_SLEEP_TO_TX 不受支持时 RX 处于开启状态时接收
    • 如果在设备空闲且支持 OT_RADIO_CAPS_SLEEP_TO_TX 时 RX 关闭,则休眠。
  2. 在指定信道上以指定的传输功率传输 psdu。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aFrame
指向要传输的帧的指针。
返回值
OT_ERROR_NONE
已成功转换为 Transmit。
OT_ERROR_INVALID_STATE
无线装置不处于接收状态。

otPlatRadioTxDone

void otPlatRadioTxDone(
  otInstance *aInstance,
  otRadioFrame *aFrame,
  otRadioFrame *aAckFrame,
  otError aError
)

无线装置驱动程序调用此函数以通知 OpenThread 传输操作已完成,并提供已传输的帧和已接收的确认帧(若适用)。

当无线装置提供 OT_RADIO_CAPS_TRANSMIT_SEC 功能时,无线装置平台层使用无线装置维护的安全帧计数器和密钥索引值更新 aFrame

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aFrame
指向已传输帧的指针。
[in] aAckFrame
指向 ACK 帧的指针,如果未收到 ACK,则为 NULL。
[in] aError
传输帧时为 OT_ERROR_NONE;如果帧已传输但未收到 ACK,则为 OT_ERROR_NO_ACK;由于信道上的活动而无法发生 OT_ERROR_CHANNEL_ACCESS_FAILURE tx;因其他原因而中止传输时,发生 OT_ERROR_ABORT。

otPlatRadioTxStarted

void otPlatRadioTxStarted(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

无线装置驱动程序调用此方法,以通知 OpenThread 传输已开始。

具体说明
参数
[in] aInstance
指向 OpenThread 实例结构的指针。
[in] aFrame
指向正在传输的帧的指针。

otPlatRadioUpdateCslSampleTime

void otPlatRadioUpdateCslSampleTime(
  otInstance *aInstance,
  uint32_t aCslSampleTime
)

更新了无线装置驱动程序中的 CSL 采样时间。

采样时间以副本的形式存储在无线装置驱动程序中,用于在通过 CSL IE 发送 ACK 时计算相位。CSL 接收器的 CSL 样本(窗口)在采样时间之前和之后都延长。CSL 采样时间用于标记 CSL 采样窗口中的一个时间戳,表示在没有不准确/时钟偏移的情况下,应在“理想条件”下接收帧。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aCslSampleTime
下一个采样时间(以微秒为单位)。这是预期帧 MHR 的第一个符号的时间。

资源

OpenThread API 参考文档源自 GitHub 上提供的源代码。如需了解详情,或者为我们的文档做贡献,请参阅资源