Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

運作方式

該模塊包括用於無線電操作的平台抽象。

概要

職能

otPlatDiagRadioReceiveDone ( otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
無線電驅動程序調用此方法,以將接收到的幀通知給OpenThread診斷模塊。
otPlatDiagRadioTransmitDone ( otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
無線電驅動程序調用此方法以通知OpenThread診斷模塊傳輸已完成。
otPlatRadioAddSrcMatchExtEntry ( otInstance *aInstance, const otExtAddress *aExtAddress)
將擴展地址添加到源地址匹配表中。
otPlatRadioAddSrcMatchShortEntry ( otInstance *aInstance, otShortAddress aShortAddress)
在源地址匹配表中添加一個簡短地址。
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, 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)
獲取無線電共存指標。
otPlatRadioGetPreferredChannelMask ( otInstance *aInstance)
uint32_t
獲取設備首選形成的無線電首選頻道掩碼。
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
檢查是否啟用了廣播coex。
otPlatRadioIsEnabled ( otInstance *aInstance)
bool
檢查是否啟用了無線電。
otPlatRadioReceive ( otInstance *aInstance, uint8_t aChannel)
將收音機從睡眠模式轉換為接收模式(打開收音機)。
otPlatRadioReceiveDone ( otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
無線電驅動程序調用此方法以通知OpenThread收到的幀。
otPlatRadioSetChannelMaxTransmitPower ( otInstance *aInstance, uint8_t aChannel, int8_t aMaxPower)
設置特定頻道的最大發射功率。
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發送操作已完成,同時提供發送的幀以及(如果適用)接收的ack幀。
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。

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
源匹配表中沒有可用的條目。

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,該IE包含發送到該探測發起者的Enhanced-ACK中的數據。

細節
參量
[in] aInstance
OpenThread實例結構。
[in] aLinkMetrics
此參數指定要查詢的指標。根據規範4.11.3.4.4.6,最多可以指定2個指標。如果aLinkMetrics按位為0,則將禁用該探測。
[in] aShortAddr
探測發起者的簡稱。
[in] aExtAddr
探測發起者的擴展源地址。 aExtAddr一定不能為NULL
返回值
OT_ERROR_NONE
成功配置了基於增強型ACK的探測。
OT_ERROR_INVALID_ARGS
aExtAddressNULL
OT_ERROR_NOT_FOUND
嘗試清除時找不到由aShortAddress指示的啟動器。
OT_ERROR_NO_BUFS
不再支持啟動器。

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,
  const otExtAddress *aExtAddr
)

啟用或禁用CSL接收器。

細節
參量
[in] aInstance
OpenThread實例結構。
[in] aCslPeriod
CSL週期,0表示禁用CSL。
[in] aExtAddr
CSL接收者的父設備的擴展源地址(當平台生成增強的ack時,平台可能需要知道應該將CSL IE包含到其地址的ack)。
返回值
OT_ERROR_NOT_SUPPORTED
無線電驅動程序不支持CSL。
OT_ERROR_FAILED
其他平台特定的錯誤。
OT_ERROR_NONE
成功啟用或禁用CSL。

otPlatRadioEnableSrcMatch

void otPlatRadioEnableSrcMatch(
  otInstance *aInstance,
  bool aEnable
)

啟用/禁用源地址匹配功能。

源地址匹配功能控制無線電層如何確定響應於子級數據請求命令而發送的ack的“幀暫掛”位。

如果禁用,則無線電層必須將所有ack上的“幀暫掛”設置為數據請求命令。

如果啟用,無線層將使用源地址匹配表來確定是否設置或清除對數據請求命令的應答中的“幀暫掛”位。

源地址匹配表提供了具有待處理幀的子項列表。可以將短地址或擴展/長地址添加到源地址匹配表中。

細節
參量
[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_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
成功檢索coex指標。
OT_ERROR_INVALID_ARGS
aCoexMetrics為NULL。

otPlatRadioGetPreferredChannelMask

uint32_t otPlatRadioGetPreferredChannelMask(
  otInstance *aInstance
)

獲取設備首選形成的無線電首選頻道掩碼。

細節
參量
[in] aInstance
OpenThread實例結構。
退貨
無線電首選的信道掩碼。

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
成功獲取地區代碼。

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
)

檢查是否啟用了廣播coex。

啟用功能OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE時使用此功能。

細節
參量
[in] aInstance
OpenThread實例結構。
退貨
如果啟用了無線電coex,則為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
收音機已禁用或正在傳輸。

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
通過OT_RADIO_RSSI_INVALID的最大功率(dBm)將禁用此通道。
返回值
OT_ERROR_NOT_IMPLEMENTED
該功能未實現
OT_ERROR_INVALID_ARGS
指定的頻道無效。
OT_ERROR_FAILED
其他平台特定的錯誤。
OT_ERROR_NONE
成功設置最大發送功率。

otPlatRadioSetCoexEnabled

otError otPlatRadioSetCoexEnabled(
  otInstance *aInstance,
  bool aEnabled
)

啟用單選框。

啟用功能OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE時使用此功能。

細節
參量
[in] aInstance
OpenThread實例結構。
[in] aEnabled
如果為TRUE,則啟用無線電coex;否則為FALSE。
返回值
OT_ERROR_NONE
成功啟用。
OT_ERROR_FAILED
無法啟用無線電coex。

otPlatRadioSetRegion

otError otPlatRadioSetRegion(
  otInstance *aInstance,
  uint16_t aRegionCode
)

設置地區代碼。

無線電區域格式是ISO 3166 alpha-2代碼的2字節ascii表示。

細節
參量
[in] aInstance
OpenThread實例結構。
[in] aRegionCode
無線電區域。
返回值
OT_ERROR_FAILED
其他平台特定的錯誤。
OT_ERROR_NONE
成功設置地區代碼。

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
成功過渡到傳輸。
OT_ERROR_INVALID_STATE
無線電未處於接收狀態。

otPlatRadioTxDone

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

無線電驅動程序調用此函數以通知OpenThread發送操作已完成,同時提供發送的幀以及(如果適用)接收的ack幀。

當無線電提供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時,採樣時間作為副本存儲在無線電驅動程序中,以計算相位。

細節
參量
[in] aInstance
OpenThread實例結構。
[in] aCslSampleTime
最新的採樣時間。