nl:: Ble:: BleLayer
#include <src/ble/BleLayer.h>
このクラスは、BleLayer プラットフォーム インターフェース関数を介してスタックの上位または BLEEndPoint に関連付けられた WeaveConnection オブジェクトを使用してスタックを下方向に、データを送り込むためのインターフェースを 1 つのスレッドに提供します。
概要
WeaveConnection(WeaveMessageLayer で定義)と BLE 接続を関連付ける方法は 2 つあります。
まず、アプリは着信 BLE 接続を受動的に受信し、対応するプラットフォーム インターフェース関数を介して、この領収書が生成するプラットフォーム固有の BLE_CONNECTION_OBJECT を BleLayer に渡すことができます。これにより、BleLayer は BLE_CONNECTION_OBJECT を BLEEndPoint でラップし、新しい BLE 接続を受信したことを WeaveMessageLayer に通知します。次に、メッセージ層は新しい BLEEndPoint オブジェクトを WeaveConnection 内でラップし、メッセージ層の OnConnectionReceived コールバックを介してこのオブジェクトをアプリケーションに渡します。
第 2 に、アプリは 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
コンストラクタとデストラクタ |
|
---|---|
BleLayer(void)
|
パブリック タイプ |
|
---|---|
@14
|
enum |
BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint)
|
typedefvoid(*
|
パブリック属性 |
|
---|---|
OnWeaveBleConnectReceived
|
BleConnectionReceivedFunct
|
mAppState
|
void *
|
mState
|
enum nl::Ble::BleLayer::@14
[読み取り専用] 現在の状態
|
パブリック関数 |
|
---|---|
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
BleConnectionReceivedFunct OnWeaveBleConnectReceived
mAppState
void * mAppState
mState
enum nl::Ble::BleLayer::@14 mState
[読み取り専用] 現在の状態
パブリック関数
BleLayer
BleLayer( void )
HandleConnectionError
void HandleConnectionError( BLE_CONNECTION_OBJECT connObj, BLE_ERROR err )
HandleIndicationConfirmation
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 読み取りリクエストを受信したときに呼び出されます。
特徴的な書き込みリクエストやサブスクライブの試行など、BleAdapter を介して BleLayer が以前に行った操作が失敗した場合、または BLE 接続が閉じられたときに、プラットフォームはこの関数を呼び出す必要があります。
ほとんどの場合、これにより Weave は関連する WeaveConnection を終了し、基となる BLE 接続を放棄したことをプラットフォームに通知します。
注: BLE 接続のクローズによって Weave へのアップコールが生成されないように、アプリケーションが関連する WeaveConnection を使用して BLE 接続を明示的に閉じる場合は、この WeaveConnection とそのエンドポイント オブジェクトの漏洩を防ぐために、err = BLE_ERROR_APP_CLOSED_CONNECTION を指定して HandleConnectionError を呼び出す必要があります。
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 )
HandleUnsubscribeComplete
bool HandleUnsubscribeComplete( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId )
GATT の登録解除リクエストが成功したときに呼び出されます。
HandleUnsubscribeReceived
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 書き込みリクエストが肯定的な受領確認を受信したときに呼び出されます。
HandleWriteReceived
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 )
ScheduleWork
nl::Weave::System::Error ScheduleWork( nl::Weave::System::Layer::TimerCompleteFunct aComplete, void *aAppState )
プラットフォーム インターフェース関数:
呼び出し規則: Weave は、これらの関数を通じて受け取った PacketBuffers の所有権を取得し、それらを解放するか、所有権をスタックに渡します。
UUID 引数の存続期間については、呼び出しごとに保証されません。
戻り値が true の場合、Weave スタックが対応するメッセージまたは状態表示を正常に処理したことを意味します。「false」は、Weave スタックが失敗したか、処理しないことが選択されたことを意味します。「false」の場合、Weave スタックは PacketBuffer 引数を解放したり、所有権を取得したりすることはありません。このコントラクトにより、プラットフォームは Weave が考慮する特性を把握しなくても、BLE イベントを Weave に渡すことができます。
Weave サービス特性に対して GATT サブスクリプションが確立されると、プラットフォームはこの関数を呼び出す必要があります。
関数が true を返した場合、Weave は BLE 接続を受け入れ、WeaveConnection オブジェクトにラップしています。Weave が BLE 接続を受け入れる場合、プラットフォームは、サブスクリプションが解約された場合、または基盤となる BLE 接続が閉じられる場合、または関連する WeaveConnection が閉じたり解放されたりしなかった場合に、Weave に通知しなければなりません。