تغییر قابلیت ها در زمان اجرا
از آنجایی که ویژگیهای جدید (مثلاً اندازه بافر پویا) را میتوان با ارتقای سیستم عامل در ارائهدهنده فعال کرد، میخواهیم راهی برای دریافت قابلیتهای ارائهدهنده در زمان اجرا ارائه دهیم. برای جلوگیری از پرس و جوی مکرر قابلیتها، ابتدا، ارائهدهنده باید ویرایش میانافزار را هنگام اتصال از طریق جریان پیام برای جستجوگر ارسال کند. بنابراین ما یک کد پیام جدید را به گروه پیام موجود، رویداد اطلاعات دستگاه اضافه می کنیم.
نام گروه پیام | ارزش |
---|---|
رویداد اطلاعات دستگاه | 0x03 |
نام کد پیام | ارزش |
---|---|
ویرایش سیستم عامل | 0x09 |
پس از دریافت کد ویرایش سیستم عامل، جستجوگر باید آن را در برابر کد ذخیره شده بررسی کند. اگر نسخه میانافزار تغییر کرده باشد، جستجوگر نسخه میانافزار حافظه پنهان را بهروزرسانی میکند و قابلیتها را از طریق جریان پیام جستجو میکند.
ما همچنین به ارائهدهنده اجازه میدهیم تا ابتدا قابلیتها را بدون درخواست مستقیماً به جستجوگر منتقل کند، زیرا تصور میکنیم که در آینده، دستگاههای پیچیدهتر (شاید مبتنی بر Android) پیکربندی پویا را بر اساس پرچمها برای همان ویرایش میانافزار انجام دهند.
بنابراین ما در زیر یک گروه پیام جدید و کدهای پیام اضافه می کنیم.
نام گروه پیام | ارزش |
---|---|
رویداد همگامسازی قابلیت دستگاه | 0x06 |
نام کد پیام | ارزش |
---|---|
درخواست به روز رسانی قابلیت (ارسال شده از جستجوگر) | 0x01 |
ردیابی FMDN | 0x03 |
پس از دریافت 0x0601
،
- اگر ارائه دهنده پشتیبانی از ردیابی FMDN را فعال کرده باشد، باید به صورت زیر پاسخ دهد:
اکتت | نوع داده | شرح | ارزش |
---|---|---|---|
0 | uint8 | رویداد همگامسازی قابلیت دستگاه | 0x06 |
1 | uint8 | ردیابی FMDN | 0x03 |
2 - 3 | uint16 | طول داده های اضافی | 0x0007 |
4 | uint8 | وضعیت تامین FMDN | 0x00 در صورت عدم ارائه؛ 0x01 اگر توسط هر حسابی ارائه شده باشد |
5 - 10 | uint8[] | آدرس مک BLE فعلی دستگاه | متفاوت است |