無線操作

このモジュールには、ラジオ操作のためのプラットフォーム抽象化が含まれています。

概要

関数

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)
無線通信を Receive から Sleep に移行します(無線をオフにします)。
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 は受信が中止され、フレームが受信されなかったときに、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 を実行できませんでした。その他の理由で送信が中止された場合は OT_ERROR_ABORT。

otPlatRadioAddCalibratedPower

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

指定されたチャネルの調整された電力を電力キャリブレーション テーブルに追加します。

aActualPower は、無線ハードウェア モジュールのパラメータが aRawPowerSetting に設定されているときに測定される実際の出力電力です。

raw 電力設定は不透明なバイト配列です。OpenThread は、raw 電力設定の形式を定義しません。形式はラジオのハードウェア関連であり、デベロッパーがプラットフォームのラジオ ドライバで定義する必要があります。たとえば、無線ハードウェアに無線チップと FEM チップの両方が含まれている場合、未加工電力の設定は無線電力レジスタと FEM ゲイン値の組み合わせになります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
[in] aChannel
ラジオ チャンネル。
[in] aActualPower
実際の電力は 0.01 dBm です。
[in] aRawPowerSetting
生電力設定のバイト配列へのポインタ。
[in] aRawPowerSettingLength
aRawPowerSetting の長さ。
戻り値
OT_ERROR_NONE
調整された電力を電力キャリブレーション テーブルに追加しました。
OT_ERROR_NO_BUFS
電力調整テーブルに使用可能なエントリがありません。
OT_ERROR_INVALID_ARGS
aChannelaActualPower、または aRawPowerSetting が無効であるか、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 を含める必要があります。このメソッドは、リンク指標データを収集するために開始/停止するよう無線通信に通知します。また、そのプロービング イニシエータに送信される Enhanced-ACK のデータを含むベンダー固有の IE を含めます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
[in] aLinkMetrics
このパラメータは、クエリする指標を指定します。仕様 4.11.3.4.4.6 に従い、最大 2 つの指標を指定できます。aLinkMetrics がビット単位 0 の場合、プローブは無効になります。
[in] aShortAddress
プローブ イニシエータの短いアドレス。
[in] aExtAddress
プローブ イニシエータの拡張送信元アドレス。aExtAddrNULL であってはなりません。
戻り値
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 期間。CSL を無効にする場合は 0。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
)

固定の不確実性(

ランダム ジッター)を 10 マイクロ秒単位で表したものです。

これは、経過時間に関係なく、ローカルの電波時計を基準として計算された送信時間から実際の送信時間の正または負の偏差の最悪値の偏差を示します。経過時間とともに蓄積される不確実性に加えて、CSL チャネル サンプル(「RX ウィンドウ」)は、ランダム到着時間ジッターが存在する場合でも実際の送信がローカル受信機によって検出されることが保証されるように、この偏差の 2 倍だけ拡張する必要があります。

詳細
パラメータ
[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 が無効か、aRawPowerSetting または aRawPowerSettingLength が 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 は受信が中止され、フレームが受信されなかったときに、OT_ERROR_NO_BUFS は rx バッファ空間の不足が原因でフレームを受信できなかった場合です。

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.01 dBm)INT16_MAX を渡すと、このチャネルは無効になり、ターゲット電力が使用されます。
戻り値
OT_ERROR_NONE
目標電力を設定しました。
OT_ERROR_INVALID_ARGS
aChannel または aTargetPower が無効です。
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 は 2 番目の ASCII 文字です。
戻り値
OT_ERROR_FAILED
その他のプラットフォーム固有のエラー。
OT_ERROR_NONE
地域コードを設定しました。
OT_ERROR_NOT_IMPLEMENTED
この機能は実装されていません。

otPlatRadioSleep

otError otPlatRadioSleep(
  otInstance *aInstance
)

無線通信を Receive から Sleep に移行します(無線をオフにします)。

詳細
パラメータ
[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. 次のいずれかの状態から無線通信を Transmit に移行する。
    • デバイスがアイドル状態のときに RX がオンの場合、または OT_RADIO_CAPS_SLEEP_TO_TX がサポートされていない場合に受信する
    • デバイスがアイドル状態のときに RX がオフになり、OT_RADIO_CAPS_SLEEP_TO_TX がサポートされている場合はスリープします。
  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 に通知し、送信フレームと受信した確認応答フレーム(該当する場合)の両方を提供します。

無線通信で 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 が受信されなかった場合)、OT_ERROR_CHANNEL_ACCESS_FAILURE tx はチャネルのアクティビティが原因で発生しなかった場合、OT_ERROR_ABORT(他の理由で送信が中止された場合は 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 で入手できるソースコードに由来しています。 詳細について、またはドキュメントへの投稿については、リソースをご覧ください。