nl::Ble::BleLayer

#include <src/ble/BleLayer.h>

คลาสนี้มีอินเทอร์เฟซสําหรับชุดข้อความรายการเดียวที่ใช้ขับเคลื่อนข้อมูลแบบซ้อนผ่านฟังก์ชันอินเทอร์เฟซแพลตฟอร์ม BleLayer หรือลงสแต็กผ่านออบเจ็กต์ WeaveConnection ที่เชื่อมโยงกับ BLEEndPoint

สรุป

คุณจะเชื่อมโยง WeaveConnection (กําหนดโดย WeaveMessageLayer) ด้วยการเชื่อมต่อ BLE ได้ 2 วิธีดังนี้

ขั้นแรก แอปพลิเคชันจะรับการเชื่อมต่อ BLE ขาเข้าได้อย่างต่อเนื่องและมอบ BLE_CONNECTION_OBJECT เฉพาะแพลตฟอร์มที่ใบเสร็จนี้สร้างขึ้นไปยัง BleLayer ผ่านฟังก์ชันอินเทอร์เฟซแพลตฟอร์มที่เกี่ยวข้อง ซึ่งจะทําให้ BleLayer รวม BLE_CONNECTION_OBJECT ใน BLEEndPoint และแจ้งเตือน WeaveMessageLayer ว่าได้รับ BLE Conneciotn ใหม่ จากนั้นเลเยอร์ข้อความจะล้อมรอบออบเจ็กต์ BLEEndPoint ใหม่ใน WeaveConnection แล้วส่งออบเจ็กต์นี้ไปยังแอปพลิเคชันผ่านโค้ดเรียกกลับของ OnConnectionReceived ของเลเยอร์ข้อความ

ขั้นที่สอง แอปพลิเคชันสามารถสร้างการเชื่อมต่อ BLE ขาออกได้ เช่น การเชื่อมต่อกับอุปกรณ์ต่อพ่วง BLE จากนั้นจะสร้าง WeaveConnection ใหม่ผ่าน WeaveMessageLayer, กําหนดประเภทการตรวจสอบสิทธิ์ให้กับการเชื่อมต่อนี้ และเชื่อมโยงกับ BLE_CONNECTION_OBJECT สําหรับการเชื่อมต่อ BLE ใหม่ผ่าน WeaveConnection::ConnectBle จากนั้นฟังก์ชันนี้จะสร้างประเภทเซสชันที่ปลอดภัยซึ่งระบุโดยตัวแปรสมาชิกประเภทการตรวจสอบสิทธิ์ของ 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
[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)

แอตทริบิวต์สาธารณะ

ใน WeaveBleConnectReceived

BleConnectionReceivedFunct OnWeaveBleConnectReceived

สถานะแอป

void * mAppState

รัฐ

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

[READ-ONLY] สถานะปัจจุบัน

ฟังก์ชันสาธารณะ

เบล

 BleLayer(
  void
)

ข้อผิดพลาด HandleConnection

void HandleConnectionError(
  BLE_CONNECTION_OBJECT connObj,
  BLE_ERROR err
)

การยืนยันแฮนเดิลแฮนเดิล

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

เรียกใช้เมื่อสัญญาณแจ้ง GATT ติดค้างได้รับการยืนยันการยืนยันเป็นบวก

ได้รับตัวบ่งชี้

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

เรียกใช้เมื่อได้รับสัญญาณ GATT

แฮนเดิลการอ่านที่ได้รับ

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

เรียกใช้เมื่อได้รับคําขอการอ่าน GATT

แพลตฟอร์มต้องเรียกใช้ฟังก์ชันนี้เมื่อการดําเนินการก่อนหน้าที่ BleLayer ดําเนินการผ่าน BleAdapter ล้มเหลว เช่น คําขอเขียนอักขระหรือการพยายามสมัครใช้บริการ หรือเมื่อปิดการเชื่อมต่อ BLE

ในกรณีส่วนใหญ่ ข้อความแจ้งนี้จะแจ้งให้ Weave ปิด WeaveConnection ที่เกี่ยวข้องและแจ้งว่าแพลตฟอร์มนั้นทิ้งการเชื่อมต่อ BLE ที่เกี่ยวข้องแล้ว

หมายเหตุ: หากแอปพลิเคชันปิดการเชื่อมต่อ BLE ที่มี WeaveConnection ที่เกี่ยวข้องอย่างชัดแจ้ง เพื่อให้การเชื่อมต่อ BLE ปิดไม่ทําให้เกิดการเรียกไปยัง Weave จะต้องมีการเรียก HandleConnectionError ด้วย err = BLE_ERROR_APP_CLOSED_CONNECTION เพื่อป้องกันไม่ให้รั่วไหลของ WeaveConnection นี้และจุดสิ้นสุด

แฮนเดิลการสมัครใช้บริการที่สมบูรณ์

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

เรียกใช้เมื่อการสมัครใช้บริการ GATT สําเร็จ

แพลตฟอร์มต้องเรียกใช้ฟังก์ชันนี้เมื่อมีการขอให้ยกเลิกการสมัครใช้บริการ GATT ในรูปแบบของบริการต่างๆ ของ Weave กล่าวคือ เมื่อยกเลิกการสมัครใช้บริการ GATT ที่มีอยู่ในลักษณะของบริการ Weave

HandleReceiveReceived

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
)

การยืนยันการเขียน

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

การเรียกใช้เมื่อคําขอเขียน GATT ที่ค้างอยู่ได้รับการยืนยันที่ดี

HandleWrite ที่ได้รับ

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

เรียกใช้เมื่อได้รับคําขอการเขียน GATT

เริ่ม

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 จะเป็นเจ้าของ PacketBuffers ที่ได้รับผ่านฟังก์ชันเหล่านี้ และจะเปิดใช้หรือส่งผ่านการเป็นเจ้าของสแต็ก

นอกเหนือจากการเรียกแต่ละครั้ง จะไม่มีการรับประกันเกี่ยวกับอายุการใช้งานของอาร์กิวเมนต์ UUID

ค่า 'true' ค่าย้อนกลับหมายความว่าสแต็ก Weave จัดการข้อความหรือตัวบ่งชี้สถานะที่เกี่ยวข้องได้สําเร็จ 'false' หมายความว่าสแต็ก Weave ล้มเหลวหรือเลือกที่จะไม่จัดการ ในกรณีของ 'false,' สแต็ก Weave จะไม่เป็นอิสระหรือเข้าเป็นเจ้าของอาร์กิวเมนต์ของ PacketBuffer สัญญานี้อนุญาตให้แพลตฟอร์มส่งเหตุการณ์ BLE ไปยัง Weave ได้โดยไม่ต้องทราบว่า Weave สนใจลักษณะเฉพาะใด

แพลตฟอร์มต้องเรียกใช้ฟังก์ชันนี้เมื่อมีการสมัครใช้บริการ GATT ไปยังอักขระของบริการ Weave

หากฟังก์ชันนี้ส่งคืนค่าจริง Weave ยอมรับการเชื่อมต่อ BLE แล้วรวมไว้ในออบเจ็กต์ WeaveConnection หาก Weave ยอมรับการเชื่อมต่อ BLE แพลตฟอร์มดังกล่าวจะต้องแจ้ง Weave หากมีการยกเลิกการสมัครใช้บริการ หรือการเชื่อมต่อ BLE ที่เกี่ยวข้องปิดอยู่ หรือ WeaveConnection ที่เกี่ยวข้องจะไม่ถูกปิดหรือหยุดทํางาน

ปิดการทำงาน

BLE_ERROR Shutdown(
  void
)