اطلاعات دستگاه
ارائه دهندگان میتوانند از طریق جریان پیام، اطلاعات دستگاه را به جستجوگر اطلاع دهند.
| نام گروه پیام | ارزش |
|---|---|
| رویداد اطلاعات دستگاه | 0x03 |
| اطلاعات دستگاه، نام کد | ارزش |
|---|---|
| شناسه مدل | 0x01 |
| آدرس BLE بهروزرسانی شد | 0x02 |
| باتری بهروز شد | 0x03 |
| زمان باقی مانده باتری | 0x04 |
| درخواست اجزای فعال | 0x05 |
| پاسخ اجزای فعال | 0x06 |
| (منسوخ شده) قابلیتها | 0x07 |
| نوع پلتفرم | 0x08 |
| نسخه میانافزار | 0x09 |
| شناسه موقت FHN فعلی | 0x0B |
شناسه مدل
اطلاعات شناسه مدل (برای نوشتن کلید حساب به صورت گذشتهنگر ) باید هنگام اتصال جریان پیام به جستجوگر ارسال شود. برای مثال، 0x03010003AABBCC به صورت زیر خواهد بود:
- 0x03: رویداد اطلاعات دستگاه
- 0x01: مقدار شناسه مدل
- 0x0003: دادههای اضافی، طول 3
- 0xAABBCC: دادههای تکمیلی، شناسه مدل
آدرس BLE
اطلاعات آدرس BLE (برای نوشتن کلید حساب به صورت گذشتهنگر )، در صورت موجود بودن، باید هنگام اتصال جریان پیام و هر زمان که آدرس تغییر میکند، برای جستجوگر نیز ارسال شود. برای مثال، 0x03020006AABBCCDDEEFF به صورت زیر خواهد بود:
- 0x03: رویداد اطلاعات دستگاه
- 0x02: مقدار آدرس BLE
- 0x0006: دادههای اضافی، طول 6
- 0xAABBCCDDEEFF: دادههای اضافی، آدرس BLE
باتری بهروز شد
برای ارائهدهندگانی که از اعلانهای باتری پشتیبانی میکنند، اطلاعات باتری میتواند از طریق Message Stream نیز ارسال شود. هنگامی که Message Stream متصل میشود یا مقدار باتری تغییر میکند، باید یک بهروزرسانی ارسال شود. بخش داده اضافی بسته باید حاوی دادههای یکسان با بایتهای s + 2 ، s + 3 ، s + 4 هنگام ارسال دادههای باتری از طریق BLE باشد. به عنوان مثال، 0x0303000357417F به صورت زیر خواهد بود:
- 0x03: رویداد اطلاعات دستگاه
- 0x03: مقدار باتری
- 0x0003: دادههای اضافی، طول 3
- 0x57417F: دادههای اضافی، مقادیر باتری
- 0x57: مقدار هدفون چپ، شارژ نمیشود، 87٪ باتری
- 0x41: مقدار صحیح هدفون، شارژ نمیشود، 65٪ باتری
- 0x7F: ارزش قاب، شارژ نمیشود، باتری نامشخص
ارائه دهندگان همچنین میتوانند زمان باقی مانده باتری را (در صورت مشخص بودن) بهروزرسانی کنند، برای مثال، 0x03040001F0 به صورت زیر خواهد بود:
- 0x03: رویداد اطلاعات دستگاه
- 0x04: زمان باقی مانده باتری
- 0x0001: دادههای اضافی، طول ۱ (در صورت نیاز میتواند برای uint16، طول ۲ باشد.)
- 0xF0: دادههای اضافی، زمان باقیمانده باتری به دقیقه، 240 دقیقه
اجزای فعال
گاهی اوقات ممکن است جویندگان بخواهند بدانند کدام اجزا در حال حاضر فعال هستند، به این معنی که میتوان روی آنها اقدامی انجام داد (به اقدامات دستگاه مراجعه کنید). هنگامی که ارائه دهنده درخواستی حاوی کد درخواست اجزای فعال (0x05) دریافت میکند، باید ظرف 1 ثانیه پاسخی که وضعیت فعلی ارائه دهنده را نشان میدهد، بازگردانده شود. این پاسخ از کد پاسخ اجزای فعال (0x06) استفاده میکند و حاوی دادههای اضافی است که نشان میدهد کدام اجزا در دسترس هستند.
برای یک ارائه دهنده با یک جزء واحد، در صورت عدم دسترسی به دادههای اضافی، باید آنها را روی 0x00 تنظیم کرد. به عنوان مثال، میتوان به حالت کممصرف اشاره کرد که در آن پخش رسانه انجام نمیشود. در غیر این صورت، دادههای اضافی باید روی 0x01 تنظیم شوند.
برای هدستهایی با چندین قطعه (مثلاً هدفونهای چپ و راست)، هر بیت در دادههای اضافی نشان میدهد که آیا آن قطعه فعال است یا خیر. یک نمونه از یک قطعه غیرفعال میتواند هدفونی باشد که در قاب قرار دارد و استفاده نمیشود. به طور خاص برای قاب هدفونهای چپ و راست:
- 0x00 (0b00000000): هیچکدام از جوانهها فعال نیستند
- 0x01 (0b00000001): جوانه سمت راست فعال، جوانه سمت چپ غیرفعال
- 0x02 (0b00000010): جوانه چپ فعال، جوانه راست غیرفعال
- 0x03 (0b00000011): هر دو هدفون فعال هستند
نوع پلتفرم
ارائه دهندگان ممکن است بخواهند بسته به پلتفرمی که به آن متصل هستند، عملکرد متفاوتی داشته باشند. جفتسازی سریع (Fast Pair) در حال حاضر فقط از طریق اندروید انجام میشود، اما پشتیبانی از آن ممکن است در آینده گسترش یابد.
این پیام شامل یک بایت اول است که نوع پلتفرم را در دادههای اضافی مشخص میکند:
| نام پلتفرم | ارزش |
|---|---|
| اندروید | 0x01 |
بایت دوم برای هر پلتفرم سفارشیسازی میشود. در اندروید، به نسخه SDK اشاره دارد. برای مثال، اندروید پای مقدار ۲۸ (0x1C) را خواهد داشت.
نسخه میانافزار
نسخه میانافزار ارائهدهنده به صورت رشتهای با کدگذاری utf-8. این همان اطلاعاتی است که در مشخصه ویرایش میانافزار وجود دارد.
شناسه موقت FHN فعلی
ارائهدهندگانی که فریمهای FHN را تبلیغ میکنند، باید شناسه موقت (EID) فعلی FHN را به همراه مقدار ساعت فعلی خود گزارش دهند تا در صورت تغییر ساعت (مثلاً به دلیل خالی شدن باتری) با جستجوگر همگامسازی شود.
برای مثال:
- 0x03: رویداد اطلاعات دستگاه
- 0x0B: پیام شناسه موقت FHN فعلی
- 0x0018: دادههای اضافی، طول 24 یا 36 بایت
- 0x13F9EA80: دادههای اضافی (مقدار کلاک؛ ۴ بایت)
- 0x1122334455667788990011223344556677889900: دادههای اضافی (EID فعلی؛ 20 یا 32 بایت)