Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

nl::Ble::BleLayer

#include <src/ble/BleLayer.h>

このクラスは、単一スレッド用のインターフェースとして、BleLayer プラットフォーム インターフェース関数を使用してスタックの上位に移動することも、BLEEndPoint に関連付けられた WeaveConnection オブジェクトを介してスタックをダウンさせることもできます。

まとめ

WeaveConnection(WeaveMessageLayer で定義)を BLE 接続に関連付けるには、次の 2 つの方法があります。

まず、アプリは受信 BLE 接続を受動的に受信し、この領収書が対応するプラットフォーム インターフェース関数を介して BleLayer に生成するプラットフォーム固有の BLE_CONNECTION_OBJECT を渡します。これにより、BleLayer で BLE_CONNECTION_OBJECT が BLEEndPoint 内にラップされ、新しい BLE 接続が受信されたことが WeaveMessageLayer に通知されます。メッセージ レイヤは、新しい BLEEndPoint オブジェクトを WeaveConnection でラップし、そのメッセージをメッセージ レイヤの OnConnectionReceived コールバックを介してアプリケーションに渡します。

次に、アプリケーションは、BLE 周辺機器への接続など、発信 BLE 接続をアクティブに形成できます。次に、WeaveMessageLayer を使用して新しい WeaveConnection を作成し、この接続に認証タイプを割り当てて、WeaveConnection::ConnectBle で新しい BLE 接続の BLE_CONNECTION_OBJECT にバインドします。この関数は、WeaveConnection の認証タイプ メンバー変数で指定された安全なセッション タイプを確立します。

継承

