無線電操作
這個模組包含無線電作業的平台抽象化機制。
摘要
函式 |
|
---|---|
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)
|
針對特定發起者啟用/停用或更新無線電中的增強型探測器。
|
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
檢查是否啟用無線電 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)
|
啟用無線電 Coex。
|
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,通知 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 )
針對特定發起者啟用/停用或更新無線電中的增強型探測器。
由特定探測發起者設定強化型 Proxy 探測功能後,傳送至該節點的強化型 IE 應包含含有連結指標資料的供應商專屬 IE。此方法會通知無線電開始/停止收集連結指標資料,並納入供應商專用 IE,其中含有傳送給該探測啟動者的增強型 IE 資料。
詳細說明 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||
傳回值 |
|
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 )
啟用/停用來源地址比對功能。
來源地址比對功能可控制無線電圖層如何針對回應來自子項的資料要求指令傳送的堆疊,決定「影格待處理」位元。
如果停用,無線電圖層必須將所有 kView 上的「FramePending」設為資料要求指令。
如果啟用,無線電圖層就會根據來源地址對照表,決定是否要在資料要求指令的堆疊中設定或清除「影格待處理」位元。
來源地址對照表提供了有待處理影格的子項清單。來源地址對照表可以是短地址或延伸/長地址。
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|
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 )
固定的不確定性 (即
隨機時基誤差),以 10 微秒為單位。
此元素可指定在傳輸時間實際抵達時,相較於經過時間而計算出的最差案例常數正正負數 (以當地無線電時鐘為準)。除了經過時間累積的不確定性外,CSL 管道樣本 (「RX 回溯期」) 必須延長兩倍,這樣在出現隨機抵達時間時基誤差時,本機接收器保證能偵測到實際傳輸作業。
詳細說明 | |||
---|---|---|---|
參數 |
|
||
傳回 |
CSL 不確定性,單位為 10 單位。
|
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 測量。
詳細說明 | |||
---|---|---|---|
參數 |
|
||
傳回 |
dBm 中的 RSSI (如果有效)。127 表示 RSSI 無效。
|
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 )
檢查是否啟用無線電 Coex。
啟用 OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE 功能時使用。
詳細說明 | |||
---|---|---|---|
參數 |
|
||
傳回 |
如果已啟用無線電 Coex,則為 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 )
啟用無線電 Coex。
啟用 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
- 如果裝置在閒置時 RX 關閉,且支援 OT_RADIO_CAPS_SLEEP_TO_TX,則為休眠狀態。
- 使用指定通道和指定的傳輸功率傳輸通道。
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回值 |
|
otPlatRadioTxDone
void otPlatRadioTxDone( otInstance *aInstance, otRadioFrame *aFrame, otRadioFrame *aAckFrame, otError aError )
無線電驅動程式會呼叫此函式來通知 OpenThread,通知 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 範例 (window) 延伸自取樣時間之前與之後。CSL 取樣時間會標示 CSL 取樣視窗中的時間戳記,如果在「理想條件」中收到的影格,在沒有不準確/時鐘偏移的情況下,就會得到這個時間戳記。
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|
資源
OpenThread API 參考資料主題源自原始碼,請前往 GitHub 取得。如要瞭解詳情或對說明文件做出貢獻,請參閱資源。