nl:: Ble:: BleLayer
#include <src/ble/BleLayer.h>
यह क्लास, एक थ्रेड के लिए इंटरफ़ेस उपलब्ध कराती है. इसकी मदद से, डेटा को BleLayer प्लैटफ़ॉर्म इंटरफ़ेस फ़ंक्शन की मदद से स्टैक पर ऊपर या BLEEndPoint से जुड़े WeaveConnection ऑब्जेक्ट की मदद से डाउनलाेड किया जा सकता है.
खास जानकारी
WeaveConnection को (WeaveMessagelayer के मुताबिक तय) किसी BLE कनेक्शन से जोड़ने के दो तरीके हैं:
पहला, ऐप्लिकेशन अतिरिक्त 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)
|
टाइपडिफ़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 पढ़ने का अनुरोध मिलने पर कॉल करें.
अगर BleAdapter के ज़रिए BleLayer से की गई कोई भी पिछली कार्रवाई काम नहीं करती, जैसे कि लिखने का अनुरोध या सदस्यता लेने की कोशिश या BLE कनेक्शन बंद होने पर, प्लैटफ़ॉर्म को इस फ़ंक्शन को कॉल करना चाहिए.
ज़्यादातर मामलों में, ऐसा करने पर Weave को, उससे जुड़े WeaveConnection को बंद करने के लिए कहा जाएगा. साथ ही, यह सूचना दी जाएगी कि प्लैटफ़ॉर्म ने BLE कनेक्शन को छोड़ दिया है.
ध्यान दें: अगर ऐप्लिकेशन, किसी WeaveConnection के साथ किसी BLE कनेक्शन को इस तरह बंद कर देता है कि BLE कनेक्शन बंद होने पर, Weave को अपकॉल न हो, तो इस WeaveConnection और इसके एंड पॉइंट ऑब्जेक्ट को लीक होने से रोकने के लिए, HandleConnectionError को err = BLE_ERROR_APP_CLOSED_CONNECTION को कॉल किया जाना चाहिए.
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 लिखने का अनुरोध मिलने पर कॉल करें.
Init
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 का मालिकाना हक अपने पास ले लेता है और उन्हें खाली कर देगा या स्टैक को मालिकाना हक दे देगा.
हर कॉल के बाद, यूयूआईडी आर्ग्युमेंट के लाइफ़टाइम की कोई गारंटी नहीं दी जाती है.
'सही' रिटर्न वैल्यू का मतलब है कि Weave स्टैक ने संबंधित मैसेज या स्थिति के संकेत को सही तरीके से हैंडल किया. 'गलत' इसका मतलब है कि Weave स्टैक ने या तो अपलोड नहीं किया या उन्हें मैनेज नहीं किया. 'गलत' के मामले में, Weave स्टैक ने किसी भी PacketBuffer आर्ग्युमेंट को मुक्त नहीं किया होगा या उसका मालिकाना हक नहीं लिया होगा. इस समझौते के तहत, प्लैटफ़ॉर्म को Weave के लिए BLE इवेंट पास करने की अनुमति मिलती है. इसके लिए, उन्हें यह जानने की ज़रूरत नहीं होती कि Weave किन विशेषताओं की परवाह करता है.
जब किसी GATT सदस्यता को Weave की किसी सेवा की खासियत के तौर पर लागू किया जाता है, तो प्लैटफ़ॉर्म को इस फ़ंक्शन को कॉल करना चाहिए.
अगर यह फ़ंक्शन 'सही' दिखाता है, तो Weave ने BLE कनेक्शन को स्वीकार कर लिया है और उसे WeaveConnection ऑब्जेक्ट में रैप कर दिया है. अगर Weave किसी बीएलई कनेक्शन को स्वीकार करता है, तो प्लैटफ़ॉर्म को Weave को यह बताना होगा कि सदस्यता रद्द कर दी गई है या पहले से मौजूद BLE कनेक्शन बंद हो गया है. ऐसा भी हो सकता है कि इससे जुड़ा WeaveConnection, कभी बंद या फ़्रीज न हो.