透過集合功能整理內容 你可以依據偏好儲存及分類內容。

無線電操作

這個模組包含無線電作業的平台抽象層。

摘要

Functions

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
取得目前用於安排 CSL 運算時鐘的精確度,單位為 ± ppm。
otPlatRadioGetCslUncertainty(otInstance *aInstance)
uint8_t
以 10 微秒為單位,針對裝置安排 CSL 傳輸作業的固定不確定度。
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
檢查是否啟用無線電 coex。
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 傳輸作業已完成,同時提供已傳輸的影格和收到的 ack 影格 (如適用)。
otPlatRadioTxStarted(otInstance *aInstance, otRadioFrame *aFrame)
void
無線電驅動程式會呼叫這個方法,通知 OpenThread 傳輸開始。
otPlatRadioUpdateCslSampleTime(otInstance *aInstance, uint32_t aCslSampleTime)
void
更新無線電驅動程式的 CSL 樣本時間。

Functions

otPlatDiagRadioReceiveDone

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

無線電驅動程式會呼叫這個方法來通知接收影格的 OpenThread 診斷模組。

啟用診斷功能時,系統會使用此功能。

詳細資料
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aFrame
已接收影格的指標,如果接收作業失敗,則指向 NULL。
[in] aError
OT_ERROR_NONE 成功接收影格時,OT_ERROR_ABORT 會在接收後取消且收到影格時出現 OT_ERROR_NO_BUFS,但因缺少 Rx 緩衝區空間而無法接收影格。

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,或因其他原因而停止傳輸。

otPlatRadioAddCalibratingPower

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

將指定頻道經過校正的功率加入功率校正表。

注意:此 API 為可選的廣播平台 API。但可由平台層實作。 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,其中含有傳送至該探測啟動者的 Enhanced-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
未執行此功能。

otPlatRadio 停用

otError otPlatRadioDisable(
  otInstance *aInstance
)

停用收音機。

詳細資料
參數
[in] aInstance
OpenThread 執行個體結構。
回傳值
OT_ERROR_NONE
已成功轉換至已停用狀態。
OT_ERROR_INVALID_STATE
電台處於休眠狀態。

otPlatRadio 啟用

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。
[in] aShortAddr
CSL 接收器的對等來源短位址。
[in] aExtAddr
CSL 接收器的擴充來源位址。
回傳值
kErrorNotImplemented
無線電驅動程式不支援 CSL。
kErrorFailed
其他平台特有錯誤。
kErrorNone
成功啟用或停用 CSL。

otPlatRadioEnableSrcMatch

void otPlatRadioEnableSrcMatch(
  otInstance *aInstance,
  bool aEnable
)

啟用/停用來源地址比對功能。

來源地址比對功能可控制無線電圖層針對回應子項資料指令而傳送的封包,決定「待定影格」位元的方式。

如果停用此選項,廣播圖層必須將所有影格的「Frame 處理中」設為資料要求指令。

啟用時,無線電圖層會使用來源位址比對表,以判斷是否要設定或清除資料要求指令中的堆疊的「待處理的影格」位元。

來源地址比對表格會顯示有待處理頁框的兒童清單。可在來源地址比對表格中,新增簡短地址或延伸/長地址。

詳細資料
參數
[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
)

取得無線電共存指標。

啟用 OPENOPEN_CONFIG_PLATFORM_RADIO_COEX_ENABLE 功能時,系統就會使用這個函式。

詳細資料
參數
[in] aInstance
OpenThread 執行個體結構。
[out] aCoexMetrics
指向共存指標結構的指標。
回傳值
OT_ERROR_NONE
成功擷取 Coco 指標。
OT_ERROR_INVALID_ARGS
aCoexMetrics 為 NULL。

otPlatRadioGetCslAccuracy

uint8_t otPlatRadioGetCslAccuracy(
  otInstance *aInstance
)

取得目前用於安排 CSL 運算時鐘的精確度,單位為 ± ppm。

詳細資料
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
傳回
目前的 CSL rx/tx 排程偏移,單位為 ± ppm。

otPlatRadioGetCslUn 不確定 ty

uint8_t otPlatRadioGetCslUncertainty(
  otInstance *aInstance
)

以 10 微秒為單位,針對裝置安排 CSL 傳輸作業的固定不確定度。

詳細資料
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
傳回
CSL 的不確定性單位為 10 個單位。

