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)
|
typedefvoid(*
|
सार्वजनिक एट्रिब्यूट |
|
---|---|
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 को कभी भी बंद या अलग नहीं किया जाएगा.