nl::Ble::BleLayer

#include <src/ble/BleLayer.h>

यह क्लास, सिंगल थ्रेड के लिए इंटरफ़ेस उपलब्ध कराती है. यह डेटा को BleLayer प्लैटफ़ॉर्म इंटरफ़ेस फ़ंक्शन के ज़रिए स्टैक तक ले जाने या BLEEndPoint से जुड़े WeaveConnection ऑब्जेक्ट के ज़रिए नीचे की ओर ले जाती है.

खास जानकारी

किसी BLE कनेक्शन के साथ WeaveConnection (WeaveMessagelayer के ज़रिए तय) को जोड़ने के दो तरीके हैं:

पहला, यह ऐप्लिकेशन बिना किसी रुकावट के आने वाला BLE कनेक्शन पा सकता है. साथ ही, प्लैटफ़ॉर्म के हिसाब से BLE_CONNECTION_OBJECT कर सकता है, जिसे यह रसीद BleLayer को इससे जुड़े प्लैटफ़ॉर्म इंटरफ़ेस फ़ंक्शन के ज़रिए जनरेट करती है. इसकी वजह से BleLayer BLE_CONNECTION_OBJECT को BLEEndPoint में रैप कर देता है और WeaveMessagelayer को सूचना देता है कि नया BLE कनेक्शन मिल गया है. इसके बाद, मैसेज लेयर नए 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)
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 कनेक्शन को छोड़ दिया है.

ध्यान दें: अगर ऐप्लिकेशन किसी असोसिएट किए गए WeaveConnection के साथ BLE कनेक्शन को साफ़ तौर पर बंद करता है, ताकि BLE कनेक्शन को बंद करने से वीव को अप कॉल जनरेट न हो, तो HandleConnectionError को गलत = BLE_ERROR_APP_CLOSED_CONNECTION के साथ कॉल करना ज़रूरी है, ताकि WeaveConnection और इसके एंड पॉइंट ऑब्जेक्ट को लीक होने से बचाया जा सके.

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 का डेटा लिखने का अनुरोध मिलने पर कॉल करें.

शुरू करें

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 को इन फ़ंक्शन के ज़रिए मिलने वाले पैकेटBuffers का मालिकाना हक मिलता है. साथ ही, यह उन्हें फ़्री कर देता है या स्टैक को पास करता है.

हर कॉल के अलावा, UUID तर्क के जीवनकाल की कोई गारंटी नहीं दी जाती है.

'सही' रिटर्न वैल्यू का मतलब है कि Weave स्टैक ने सही मैसेज या स्टेटस इंंडिकेटर को सही तरीके से हैंडल किया. 'गलत' का मतलब है कि वीव स्टैक ने या तो पूरी नहीं की या उसे हैंडल नहीं किया. 'गलत' होने पर, Weave स्टैक को किसी भी पैकेटबफ़र तर्क को खाली नहीं किया जाएगा या उसका मालिकाना हक नहीं लिया जाएगा. इस समझौते की मदद से, प्लैटफ़ॉर्म को Weave पर BLE इवेंट पास करने की अनुमति मिलती है. इसके लिए, यह जानने की ज़रूरत नहीं होती कि Weave को किन विशेषताओं की परवाह है.

जब GATT की सदस्यता किसी Weave सेवा के चार्ट में शामिल की गई हो, तो प्लैटफ़ॉर्म को इस फ़ंक्शन को कॉल करना होगा.

अगर यह फ़ंक्शन 'सही' दिखाता है, तो इसका मतलब है कि Weave ने बीएलई कनेक्शन को स्वीकार कर लिया है और उसे WeaveConnection ऑब्जेक्ट में रैप कर दिया है. अगर Weave कोई BLE कनेक्शन स्वीकार करता है, तो प्लैटफ़ॉर्म को Weave को सूचना देनी होगी. ऐसा तब होगा, जब सदस्यता रद्द कर दी जाएगी या मौजूदा BLE कनेक्शन बंद कर दिया जाएगा. ऐसा तब भी होगा, जब इससे जुड़े WeaveConnection को कभी भी बंद या अलग नहीं किया जाएगा.

बंद है

BLE_ERROR Shutdown(
  void
)