BLE

このモジュールには、BLE ホスト通信のためのプラットフォーム抽象化が含まれています。

概要

プラットフォームに Bluetooth LE 4.2 以上を実装する必要があります。

Typedef

otBleRadioPacket typedef
BLE パケットを表します。

関数

otPlatBleDisable(otInstance *aInstance)
Bluetooth Low Energy 無線を無効にします。
otPlatBleEnable(otInstance *aInstance)
Bluetooth Low Energy の無線通信を有効にします。
otPlatBleGapAdvStart(otInstance *aInstance, uint16_t aInterval)
BLE のアドバタイジング手順を開始します。
otPlatBleGapAdvStop(otInstance *aInstance)
BLE のアドバタイジング処理を停止します。
otPlatBleGapDisconnect(otInstance *aInstance)
BLE 接続を切断します。
otPlatBleGapOnConnected(otInstance *aInstance, uint16_t aConnectionId)
void
BLE ドライバは、このメソッドを呼び出して、BLE セントラル デバイスが接続されたことを OpenThread に通知します。
otPlatBleGapOnDisconnected(otInstance *aInstance, uint16_t aConnectionId)
void
BLE ドライバは、このメソッドを呼び出して、BLE セントラル デバイスの接続が解除されたことを OpenThread に通知します。
otPlatBleGattMtuGet(otInstance *aInstance, uint16_t *aMtu)
読み取りは現在 ATT_MTU の値を使用している。
otPlatBleGattOnMtuUpdate(otInstance *aInstance, uint16_t aMtu)
void
BLE ドライバは、このメソッドを呼び出して、ATT_MTU が更新されたことを OpenThread に通知します。
otPlatBleGattServerIndicate(otInstance *aInstance, uint16_t aHandle, const otBleRadioPacket *aPacket)
ATT ハンドル値インジケーターを送信。
otPlatBleGattServerOnWriteRequest(otInstance *aInstance, uint16_t aHandle, const otBleRadioPacket *aPacket)
void
BLE ドライバは、このメソッドを呼び出して、ATT 書き込みリクエスト パケットを受信したことを OpenThread に通知します。

構造体

otBleRadioPacket

BLE パケットを表します。

Typedef

otBleRadioPacket

struct otBleRadioPacket otBleRadioPacket

BLE パケットを表します。

関数

otPlatBleDisable

otError otPlatBleDisable(
  otInstance *aInstance
)

Bluetooth Low Energy 無線を無効にします。

無効にした場合、BLE スタックはイベントキューをフラッシュし、新しいイベントを生成しません。BLE 周辺機器がオフになっているか、低消費電力のスリープ状態になっています。スタックで使用されている動的メモリはすべて解放する必要がありますが、静的メモリは予約済みのままで構いません。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
戻り値
OT_ERROR_NONE
無効に移行しました。
OT_ERROR_FAILED
BLE 無線を無効にできませんでした。

otPlatBleEnable

otError otPlatBleEnable(
  otInstance *aInstance
)

Bluetooth Low Energy の無線通信を有効にします。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
戻り値
OT_ERROR_NONE
有効にしました。
OT_ERROR_FAILED
BLE 無線を有効にできませんでした。

otPlatBleGapAdvStart

otError otPlatBleGapAdvStart(
  otInstance *aInstance,
  uint16_t aInterval
)

BLE のアドバタイジング手順を開始します。

BLE デバイスは、フィルタを適用せず、無方向アドバタイジングを使用しなければなりません。1 つの BLE アドバタイジング パケットをすべてのアドバタイジング チャネル(37、38、39)に送信する必要があります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
[in] aInterval
以降のアドバタイジング パケットの間隔(OT_BLE_ADV_INTERVAL_UNIT 単位)。コンパイル時に設定するデフォルト値の OT_BLE_ADV_INTERVAL_MIN と OT_BLE_ADV_INTERVAL_MAX の範囲、または OT_BLE_ADV_INTERVAL_DEFAULT の範囲内
戻り値
OT_ERROR_NONE
広告掲載の手順を開始しました。
OT_ERROR_INVALID_STATE
BLE デバイスが無効な状態です。
OT_ERROR_INVALID_ARGS
無効な間隔値が指定されました。

otPlatBleGapAdvStop

otError otPlatBleGapAdvStop(
  otInstance *aInstance
)

BLE のアドバタイジング処理を停止します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
戻り値
OT_ERROR_NONE
広告掲載の手順が停止されました。
OT_ERROR_INVALID_STATE
BLE デバイスが無効な状態です。

otPlatBleGapDisconnect

otError otPlatBleGapDisconnect(
  otInstance *aInstance
)

BLE 接続を切断します。