otPlatRadioGetPreferredChannelMask

uint32_t otPlatRadioGetPreferredChannelMask(
  otInstance *aInstance
)

取得裝置偏好使用的無線電通道遮罩。

詳細資料
參數
[in] aInstance
OpenThread 執行個體結構。
傳回
廣播電台偏好頻道遮罩。

otPlatRadioGetRawPowerSetting

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

取得指定頻道的原始功率設定。

注意:OpenThread src/core/utils 會實作 API otPlatRadioAddCalibratedPower()otPlatRadioClearCalibratedPowers()otPlatRadioSetChannelTargetPower() 的預設實作。這個 API 是由預設的實作提供,可取得指定頻道的原始功率設定。如果平台未使用預設實作,則可忽略這個 API。 平台無線電層應根據無線電圖層定義的格式剖析原始功率設定,並設定每個無線電硬體模組的參數。

詳細資料
參數
[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 字符 cisi 表示。

詳細資料
參數
[in] aInstance
OpenThread 執行個體結構。
[out] aRegionCode
廣播地區。
回傳值
OT_ERROR_INVALID_ARGS
aRegionCode 為空值。
OT_ERROR_FAILED
其他平台特有錯誤。
OT_ERROR_NONE
已成功取得地區代碼。
OT_ERROR_NOT_IMPLEMENTED
未執行此功能。

OTPPRadioRadioGetRssi

int8_t otPlatRadioGetRssi(
  otInstance *aInstance
)

取得最新的 RSSI 測量結果。

詳細資料
參數
[in] aInstance
OpenThread 執行個體結構。
傳回
這個 IBI 的 RSSI 為有效值,RSS1 無效時為 127。

otPlatRadioGetState

otRadioState otPlatRadioGetState(
  otInstance *aInstance
)

取得廣播的目前狀態。

OpenThread 不需要此函式。此 API 可能用來偵錯及/或特定應用程式。

詳細資料
參數
[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。

啟用 OPENOPEN_CONFIG_PLATFORM_RADIO_COEX_ENABLE 功能時,系統就會使用這個函式。

詳細資料
參數
[in] aInstance
OpenThread 執行個體結構。
傳回
如已啟用無線電 coco,則傳回 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
已成功轉換為 Receive。
OT_ERROR_INVALID_STATE
收音機已停用或傳輸。

OTPPRadioRadioReceiveAt

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

安排 特定 時間 時 的 電台 接收 時間。

詳細資料
參數
[in] aChannel
要接收的廣播頻道。
[in] aStart
接收視窗開始時間 (以毫秒為單位)。
[in] aDuration
接收視窗持續時間 (以毫秒為單位)
回傳值
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 會在接收後取消且收到影格時出現 OT_ERROR_NO_BUFS,但因缺少 Rx 緩衝區空間而無法接收影格。

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
已成功設定最大傳輸功率。

otPlatRadioSetChannelTargetPower

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

設定指定頻道的目標功率。

注意:此 API 為可選的廣播平台 API。至於執行該平台,則需由平台層決定。如果實作了這個 API,應停用 otPlatRadioSetTransmitPower() 函式。無線電驅動程式應將實際輸出功率設為小於或等於目標功率,並盡可能接近目標功率。

詳細資料
參數
[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
)

啟用電台。

啟用 OPENOPEN_CONFIG_PLATFORM_RADIO_COEX_ENABLE 功能時,系統就會使用這個函式。

詳細資料
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aEnabled
是 TRUE 可啟用無線電 coco,否則為 FALSE。
回傳值
OT_ERROR_NONE
已成功啟用。
OT_ERROR_FAILED
無法啟用電台。

otPlatRadioSetRegion

otError otPlatRadioSetRegion(
  otInstance *aInstance,
  uint16_t aRegionCode
)

設定區域代碼。

射波地域格式是 ISO 3166 alpha-2 代碼的 2 字符 cisi 表示。

詳細資料
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aRegionCode
廣播地區。
回傳值
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
已成功轉換至傳輸。
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、傳送影格時接收 OT_ERROR_NO_ACK、未收到 ACK、因活動

OTPPRadioRadioTxStarted

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
最新的範例時間。

資源

OpenThread API 參考資料主題來自原始碼,可在 GitHub 取得。如需詳細資訊或為說明文件貢獻一己之力,請參閱資源