Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

nl :: Ble :: BleLayer

#include <src/ble/BleLayer.h>

Lớp này cung cấp giao diện cho một luồng duy nhất để truyền dữ liệu lên ngăn xếp thông qua các chức năng giao diện nền tảng BleLayer hoặc xuống ngăn xếp qua đối tượng WeaveConnection được liên kết với BLEEndPoint .

Tóm lược

Có hai cách để kết hợp WeaveConnection (được xác định bởi WeaveMessageLayer) với kết nối BLE:

Đầu tiên, ứng dụng có thể nhận một cách thụ động kết nối BLE đến và chuyển BLE_CONNECTION_OBJECT dành riêng cho nền tảng mà biên nhận này tạo cho BleLayer thông qua chức năng giao diện nền tảng tương ứng. Điều này khiến BleLayer bọc BLE_CONNECTION_OBJECT trong BLEEndPoint và thông báo cho WeaveMessageLayer rằng đã nhận được kết nối BLE mới. Sau đó, lớp thông báo bao bọc đối tượng BLEEndPoint mới trong một WeaveConnection và chuyển đối tượng này cho ứng dụng thông qua lệnh gọi lại OnConnectionReceive của lớp thông báo.

Thứ hai, ứng dụng có thể chủ động hình thành kết nối BLE gửi đi, ví dụ: bằng cách kết nối với thiết bị ngoại vi BLE. Sau đó, nó tạo một WeaveConnection mới thông qua WeaveMessageLayer, chỉ định một loại xác thực cho kết nối này và liên kết nó với BLE_CONNECTION_OBJECT cho kết nối BLE mới qua WeaveConnection :: ConnectBle. Sau đó, hàm này thiết lập kiểu phiên bảo mật được chỉ định bởi biến thành viên kiểu xác thực của WeaveConnection.

Di sản

Các lớp con đã biết trực tiếp:
  nl :: Weave :: DeviceLayer :: Internal :: BLEManagerImpl
  nl :: Weave :: DeviceLayer :: Internal :: BLEManagerImpl
  nl :: Weave :: DeviceLayer :: Internal :: BLEManagerImpl

Người xây dựng và Người phá hủy

BleLayer (void)

Các loại công khai

@14 enum
BleConnectionReceivedFunct )(BLEEndPoint *newEndPoint) typedef
void(*

Thuộc tính công cộng

OnWeaveBleConnectReceived
BleConnectionReceivedFunct
mAppState
void *
mState
enum nl::Ble::BleLayer::@14
[CHỈ ĐỌC] Trạng thái hiện tại

Chức năng công cộng

HandleConnectionError ( BLE_CONNECTION_OBJECT connObj, BLE_ERROR err)
void
HandleIndicationConfirmation ( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Gọi khi có chỉ báo GATT sắp sửa nhận được xác nhận đã nhận.
HandleIndicationReceived ( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Gọi khi nhận được chỉ báo GATT.
HandleReadReceived ( BLE_CONNECTION_OBJECT connObj, BLE_READ_REQUEST_CONTEXT requestContext, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Gọi khi nhận được yêu cầu đọc GATT.
HandleSubscribeComplete ( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Gọi khi yêu cầu đăng ký GATT thành công.
HandleSubscribeReceived ( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
HandleUnsubscribeComplete ( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Gọi khi yêu cầu hủy đăng ký GATT thành công.
HandleUnsubscribeReceived ( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
HandleWriteConfirmation ( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Gọi khi yêu cầu viết GATT chưa thanh toán nhận được xác nhận đã nhận.
HandleWriteReceived ( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Gọi khi nhận được yêu cầu ghi 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
Các chức năng giao diện nền tảng:
Shutdown (void)

Các loại công khai

@ 14

 @14

BleConnectionReceiveFunct

void(* BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint)

Thuộc tính công cộng

OnWeaveBleConnectReceive

BleConnectionReceivedFunct OnWeaveBleConnectReceived

mAppState

void * mAppState

mState

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

[CHỈ ĐỌC] Trạng thái hiện tại

Chức năng công cộng

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
)

Gọi khi có chỉ báo GATT sắp sửa nhận được xác nhận đã nhận.

Xử lý

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

Gọi khi nhận được chỉ báo GATT.

Xử lý đã đọc

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

Gọi khi nhận được yêu cầu đọc GATT.

Nền tảng phải gọi chức năng này khi bất kỳ hoạt động nào trước đó do BleLayer thực hiện thông qua BleAdapter không thành công, chẳng hạn như yêu cầu ghi đặc trưng hoặc nỗ lực đăng ký hoặc khi kết nối BLE bị đóng.

Trong hầu hết các trường hợp, điều này sẽ nhắc Weave đóng WeaveConnection được liên kết và thông báo cho nền tảng đó rằng nó đã từ bỏ kết nối BLE cơ bản.

LƯU Ý: nếu ứng dụng đóng một cách rõ ràng kết nối BLE với một WeaveConnection được liên kết để kết nối BLE đóng sẽ không tạo ra một cuộc gọi lên đến Weave, HandleConnectionError phải được gọi với err = BLE_ERROR_APP_CLOSED_CONNECTION để ngăn sự rò rỉ của WeaveConnection này và đối tượng điểm cuối của nó.

HandleSubscribeComplete

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

Gọi khi yêu cầu đăng ký GATT thành công.

Nền tảng phải gọi chức năng này khi yêu cầu hủy đăng ký GATT trên bất kỳ đặc tính dịch vụ Weave nào, nghĩa là khi đăng ký GATT hiện có trên một đặc tính dịch vụ Weave bị hủy.

HandleSubscribeReceive

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
)

Gọi khi yêu cầu hủy đăng ký GATT thành công.

HandleUnsubscribeReceive

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
)

Gọi khi yêu cầu viết GATT chưa thanh toán nhận được xác nhận đã nhận.

HandleWriteRenition

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

Gọi khi nhận được yêu cầu ghi GATT.

Trong đó

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
)

Các chức năng giao diện nền tảng:

Quy ước gọi: Weave có quyền sở hữu PacketBuffers nhận được thông qua các chức năng này và sẽ giải phóng chúng hoặc chuyển quyền sở hữu lên ngăn xếp.

Ngoài mỗi cuộc gọi, không có đảm bảo nào được cung cấp về thời gian tồn tại của các đối số UUID.

Giá trị trả về 'true' có nghĩa là ngăn xếp Weave đã xử lý thành công thông báo hoặc chỉ báo trạng thái tương ứng. 'false' có nghĩa là ngăn xếp Weave bị lỗi hoặc đã chọn không xử lý điều này. Trong trường hợp 'false', ngăn xếp Weave sẽ không giải phóng hoặc có quyền sở hữu bất kỳ đối số PacketBuffer nào. Hợp đồng này cho phép nền tảng chuyển các sự kiện BLE cho Weave mà không cần biết những đặc điểm nào mà Weave quan tâm.

Nền tảng phải gọi chức năng này khi đăng ký GATT đã được thiết lập cho bất kỳ đặc nhiệm dịch vụ Weave nào.

Nếu hàm này trả về true, Weave đã chấp nhận kết nối BLE và bọc nó trong một đối tượng WeaveConnection. Nếu Weave chấp nhận kết nối BLE, nền tảng PHẢI thông báo cho Weave nếu đăng ký bị hủy hoặc kết nối BLE cơ bản bị đóng hoặc kết nối WeaveConnection liên quan sẽ không bao giờ bị đóng hoặc giải phóng.

Tắt

BLE_ERROR Shutdown(
  void
)