nl::Ble::BleLayer

#include <src/ble/BleLayer.h>

המחלקה הזו מספקת ממשק לשרשור יחיד לצורך העברת נתונים במעלה המקבץ באמצעות הפונקציות של ממשק הפלטפורמה BleLayer, או כלפי מטה באמצעות אובייקט WeaveConnection המשויך ל-BLEEndPoint.

סיכום

יש שתי דרכים לשייך WeaveConnection (שמוגדרת על ידי WeaveMessageLayer) לחיבור BLE:

בשלב הראשון, האפליקציה יכולה לקבל באופן פסיבי חיבור BLE נכנס ולתת ל-BleLayer את הפונקציה הספציפית בממשק של הפלטפורמה BLE_CONNECTION_OCCURRENCE שהקבלה הזו יוצרת. פעולה זו גורמת ל-BleLayer להקיף את BLE_CONNECTION_Id ב-BLEEndPoint, ולהודיע ל-WeaveMessageLayer שהתקבל חיבור חדש של BLE. לאחר מכן שכבת ההודעה אורזת את אובייקט BLEEndPoint החדש ב-WeaveConnection, ומעבירה את האובייקט הזה לאפליקציה באמצעות הקריאה החוזרת (callback) של שכבת ההודעות.

שנית, האפליקציה יכולה ליצור באופן פעיל חיבור BLE יוצא, למשל, על ידי התחברות לציוד היקפי של BLE. לאחר מכן הוא יוצר WeaveConnection חדש דרך WeaveMessageLayer, מקצה סוג אימות ומקשר אותו ל-BLE_CONNECTION_OCCURRENCE עבור חיבור ה-BLE החדש דרך WeaveConnection::ConnectBle. לאחר מכן, הפונקציה הזו יוצרת את סוג הסשן המאובטח שצוין על ידי משתנה החבר בסוג האימות של WeaveConnection.

ירושה

Direct known Subclasses:
  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)

מאפיינים ציבוריים

OnWeaveBleConnectReceived

BleConnectionReceivedFunct OnWeaveBleConnectReceived

mAppState

void * mAppState

mState

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

[READ-ONLY] מצב נוכחי

תפקידים ציבוריים

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.

הפלטפורמה חייבת לקרוא לפונקציה הזו בכל פעם שפעולה קודמת שבוצעה על ידי BleLayer דרך BleAdapter נכשלת, כמו בקשת כתיבה של מאפיין או ניסיון הרשמה, או כשסוגר חיבור BLE.

ברוב המקרים, פעולה זו תגרום ל-Weave לסגור את WeaveConnection המשויך, וליידע את הפלטפורמה שנטשה את חיבור ה-BLE הבסיסי.

הערה: אם האפליקציה סוגרת במפורש חיבור BLE עם WeaveConnection משויך כך שחיבור BLE לא ייצור קריאה חוזרת ל-Weave, יש להפעיל את HandleConnectionError עם err = BLE_ERROR_APP_CLOSED_CONNECTION כדי למנוע את הדליפה של WeaveConnection ואובייקט נקודת הקצה שלו.

HandleSubscribeComplete

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

התקשרות כשבקשת הרשמה ל-GATT מצליחה.

הפלטפורמה חייבת לקרוא לפונקציה הזו כשנשלחת בקשה לביטול רישום GATT במסגרת כל מאפיין של שירות Weave, כלומר, כשמבוטל מינוי GATT קיים למאפיין שירות של Weave.

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.

הפעלה

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 שמתקבלת באמצעות הפונקציות האלו, ומשחררת אותן או מעבירה את הבעלות על ה-PacketBuffers.

מעבר לכל קריאה, לא ניתנת ערובה לגבי משך החיים של ארגומנטים של UUID.

אם הערך המוחזר הוא 'TRUE', פירוש הדבר הוא ש-Weave טיפלה בהצלחה בהודעה או במצב המתאים. 'false' פירושו שסטאק Weave נכשל או בחר שלא לטפל בבעיה. במקרה של 'FALSE', מחסנית Weave לא תשחרר או תקבל בעלות על ארגומנטים כלשהם של PacketBuffer. החוזה הזה מאפשר לפלטפורמה להעביר אירועי BLE ל-Weave בלי שיהיה צורך לדעת אילו מאפיינים חשובים ל-Weave.

הפלטפורמה חייבת לקרוא לפונקציה הזו כשנוצר מינוי GATT לכל מאפיין שירות של Weave.

אם הפונקציה מחזירה את הערך true, Weave קיבלה את חיבור ה-BLE ונארזה באובייקט WeaveConnection. אם Weave מקבלת חיבור BLE, הפלטפורמה חייבת להודיע ל-Weave אם המינוי בוטל או אם חיבור BLE הבסיסי נסגר, או ש-WeaveConnection לעולם לא ייסגר או ישוחרר.

כיבוי

BLE_ERROR Shutdown(
  void
)