nl::
  #include <src/ble/BleLayer.h>
  このクラスは、BleLayer プラットフォーム インターフェース関数を介してスタックを上位にするか、BLEEndPoint に関連付けられた WeaveConnection オブジェクトを介してスタックを下方に誘導するシングル スレッドのインターフェースを提供します。
概要
WeaveConnection(WeaveMessageLayer で定義)を BLE 接続に関連付けるには、次の 2 つの方法があります。
まず、アプリは受信 BLE 接続を受動的に受信し、この領収書で生成したプラットフォーム固有の BLE_CONNECTION_OBJECT を、対応するプラットフォーム インターフェース関数を介して BleLayer に渡します。これにより、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
| コンストラクタとデストラクタ | |
|---|---|
| BleLayer(void) | 
| 公開タイプ | |
|---|---|
| @14 | enum | 
| BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint) | typedef void(* | 
| パブリック属性 | |
|---|---|
| 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) | boolGATT インジケーションを受信したときに呼び出します。 | 
| HandleReadReceived(BLE_CONNECTION_OBJECT connObj, BLE_READ_REQUEST_CONTEXT requestContext, const WeaveBleUUID *svcId, const WeaveBleUUID *charId) | boolGATT 読み取りリクエストを受信したときに呼び出されます。 | 
| HandleSubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId) | boolGATT サブスクライブ リクエストが成功したときに呼び出します。 | 
| HandleSubscribeReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId) | bool | 
| HandleUnsubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId) | boolGATT 登録解除リクエストが成功したときに呼び出します。 | 
| 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) | boolGATT 書き込みリクエストを受信したときに呼び出します。 | 
| 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 接続が閉じられたときに、この関数を呼び出す必要があります。
これにより、ほとんどの場合、関連付けられている 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 接続が閉じられたときに Weave に通知しなければなりません。そうしないと、関連する WeaveConnection が閉じたり解放されたりすることはありません。