直接的な既知のサブクラス:
nl::Weave::DeviceLayer::Internal::BLEManagerImpl
nl::Weave::DeviceLayer::Internal::BLEManagerImpl
nl::Weave::DeviceLayer::Internal::BLEManagerImpl{/1

コンストラクタとデストラクタ

BleLayer(void)

パブリック タイプ

@14 列挙型
BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint) typedef
void(*

パブリック属性

OnWeaveBleConnectReceived
BleConnectionReceivedFunct
mAppState
void *
mState
enum nl::Ble::BleLayer::@14
[READ-ONLY] 現在の状態

パブリック関数

HandleConnectionError(BLE_CONNECTION_OBJECT connObj, BLE_ERROR err)
void
HandleIndicationConfirmation(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
GATT 指示が肯定的な受領確認を受け取ったら呼び出します。
HandleIndicationReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
GATT インジケーションの受信時に呼び出します。
HandleReadReceived(BLE_CONNECTION_OBJECT connObj, BLE_READ_REQUEST_CONTEXT requestContext, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
GATT 読み取りリクエストの受信時に呼び出します。
HandleSubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
GATT 登録リクエストが成功したときに呼び出します。
HandleSubscribeReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
HandleUnsubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
GATT 登録解除リクエストが成功した場合に呼び出します。
HandleUnsubscribeReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
HandleWriteConfirmation(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
未処理の GATT 書き込みリクエストが肯定的な受領確認を受け取ったときに呼び出します。
HandleWriteReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
GATT 書き込みリクエストの受信時に呼び出します。
Init(BlePlatformDelegate *platformDelegate, BleApplicationDelegate *appDelegate, Weave::System::Layer *systemLayer)
NewBleEndPoint(BLEEndPoint **retEndPoint, BLE_CONNECTION_OBJECT connObj, BleRole role, bool autoClose)
ScheduleWork(nl::Weave::System::Layer::TimerCompleteFunct aComplete, void *aAppState)
nl::Weave::System::Error
プラットフォーム インターフェース関数:
Shutdown(void)

パブリック タイプ

14

 @14

BleConnectionReceivedFunct

void(* BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint)

パブリック属性

OnWeaveBleConnectReceived(OnWeaveBleConnect の受信)

BleConnectionReceivedFunct OnWeaveBleConnectReceived

モバイルアプリ

void * mAppState

mState

enum nl::Ble::BleLayer::@14 mState

[READ-ONLY] 現在の状態

パブリック関数

BlLayer

 BleLayer(
  void
)

HandleConnectionError

void HandleConnectionError(
  BLE_CONNECTION_OBJECT connObj,
  BLE_ERROR err
)

ハンドル表示の確認

bool HandleIndicationConfirmation(
  BLE_CONNECTION_OBJECT connObj,
  const WeaveBleUUID *svcId,
  const WeaveBleUUID *charId
)

GATT 指示が肯定的な受領確認を受け取ったら呼び出します。

HandleIndicationReceived(ハンドル表示の受信)

bool HandleIndicationReceived(
  BLE_CONNECTION_OBJECT connObj,
  const WeaveBleUUID *svcId,
  const WeaveBleUUID *charId,
  PacketBuffer *pBuf
)

GATT インジケーションの受信時に呼び出します。

HandleReadReceived

bool HandleReadReceived(
  BLE_CONNECTION_OBJECT connObj,
  BLE_READ_REQUEST_CONTEXT requestContext,
  const WeaveBleUUID *svcId,
  const WeaveBleUUID *charId
)

GATT 読み取りリクエストの受信時に呼び出します。

プラットフォームは、特性的な書き込みリクエストやサブスクライブ試行など、BleLayer によって実行された以前の操作が失敗したか、BLE 接続が閉じられたときに、この関数を呼び出す必要があります。

ほとんどの場合、これにより Weave に対して、関連付けられている WeaveConnection を閉じ、基盤となる BLE 接続を放棄したことをプラットフォームに通知します。

注: アプリが関連する WeaveConnection との BLE 接続を明示的に閉じ、BLE 接続のクローズによって Weave へのアップコールが生成されないようにするには、この WeaveConnection とそのエンドポイント オブジェクトのリークを防ぐために、HandlerError を err = BLE_ERROR_APP_CLOSED_CONNECTION で呼び出す必要があります。

HandleSubscribeComplete

bool HandleSubscribeComplete(
  BLE_CONNECTION_OBJECT connObj,
  const WeaveBleUUID *svcId,
  const WeaveBleUUID *charId
)

GATT 登録リクエストが成功したときに呼び出します。

Weave サービスの特性で GATT の登録解除がリクエストされた場合、つまり Weave サービスの特性に対する既存の GATT サブスクリプションが解約された場合、プラットフォームはこの関数を呼び出す必要があります。

HandleSubscribeReceived

bool HandleSubscribeReceived(
  BLE_CONNECTION_OBJECT connObj,
  const WeaveBleUUID *svcId,
  const WeaveBleUUID *charId
)

ハンドル登録状況の解除

bool HandleUnsubscribeComplete(
  BLE_CONNECTION_OBJECT connObj,
  const WeaveBleUUID *svcId,
  const WeaveBleUUID *charId
)

GATT 登録解除リクエストが成功した場合に呼び出します。

ハンドル配信停止の受信

bool HandleUnsubscribeReceived(
  BLE_CONNECTION_OBJECT connObj,
  const WeaveBleUUID *svcId,
  const WeaveBleUUID *charId
)

HandleWriteConfirmation

bool HandleWriteConfirmation(
  BLE_CONNECTION_OBJECT connObj,
  const WeaveBleUUID *svcId,
  const WeaveBleUUID *charId
)

未処理の GATT 書き込みリクエストが肯定的な受領確認を受け取ったときに呼び出します。

ハンドル書き込み受信

bool HandleWriteReceived(
  BLE_CONNECTION_OBJECT connObj,
  const WeaveBleUUID *svcId,
  const WeaveBleUUID *charId,
  PacketBuffer *pBuf
)

GATT 書き込みリクエストの受信時に呼び出します。

init

BLE_ERROR Init(
  BlePlatformDelegate *platformDelegate,
  BleApplicationDelegate *appDelegate,
  Weave::System::Layer *systemLayer
)

NewBleEndPoint

BLE_ERROR NewBleEndPoint(
  BLEEndPoint **retEndPoint,
  BLE_CONNECTION_OBJECT connObj,
  BleRole role,
  bool autoClose
)

スケジュール設定

nl::Weave::System::Error ScheduleWork(
  nl::Weave::System::Layer::TimerCompleteFunct aComplete,
  void *aAppState
)

プラットフォーム インターフェース関数:

呼び出し規則: Weave はこれらの関数を通じて受信した PacketBuffer の所有権を担い、それらを解放するか、所有権をスタックに渡します。

呼び出し後も、UUID 引数の存続時間は保証されません。

'true'戻り値は、Weave スタックが対応するメッセージまたは状態の表示を正常に処理したことを意味します。'false'は、Weave スタックが失敗したか、処理しないことを選択したことを意味します。'false、'の場合、Weave スタックは PacketBuffer 引数を解放しません。また、所有権を取得しません。この契約により、Weave が認識している特性がなくても、プラットフォームは Weave に BLE イベントを渡すことができます。

プラットフォームは、Weave サービスの機能に対して GATT サブスクリプションが確立されたときに、この関数を呼び出す必要があります。

この関数が true を返した場合、Weave は BLE 接続を受け入れ、WeaveConnection オブジェクトにラップしています。Weave が BLE 接続を受け入れる場合、プラットフォームは、サブスクリプションが解約された、または基礎となる BLE 接続が閉じられたことを Weave に通知しなければなりません。そうしないと、関連する WeaveConnection が閉じられたり、解放されたりすることはありません。

シャットダウン

BLE_ERROR Shutdown(
  void
)