nl:: Ble:: BleLayer

#include <src/ble/BleLayer.h>

این کلاس یک رابط برای یک رشته فراهم می‌کند تا داده‌ها را از طریق توابع رابط پلتفرم BleLayer در پشته به سمت بالا هدایت کند، یا از طریق یک شی WeaveConnection مرتبط با BLEendPoint، در پشته پایین بیاورد.

خلاصه

دو راه برای مرتبط کردن WeaveConnection (تعریف شده توسط WeaveMessageLayer) با اتصال BLE وجود دارد:

ابتدا، برنامه می‌تواند بطور غیرفعال یک اتصال BLE ورودی را دریافت کند و BLE_CONNECTION_OBJECT مخصوص پلتفرم را که این رسید تولید می‌کند از طریق تابع رابط پلتفرم مربوطه به BleLayer تحویل دهد. این باعث می شود BleLayer BLE_CONNECTION_OBJECT را در BLEendPoint بپیچد و به WeaveMessageLayer اطلاع دهد که یک اتصال BLE جدید دریافت شده است. سپس لایه پیام، شی BLEendPoint جدید را در یک WeaveConnection می پیچد و این شی را از طریق پاسخ تماس OnConnectionReceived لایه پیام به برنامه می دهد.

دوم، برنامه می تواند به طور فعال یک اتصال BLE خروجی ایجاد کند، به عنوان مثال، با اتصال به یک دستگاه جانبی BLE. سپس یک WeaveConnection جدید از طریق WeaveMessageLayer ایجاد می کند، یک نوع احراز هویت را به این اتصال اختصاص می دهد و آن را به BLE_CONNECTION_OBJECT برای اتصال BLE جدید از طریق WeaveConnection::ConnectBle متصل می کند. سپس این تابع نوع جلسه امن مشخص شده توسط متغیر عضو نوع احراز هویت 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
هنگامی که درخواست اشتراک گات موفق شد تماس بگیرید.
HandleSubscribeReceived ( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
HandleUnsubscribeComplete ( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
هنگامی که درخواست لغو اشتراک گات موفق شد تماس بگیرید.
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
)

HandleIndication Confirmation

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

زمانی تماس بگیرید که یک نشانه برجسته GATT تاییدیه رسید مثبت را دریافت کند.

HandleIndication Received

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
)

وقتی درخواست اشتراک گات موفق شد تماس بگیرید.

پلتفرم باید این تابع را زمانی فراخوانی کند که لغو اشتراک گات در مورد هر یک از ویژگی های سرویس Weave درخواست شود، یعنی زمانی که یک اشتراک گات موجود در یک ویژگی سرویس Weave لغو شود.

HandleSubscribe Received

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
)

هنگامی که درخواست لغو اشتراک گات موفق شد تماس بگیرید.

HandleUnsubscribe Received

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 مالکیت PacketBuffer های دریافت شده از طریق این توابع را در اختیار می گیرد و آنها را آزاد می کند یا مالکیت را به پشته منتقل می کند.

فراتر از هر تماس، هیچ تضمینی در مورد طول عمر آرگومان های UUID ارائه نمی شود.

یک مقدار بازگشتی 'true' به این معنی است که پشته Weave با موفقیت پیام یا نشانه وضعیت مربوطه را مدیریت کرده است. 'false' به این معنی است که پشته Weave یا شکست خورده یا تصمیم گرفته است که این کار را انجام ندهد. در صورت "نادرست"، پشته Weave هیچ یک از آرگومان های PacketBuffer را آزاد یا مالکیت آن را نخواهد داشت. این قرارداد به پلتفرم اجازه می‌دهد تا رویدادهای BLE را بدون نیاز به دانستن ویژگی‌های Weave به Weave منتقل کند.

پلتفرم باید این تابع را زمانی فراخوانی کند که اشتراک GATT برای هر یک از ویژگی های سرویس Weave ایجاد شده باشد.

اگر این تابع true را برگرداند، Weave اتصال BLE را پذیرفته و آن را در یک شی WeaveConnection پیچیده است. اگر Weave اتصال BLE را بپذیرد، پلتفرم باید به Weave اطلاع دهد اگر اشتراک لغو شد یا اتصال BLE زیربنایی بسته شد، یا WeaveConnection مرتبط هرگز بسته یا آزاد نخواهد شد.

خاموش شدن

BLE_ERROR Shutdown(
  void
)