BLE デバイスは、ピア BLE デバイスからの切断時に Remote User Terminated Connection(0x13)理由コードを使用します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
戻り値
OT_ERROR_NONE
接続解除の手順を開始しました。
OT_ERROR_INVALID_STATE
BLE デバイスが無効な状態です。

otPlatBleGapOnConnected

void otPlatBleGapOnConnected(
  otInstance *aInstance,
  uint16_t aConnectionId
)

BLE ドライバは、このメソッドを呼び出して、BLE セントラル デバイスが接続されたことを OpenThread に通知します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
[in] aConnectionId
オープン接続の ID。

otPlatBleGapOnDisconnected

void otPlatBleGapOnDisconnected(
  otInstance *aInstance,
  uint16_t aConnectionId
)

BLE ドライバは、このメソッドを呼び出して、BLE セントラル デバイスの接続が解除されたことを OpenThread に通知します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
[in] aConnectionId
閉じた接続の ID。

otPlatBleGattMtuGet

otError otPlatBleGattMtuGet(
  otInstance *aInstance,
  uint16_t *aMtu
)

読み取りは現在 ATT_MTU の値を使用している。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
[out] aMtu
現在の ATT_MTU 値を出力するためのポインタ。
戻り値
OT_ERROR_NONE
ATT_MTU 値が aMtu に配置されている。
OT_ERROR_FAILED
BLE デバイスが ATT_MTU を特定できない

otPlatBleGattOnMtuUpdate

void otPlatBleGattOnMtuUpdate(
  otInstance *aInstance,
  uint16_t aMtu
)

BLE ドライバは、このメソッドを呼び出して、ATT_MTU が更新されたことを OpenThread に通知します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
[in] aMtu
更新された ATT_MTU 値。

otPlatBleGattServerIndicate

otError otPlatBleGattServerIndicate(
  otInstance *aInstance,
  uint16_t aHandle,
  const otBleRadioPacket *aPacket
)

ATT ハンドル値インジケーターを送信。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
[in] aHandle
指定する属性のハンドル。
[in] aPacket
パケットへのポインタには、示される値が含まれています。
戻り値
OT_ERROR_NONE
ATT ハンドル値の表示を送信しました。
OT_ERROR_INVALID_STATE
BLE デバイスが無効な状態です。
OT_ERROR_INVALID_ARGS
無効なハンドル値、データまたはデータ長が指定されました。
OT_ERROR_NO_BUFS
利用可能な内部バッファが見つかりません。

otPlatBleGattServerOnWriteRequest

void otPlatBleGattServerOnWriteRequest(
  otInstance *aInstance,
  uint16_t aHandle,
  const otBleRadioPacket *aPacket
)

BLE ドライバは、このメソッドを呼び出して、ATT 書き込みリクエスト パケットを受信したことを OpenThread に通知します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
[in] aHandle
書き込まれる属性のハンドル。
[in] aPacket
パケットへのポインタには、属性に書き込まれる値が含まれています。

マクロ

OT_BLE_ADV_INTERVAL_DEFAULT

 OT_BLE_ADV_INTERVAL_DEFAULT 100

アドバタイジング パケットのデフォルトの間隔(ミリ秒)。

OT_BLE_ADV_INTERVAL_MAX

 OT_BLE_ADV_INTERVAL_MAX 0x4000

パケットのアドバタイジングの最大許容間隔(OT_BLE_ADV_INTERVAL_UNIT 単位、10.24 秒)。

OT_BLE_ADV_INTERVAL_MIN

 OT_BLE_ADV_INTERVAL_MIN 0x0020

パケットのアドバタイジングの最小許容間隔(OT_BLE_ADV_INTERVAL_UNIT 単位、20 ミリ秒)。

OT_BLE_ADV_INTERVAL_UNIT

 OT_BLE_ADV_INTERVAL_UNIT OT_BLE_TIMESLOT_UNIT

間隔時間の計算に使用する単位(0.625 ミリ秒)。

OT_BLE_ATT_MTU_MAX

 OT_BLE_ATT_MTU_MAX 67

ATT MTU の許容最大サイズ(23 以上にする必要があります)。

OT_BLE_DEFAULT_POWER

 OT_BLE_DEFAULT_POWER 0

BLE のデフォルトの電力値。

OT_BLE_TIMESLOT_UNIT

 OT_BLE_TIMESLOT_UNIT 625

PHY レイヤでのタイムスロット時間(マイクロ秒単位)(0.625 ms)。

関連情報

OpenThread API リファレンスのトピックは、GitHub で入手できるソースコードに由来しています。 詳細について、またはドキュメントへの投稿については、リソースをご覧ください。