nl:: ব্লে:: 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
)

হ্যান্ডেল সংযোগ ত্রুটি

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 ইঙ্গিত পাওয়া গেলে কল করুন।

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 এবং এর শেষ পয়েন্ট অবজেক্টের ফাঁস রোধ করতে err = BLE_ERROR_APP_CLOSED_CONNECTION দিয়ে HandleConnectionError কল করতে হবে।

হ্যান্ডেল সাবস্ক্রাইব সম্পূর্ণ

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

একটি GATT সদস্যতা অনুরোধ সফল হলে কল করুন।

প্ল্যাটফর্মকে অবশ্যই এই ফাংশনটি কল করতে হবে যখন কোনও ওয়েভ পরিষেবা বৈশিষ্ট্যের উপর একটি GATT আনসাবস্ক্রাইব করার অনুরোধ করা হয়, অর্থাৎ, যখন একটি ওয়েভ পরিষেবা বৈশিষ্ট্যের একটি বিদ্যমান GATT সদস্যতা বাতিল করা হয়।

হ্যান্ডেল সাবস্ক্রাইব রিসিভড

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
)

হ্যান্ডেলWrite কনফার্মেশন

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

যখন একটি অসামান্য GATT লেখার অনুরোধ একটি ইতিবাচক রসিদ নিশ্চিতকরণ পায় তখন কল করুন৷

হ্যান্ডেল রাইট রিসিভড

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
)

প্ল্যাটফর্ম ইন্টারফেস ফাংশন:

কলিং কনভেনশন: উইভ এই ফাংশনগুলির মাধ্যমে প্রাপ্ত প্যাকেটবাফারগুলির মালিকানা নেয় এবং সেগুলিকে মুক্ত করবে বা স্ট্যাকের মালিকানা পাস করবে।

প্রতিটি কলের বাইরে, UUID আর্গুমেন্টের জীবনকাল সম্পর্কে কোন গ্যারান্টি দেওয়া হয় না।

একটি 'সত্য' রিটার্ন মান মানে উইভ স্ট্যাক সফলভাবে সংশ্লিষ্ট বার্তা বা রাষ্ট্রীয় ইঙ্গিত পরিচালনা করেছে। 'false' মানে উইভ স্ট্যাক হয় ব্যর্থ হয়েছে বা এটি পরিচালনা না করা বেছে নিয়েছে। 'মিথ্যা' হলে, ওয়েভ স্ট্যাক কোনো প্যাকেটবাফার আর্গুমেন্টের মালিকানা মুক্ত বা গ্রহণ করবে না। এই চুক্তিটি প্ল্যাটফর্মটিকে BLE ইভেন্টগুলিকে Weave-এ পাস করার অনুমতি দেয়, Weave কোন বৈশিষ্ট্যগুলি সম্পর্কে যত্নশীল তা না জেনেই।

প্ল্যাটফর্মকে অবশ্যই এই ফাংশনটি কল করতে হবে যখন কোনো ওয়েভ পরিষেবার বৈশিষ্ট্যে একটি GATT সাবস্ক্রিপশন প্রতিষ্ঠিত হয়।

এই ফাংশনটি সত্য হলে, Weave BLE সংযোগ গ্রহণ করেছে এবং এটিকে একটি WeaveConnection অবজেক্টে মোড়ানো হয়েছে। যদি Weave একটি BLE সংযোগ গ্রহণ করে, তাহলে সাবস্ক্রিপশন বাতিল করা হলে বা অন্তর্নিহিত BLE সংযোগ বন্ধ হয়ে গেলে প্ল্যাটফর্মটিকে অবশ্যই Weaveকে অবহিত করতে হবে, অথবা সংশ্লিষ্ট WeaveConnection কখনই বন্ধ বা মুক্ত করা হবে না।

শাটডাউন

BLE_ERROR Shutdown(
  void
)