org.bluez.GattManager(5) مدیریت سیستم لینوکس org.bluez.GattManager(5)

org.bluez.GattManager - مستندات واسط برنامه‌نویسی D-Bus GattManager در BlueZ

مدیر گات (GATT Manager) به برنامه‌های خارجی اجازه می‌دهد سرویس‌ها و پروفایل‌های GATT را ثبت کنند.

ثبت یک پروفایل به برنامه‌ها امکان می‌دهد در سرویس‌های دوردست/کلاینت (remote/client) مشترک شوند.

ثبت یک سرویس به برنامه‌ها امکان می‌دهد یک سرویس GATT محلی/سرور (local/server) را منتشر کنند که سپس در دسترس دستگاه‌های دوردست قرار می‌گیرد. یک سرویس GATT با یک سلسله‌مراتب شیء D-Bus نمایش داده می‌شود که در آن گره ریشه متناظر با یک سرویس است و گره‌های فرزند، مشخصه‌ها و توصیف‌گرهای متعلق به آن سرویس را نشان می‌دهند. هر گره باید بر اساس صفتی که نمایندگی می‌کند، یکی از واسط‌های org.bluez.GattService(5)، org.bluez.GattCharacteristic(5) یا org.bluez.GattDescriptor(5) را پیاده‌سازی کند. هر گره همچنین باید واسط استاندارد Properties در D-Bus را برای ارائه ویژگی‌های خود پیاده‌سازی کند. این اشیاء در مجموع تعریف یک سرویس GATT را تشکیل می‌دهند.

برای ساده‌سازی ثبت سرویس، bluetoothd(8) الزامی می‌کند که تمام اشیاء متعلق به یک سرویس GATT تحت یک Object Manager در D-Bus که منحصراً اشیاء آن سرویس را مدیریت می‌کند، گروه‌بندی شوند. بنابراین، واسط استاندارد DBus.ObjectManager باید در مسیر ریشه سرویس در دسترس باشد. سلسله‌مراتب یک برنامه نمونه شامل دو سرویس GATT مجزا ممکن است به این شکل باشد:

-> /com/example
  |   - org.freedesktop.DBus.ObjectManager
  |
  -> /com/example/service0
  | |   - org.freedesktop.DBus.Properties
  | |   - org.bluez.GattService1
  | |
  | -> /com/example/service0/char0
  | |     - org.freedesktop.DBus.Properties
  | |     - org.bluez.GattCharacteristic1
  | |
  | -> /com/example/service0/char1
  |   |   - org.freedesktop.DBus.Properties
  |   |   - org.bluez.GattCharacteristic1
  |   |
  |   -> /com/example/service0/char1/desc0
  |       - org.freedesktop.DBus.Properties
  |       - org.bluez.GattDescriptor1
  |
  -> /com/example/service1
    |   - org.freedesktop.DBus.Properties
    |   - org.bluez.GattService1
    |
   -> /com/example/service1/char0
        - org.freedesktop.DBus.Properties
        - org.bluez.GattCharacteristic1

هنگامی که یک سرویس ثبت می‌شود، bluetoothd(8) به‌طور خودکار اطلاعات مربوط به تمام اشیاء را با استفاده از Object Manager سرویس به دست می‌آورد. پس از ثبت یک سرویس، اشیاء آن نباید حذف شوند. اگر bluetoothd(8) یک سیگنال InterfacesRemoved از Object Manager سرویس دریافت کند، بلافاصله سرویس را لغو ثبت خواهد کرد. به همین ترتیب، اگر برنامه اتصال خود را از گذرگاه قطع کند، تمام سرویس‌های ثبت‌شده آن به‌طور خودکار لغو ثبت خواهند شد. سیگنال‌های InterfacesAdded نادیده گرفته می‌شوند.

سرویس (Service)
org.bluez
واسط (Interface)
org.bluez.GattManager1
مسیر شیء (Object path)
[variable prefix]/{hci0,hci1,...}
مورد استفاده توسط (Used by)
bluetoothctl-gatt(1)

یک سلسله‌مراتب سرویس‌های GATT محلی را همان‌طور که در بالا توضیح داده شد (سرور GATT) و/یا پروفایل‌های GATT (کلاینت GATT) ثبت می‌کند.

مسیر شیء برنامه به همراه شناسه اتصال گذرگاه سیستم D-Bus، هویت برنامه‌ای را تعیین می‌کند که سرویس مبتنی بر GATT (org.bluez.GattService(5)) و/یا پروفایل (org.bluez.GattProfile(5)) را ثبت می‌نماید.

خطاهای احتمالی:

مثال‌ها:

> gatt.register-application [UUID ...]

سرویس‌ها و/یا پروفایل‌هایی را که قبلاً با استفاده از RegisterApplication() ثبت شده‌اند لغو ثبت می‌کند. پارامتر مسیر شیء باید با همان مقداری که هنگام ثبت استفاده شده است مطابقت داشته باشد.

خطاهای احتمالی:

مثال‌ها:

> gatt.unregister-application
اکتبر 2023 BlueZ