رابط کنترل کننده میزبان (HCI) برای تعامل با یک کنترلر بلوتوث استفاده می شود.
این سند فهرستی از الزامات بلوتوث (BT) و بلوتوث کم مصرف (BLE) HCI را ارائه می دهد. هدف این است که فروشندگان پشته میزبان BT و فروشندگان کنترلر BT با این الزامات پلتفرم مطابقت داشته باشند تا از مجموعه ویژگی های شرح داده شده در زیر استفاده کنند.
این سند به مشخصات Bluetooth Core 5.2 به عنوان "مشخصات" اشاره می کند. مشخصات بلوتوث Core 5.2 در وب سایت بلوتوث SIG به همراه سایر اسناد پذیرفته شده موجود است.
نمای کلی طراحی
قابلیت ها و پیکربندی تراشه
به عنوان یک پلتفرم باز، اندروید دارای ماتریسی از نسخه های نرم افزاری، OEM ها، فروشندگان، و پلتفرم و قابلیت های تراشه است.
برای مدیریت چشماندازهای مختلف و مدیریت مهاجرتها، فلسفه طراحی اجازه دادن به کنترلکنندههای BT برای افشای قابلیتهای خود (فراتر از مشخصات استاندارد Bluetooth Core 5.2) در این سند شرح داده شده است. سپس پشته BT میزبان میتواند از این قابلیتها برای تعیین ویژگیهای فعال استفاده کند.
پشتیبانی از استانداردهای باز
یکی از اهداف اندروید پشتیبانی از استانداردهای باز پس از تصویب در مشخصات بلوتوث است. اگر ویژگی توضیح داده شده در زیر در روشهای استاندارد HCI در مشخصات بلوتوث آینده در دسترس قرار گیرد، ما به سمت پیشفرض کردن آن رویکرد متمایل میشویم.
قابلیت های خاص فروشنده
فرمان خاص فروشنده: LE_Get_Vendor_Capabilities_Command
فیلد فرمان OpCode (OCF): 0x153
پارامتر فرمان | اندازه | هدف |
---|---|---|
NA | لیست پارامترهای دستور خالی |
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
max_advt_instances (منسوخ شده) | 1 اکتت | تعداد نمونه های تبلیغاتی پشتیبانی شده پس از نسخه 0.98 رزرو شده است. این پارامتر در ویژگی Google spec v0.98 و بالاتر به نفع LE Extended Advertising موجود در نسخه BT spec 5.0 و بالاتر منسوخ شده است. |
offloaded_resolution_of_private-address (منسوخ شده) | 1 اکتت | قابلیت تراشه BT RPA. اگر توسط یک تراشه پشتیبانی می شود، باید توسط میزبان فعال شود. 0 = ناتوان 1 = توانا پس از نسخه 0.98 رزرو شده است. این پارامتر در ویژگی Google spec v0.98 و بالاتر به نفع ویژگی Privacy موجود در نسخه 4.2 و بالاتر BT منسوخ شده است. |
total_scan_results_storage | 2 اکتت | ذخیره سازی برای نتایج اسکن در بایت |
max_irk_list_sz | 1 اکتت | تعداد ورودی های IRK پشتیبانی شده در میان افزار |
filtering_support | 1 اکتت | پشتیبانی از فیلتر کردن در کنترلر 0 = پشتیبانی نمی شود 1 = پشتیبانی می شود |
max_filter | 1 اکتت | تعداد فیلترهای پشتیبانی شده |
activity_energy_info_support | 1 اکتت | از گزارش فعالیت و اطلاعات انرژی پشتیبانی می کند 0 = ناتوان 1 = توانا |
version_supported | 2 اکتت | نسخه پشتیبانی شده از مشخصات ویژگی Google را مشخص می کند بایت[0] = عدد اصلی بایت[1] = عدد جزئی نسخه 1.04 بایت[0] = 0x01 بایت [1] = 0x04 |
total_num_of_advt_tracked | 2 اکتت | تعداد کل تبلیغکنندگانی که برای اهداف OnLost / OnFound پیگیری میشوند |
extended_scan_support | 1 اکتت | از پنجره و بازه اسکن طولانی پشتیبانی می کند |
debug_logging_supported | 1 اکتت | از ثبت اطلاعات اشکال زدایی باینری از کنترلر پشتیبانی می کند |
LE_address_generation_offloading_support (منسوخ شده) | 1 اکتت | 0 = پشتیبانی نمی شود 1 = پشتیبانی می شود پس از نسخه 0.98 رزرو شده است. این پارامتر در ویژگی Google spec v0.98 و بالاتر به نفع ویژگی Privacy موجود در نسخه 4.2 و بالاتر BT منسوخ شده است. |
A2DP_source_offload_capability_mask | 4 اکتت | ماسک بیت برای انواع کدک پشتیبانی می شود بیت 0 - SBC بیت 1 - AAC بیت 2 - APTX بیت 3 - APTX HD بیت 4 - LDAC بیت 5-31 رزرو شده است |
bluetooth_quality_report_support | 1 اکتت | از گزارش رویدادهای کیفیت بلوتوث پشتیبانی می کند 0 = ناتوان 1 = توانا |
dynamic_audio_buffer_support | 4 اکتت | پشتیبانی از بافر پویا صوتی در کنترلر بلوتوث ماسک بیت برای انواع کدک پشتیبانی می شود بیت 0 - SBC بیت 1 - AAC بیت 2 - APTX بیت 3 - APTX HD بیت 4 - LDAC بیت 5-31 رزرو شده است |
a2dp_offload_v2_support | 1 اکتت | از دستورات A2DP Offload v2 در کنترلر بلوتوث پشتیبانی می کند (به Start A2DP Offload ، Stop A2DP offload مراجعه کنید) 0 = پشتیبانی نمی شود 1 = پشتیبانی می شود |
نتایج اسکن دسته ای
یک هدف طراحی این است که نحوه ارسال اعلانهای رویداد بلوتوث LE Scan Response به میزبان را بهبود بخشد تا در مصرف برق میزبان صرفهجویی شود.
با کاهش تعداد دفعاتی که کنترلر به پردازنده برنامه میزبان برای اسکن نتایج اطلاع میدهد، پردازنده برنامه میزبان میتواند مدت بیشتری در حالت بیکار/خواب بماند. این باعث کاهش مصرف برق در هاست می شود. پارامتر بازگشت total_scan_results_storage
LE_Get_Vendor_Capabilities_Command
نشان دهنده قابلیت تراشه برای ذخیره نتایج اسکن است.
این ویژگی بر مدیریت و پیکربندی امکانات ذخیره سازی نتایج اسکن LE در کنترلر بلوتوث تمرکز دارد. ذخیرهسازی برای دستهبندی موقت دادههای تبلیغات و اسکن دادهها و ابردادههایی که توسط کنترلکننده برای تحویل بعدی به میزبان دریافت میشود، استفاده میشود.
سفتافزار باید از دو نوع دستهبندی پشتیبانی کند که میتوانند به طور همزمان درگیر شوند:
- کوتاه شده. حاوی عناصر اطلاعاتی زیر است: {MAC، TX Power، RSSI، Timestamp}
- کامل. حاوی عناصر اطلاعاتی زیر است: {MAC، TX Power، RSSI، Timestamp، Adv Data، Scan Response}
LE_Batch_Scan_Command
OCF: 0x156
پارامتر فرمان | اندازه | هدف |
---|---|---|
Batch_Scan_opcode | 1 اکتت | 0x1 - ویژگی خاص مشتری را فعال کنید 0x2 - پارامترهای ذخیره سازی اسکن دسته ای را تنظیم کنید 0x3 - پارامترهای اسکن دسته ای را تنظیم کنید 0x4 - پارامترهای نتیجه اسکن دسته ای را بخوانید |
یک رویداد Command Complete برای این دستور ایجاد خواهد شد. فعال کردن ویژگی خاص مشتری اسکن را شروع نمی کند.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
Batch_Scan_opcode | 1 اکتت | 0x1 - ویژگی خاص مشتری را فعال کنید 0x2 - پارامترهای ذخیره سازی اسکن دسته ای را تنظیم کنید 0x3 - پارامترهای اسکن دسته ای را تنظیم کنید 0x4 - پارامترهای نتیجه اسکن دسته ای را بخوانید |
LE_Batch_Scan_Command: ویژگی خاص مشتری را فعال کنید
زیر OCF: 0x01
پارامتر زیر فرمان | اندازه | هدف |
---|---|---|
enable_customer_specific_feature_set | 1 اکتت | 0x01 - قابلیت Batch Scan را فعال کنید 0x00 - ویژگی اسکن دسته ای را غیرفعال کنید |
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
Batch_Scan_opcode | 1 اکتت | 0x1 - ویژگی خاص مشتری را فعال کنید 0x2 - پارامترهای ذخیره سازی اسکن دسته ای را تنظیم کنید 0x3 - پارامترهای اسکن دسته ای را تنظیم کنید 0x4 - پارامترهای نتیجه اسکن دسته ای را بخوانید |
LE_Batch_Scan_Command: فرمان فرعی پارامتر ذخیره سازی اسکن دسته ای را تنظیم کنید
زیر OCF: 0x02
پارامتر زیر فرمان | اندازه | هدف |
---|---|---|
Batch_Scan_Full_Max | 1 اکتت | حداکثر فضای ذخیره سازی (در درصد) به سبک کامل اختصاص داده شده است [محدوده: 0-100] |
Batch_Scan_Truncated_Max | 1 اکتت | حداکثر فضای ذخیره سازی (در درصد) به سبک کوتاه اختصاص داده شده است [محدوده: 0-100] |
Batch_Scan_Notify_Threshold | 1 اکتت | تنظیم سطح اعلان (در درصد) برای استخر ذخیرهسازی فردی [محدوده: 0-100] تنظیم روی 0 اعلان را غیرفعال می کند. رویداد HCI خاص فروشنده ایجاد میشود (فرع رویداد نقض آستانه ذخیرهسازی) |
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
Batch_scan_opcode | 1 اکتت | 0x02 [تنظیم پارامترهای اسکن دسته ای] |
LE_Batch_Scan_Command: دستور فرعی پارامتر اسکن دسته ای را تنظیم کنید
زیر OCF: 0x03
پارامتر زیر فرمان | اندازه | هدف |
---|---|---|
Batch_Scan_Mode | 1 اکتت | 0x00 - اسکن دسته ای غیرفعال است 0x01 - حالت کوتاه شده فعال است 0x02 - حالت کامل فعال است 0x03 - حالت کوتاه و کامل فعال هستند |
Duty_cycle_scan_window | 4 اکتت | زمان اسکن دسته ای (# شکاف) |
Duty_cyle_scan_interval | 4 اکتت | دوره فاصله اسکن دسته ای (# شکاف) |
own_address_type | 1 اکتت | 0x00 - آدرس دستگاه عمومی 0x01 - آدرس تصادفی دستگاه |
Batch_scan_Discard_Rule | 1 اکتت | 0 - قدیمی ترین آگهی را دور بریزید 1 - تبلیغات با ضعیف ترین RSSI را کنار بگذارید |
این دستور فرعی در صورت فعال بودن، اسکن دسته ای را آغاز می کند. در اسکن کوتاه، نتایج به شکل کوتاه شده ذخیره میشوند که در آن کلید منحصربهفرد برای سبک کوتاه = { BD_ADDR,
scan_interval} است. این بدان معناست که برای هر بازه اسکن فقط یک BD_ADDR will
شود. رکوردی که باید برای حالت کوتاه نگه داشته شود به شرح زیر است: { BD_ADDR
, Tx Power, RSSI, Timestamp}
وقتی حالت کامل فعال است، از اسکن فعال استفاده می شود و پاسخ های اسکن ضبط می شود. کلید منحصر به فرد استایل کامل = {MAC، بسته آگهی}، صرف نظر از فاصله زمانی اسکن. رکوردی که باید برای حالت کامل نگه دارید { BD_ADDR
، Tx Power، RSSI، Timestamp، بسته آگهی، پاسخ اسکن} است. در سبک کامل، همان بسته AD، زمانی که چندین بار در فواصل مختلف اسکن دیده شود، فقط یک بار ثبت می شود. با این حال، در حالت Truncated، مشاهده BA_ADDR
در فواصل مختلف اسکن مورد توجه است (یک بار در هر بازه اسکن). RSSI مقدار متوسط همه تکرارهای یک آگهی منحصر به فرد در یک بازه اسکن است.
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
Batch_scan_opcode | 1 اکتت | 0x03 [تنظیم پارامترهای اسکن دسته ای] |
LE_Batch_Scan_Command: فرمان فرعی نتایج اسکن دسته ای را بخوانید
زیر OCF: 0x04
پارامتر زیر فرمان | اندازه | هدف |
---|---|---|
Batch_Scan_Data_read | 1 اکتت | 0x01 - داده های حالت کوتاه شده 0x02 - داده های حالت کامل |
یک رویداد Command Complete برای این دستور ایجاد خواهد شد. هنگامی که میزبان این دستور را صادر می کند، ممکن است همه نتایج در کنترلر در یک رویداد Command Complete قرار نگیرند. میزبان صدور این دستور را تکرار می کند تا زمانی که نتایج مربوطه در رویداد Command Complete عدد 0 را در تعداد رکوردها نشان دهد، که نشان می دهد کنترل کننده هیچ رکورد دیگری برای برقراری ارتباط با میزبان ندارد. هر رویداد Command Complete میتواند حاوی چندین رکورد از یک نوع داده (کامل یا کوتاه) باشد.
مراجع کنترل کننده و زمان میزبان هماهنگ نیستند. واحد مهر زمانی 50 میلی ثانیه است. زمانی که Read_Batch_Scan_Results_Sub_cmd
توسط میزبان داده می شود، مقدار مهر زمانی مشخص می شود. اگر زمان رسیدن فرمان در میانافزار T_c
باشد، آنگاه زمان واقعی ثبت مهر زمانی در میانافزار T_fw
است. زمان گزارش دهی خواهد بود: ( T_c
- T_fw
). T_c
و T_fw
در حوزه زمان سیستم عامل هستند. این به میزبان اجازه میدهد تا مدت زمان پیش از وقوع رویداد را محاسبه کند.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
Batch_scan_opcode | 1 اکتت | 0x03 [تنظیم پارامترهای اسکن دسته ای] |
Batch_Scan_data_read | 1 اکتت | فرمت را مشخص می کند (قطع یا کامل) |
num_of_records | 1 اکتت | تعداد رکوردهای Batch_Scan_data_read |
format_of_data | متغیر | حالت کوتاه شده: آدرس[0]: 6 octets Address_Type[0]: 1 octet Tx_Pwr[0]: 1 اکتت RSSI[0]: 1 اکتت مهر زمانی[0]: 2 اکتت [چند رکورد ( num_of_records ) با فرمت بالا]حالت کامل: آدرس[0]: 6 octets Address_Type[0]: 1 octet Tx_Pwr[0]: 1 اکتت RSSI[0]: 1 اکتت مهر زمانی[0]: 2 اکتت Adv packet_len[0]: 1 octet Adv_packet[0]: اکتت Adv_packet_len Scan_data_resp_len[0]: 1 octet Scan_data_resp[0]: Scan_data_resp octets[چند رکورد با فرمت بالا ( num_of_records )] |
فیلتر محتوای بسته تبلیغاتی
از این برای فعال/غیرفعال/تنظیم فیلتر محتوای بسته تبلیغاتی (APCF) در کنترلر استفاده کنید. APCF گزارش های تبلیغاتی را در کنترلر فیلتر می کند اما تبلیغات دوره ای را فیلتر نمی کند.
LE_APCF_Command
OCF: 0x157
پارامتر فرمان | اندازه | هدف |
---|---|---|
APCF_opcode | 1 اکتت | 0x00 - APCF فعال کنید 0x01 - APCF پارامترهای فیلتر را تنظیم کنید 0x02 - آدرس پخش کننده APCF 0x03 - UUID سرویس APCF 0x04 - UUID درخواست خدمات APCF 0x05 - نام محلی APCF 0x06 - داده های سازنده APCF 0x07 - داده های سرویس APCF 0x08 - سرویس کشف حمل و نقل APCF 0x09 - فیلتر نوع APCF AD 0x10 ~ 0xAF - برای استفاده در آینده رزرو شده است 0xB0 ~ 0xDF - برای فروشنده محفوظ است 0xE0 ~ 0xFE - برای استفاده در آینده محفوظ است 0xFF - APCF خواندن ویژگی های توسعه یافته |
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | وضعیت بازگشت |
APCF_opcode | 1 اکتت | 0x00 - APCF فعال کنید 0x01 - APCF پارامترهای فیلتر را تنظیم کنید 0x02 - آدرس پخش کننده APCF 0x03 - UUID سرویس APCF 0x04 - UUID درخواست خدمات APCF 0x05 - نام محلی APCF 0x06 - داده های سازنده APCF 0x07 - داده های سرویس APCF 0x08 - سرویس کشف حمل و نقل APCF 0x09 - فیلتر نوع APCF AD 0x10 ~ 0xAF - برای استفاده در آینده رزرو شده است 0xB0 ~ 0xDF - برای فروشنده محفوظ است 0xE0 ~ 0xFE - برای استفاده در آینده محفوظ است 0xFF - APCF خواندن ویژگی های توسعه یافته |
LE_APCF_Command: Enable_sub_cmd
زیر OCF: 0x00
پارامتر زیر فرمان | اندازه | هدف |
---|---|---|
APCF_enable | 1 اکتت | 0x01 - قابلیت APCF را فعال کنید 0x00 - ویژگی APCF را غیرفعال کنید |
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
APCF_opcode | 1 اکتت | 0x0 - APCF فعال کنید |
APCF_Enable | 1 اکتت | فعال کردن/غیرفعال کردن از طریق APCF_enable تنظیم شده است |
LE_APCF_Command: set_filtering_parameters_sub_cmd
این دستور فرعی برای افزودن یا حذف مشخصات فیلتر یا پاک کردن لیست فیلتر برای فیلتر روی تراشه استفاده می شود.
زیر OCF: 0x01
پارامتر زیر فرمان | اندازه | هدف |
---|---|---|
APCF_Action | 1 اکتت | 0x00 - اضافه کنید 0x01 - حذف کنید 0x02 - پاک کردن Delete فیلتر خاص را به همراه ورودی های ویژگی مرتبط در سایر جداول پاک می کند. Clear تمام فیلترها و ورودی های مرتبط در جداول دیگر را پاک می کند. |
APCF_Filter_Index | 1 اکتت | فهرست فیلتر (0، max_filter-1 ) |
APCF_Feature_Selection | 2 اکتت | ماسک های بیت برای ویژگی های انتخاب شده: بیت 0: تنظیم کنید تا فیلتر آدرس پخش فعال شود بیت 1: فیلتر تغییر داده های سرویس را فعال کنید بیت 2: تنظیم کنید تا بررسی UUID سرویس فعال شود بیت 3: تنظیم کنید تا بررسی UUID درخواست خدمات فعال شود بیت 4: تنظیم کنید تا بررسی نام محلی فعال شود بیت 5: تنظیم کنید تا بررسی داده های سازنده فعال شود بیت 6: تنظیم کنید تا بررسی داده های سرویس فعال شود بیت 7: تنظیم کنید تا بررسی خدمات کشف حمل و نقل فعال شود بیت 8: تنظیم کنید تا بررسی نوع AD فعال شود |
APCF_List_Logic_Type | 2 اکتت | عملیات منطقی برای هر انتخاب ویژگی (موقعیت هر بیت) مشخص شده در APCF_Feature_Selection .فقط زمانی معتبر است که یک ویژگی فعال باشد. مقدار موقعیت بیت: 0: یا 1: و اگر منطق "AND" انتخاب شده باشد، یک بسته ADV تنها در صورتی از فیلتر عبور می کند که شامل تمام ورودی های لیست باشد. اگر منطق "OR" انتخاب شده باشد، یک بسته ADV اگر حاوی هر یک از ورودی های لیست باشد، از فیلتر عبور می کند. |
APCF_Filter_Logic_Type | 1 اکتت | 0x00: OR 0x01: و توجه: نوع منطق برای سه فیلد اول APCF_Feature_Selection ، N/A است که همیشه منطق "AND" است. آنها فقط برای (بیت 3 - بیت 6) چهار فیلد APCF_Feature_Selection قابل استفاده هستند. |
rssi_high_thresh | 1 اکتت | [در dBm] تبلیغ کننده تنها در صورتی دیده می شود که سیگنال بالاتر از آستانه بالای RSSI باشد. در غیر این صورت، سیستم عامل باید طوری رفتار کند که گویی هرگز آن را ندیده است. |
delivery_mode | 1 اکتت | 0x00 - immediate 0x01 - on_found 0x02 - batched |
onfound_timeout | 2 اکتت | فقط در صورتی معتبر است که delivery_mode on_found باشد.[در میلی ثانیه] زمان آن است که سیستم عامل باقی بماند و تبلیغات اضافی را قبل از گزارش جمع آوری کند. |
onfound_timeout_cnt | 1 اکتت | فقط در صورتی معتبر است که delivery_mode on_found باشد.[شمارش] اگر تبلیغی در onFound برای مدت زمان onfound_timeout در میانافزار باقی بماند، چند آگهی جمعآوری میکند و تعداد آن بررسی میشود. اگر تعداد از onfound_timeout_cnt بیشتر شود، بلافاصله بعد از آن OnFound گزارش می شود. |
rssi_low_thresh | 1 اکتت | فقط در صورتی معتبر است که delivery_mode on_found باشد.[در dBm] در صورتی که RSSI بسته دریافتی بالاتر از آستانه پایین RSSI نباشد، بسته تبلیغکننده دیده نمیشود. |
onlost_timeout | 2 اکتت | فقط در صورتی معتبر است که delivery_mode on_found باشد.[در میلی ثانیه] اگر تبلیغی پس از یافتن، به طور پیوسته برای دوره lost_timeout دیده نشود، بلافاصله گم شده گزارش می شود. |
num_of_tracking_entries | 2 اکتت | فقط در صورتی معتبر است که delivery_mode on_found باشد.[شمارش] تعداد کل تبلیغکنندگانی که باید در هر فیلتر دنبال شوند. |
مقادیر RSSI باید از مکمل 2 برای نمایش مقادیر منفی استفاده کنند.
میزبان باید بتواند چندین فیلتر را با APCF_Application_Address_type
تنظیم شده روی 0x02 (برای همه آدرسهای پخشکننده) برای مدیریت ترکیبهای فیلتر مختلف پیکربندی کند.
فیلتر کردن، دستهبندی و گزارشدهی مفاهیمی به هم مرتبط هستند. هر تبلیغ و پاسخ اسکن مربوطه باید از تمام فیلترها، یکی پس از دیگری عبور کند. بنابراین، اقدامات حاصل ( delivery_mode
) به شدت با فیلتر کردن مرتبط هستند. حالت های تحویل به شرح زیر است: report_immediately
، batch
و onFound
. مقدار OnLost
مربوط به OnFound
است به این معنا که در صورت گم شدن بعد از OnFound
خواهد آمد.
این جریان پردازش مدل مفهومی را به تصویر می کشد:
هنگامی که یک قاب تبلیغاتی (یا پاسخ اسکن) دریافت میشود، به ترتیب سریال روی تمام فیلترها اعمال میشود. ممکن است یک تبلیغ به دلیل عملکرد فیلتر متفاوت باعث گزارش فوری بر اساس یک فیلتر و دستهبندی آن شود.
آستانه های سطح RSSI (بالا و پایین) توانایی کنترل زمانی که فریم برای پردازش فیلتر قابل مشاهده است را می دهد، حتی زمانی که یک بسته معتبر توسط کنترل کننده دریافت می شود. در صورت تنظیم حالت تحویل روی فوری یا دستهای، RSSI یک قاب برای پردازش کنترلکننده بیشتر در نظر گرفته میشود. برنامه های مختلف به گزارش دهی و رفتار دسته بندی متفاوتی نیاز دارند. این به چندین برنامه اجازه میدهد تا گزارش مستقیم و/یا دستهای از نتایج در سیستمافزار را به طور همزمان داشته باشند. به عنوان مثال موردی است که یک اسکن دسته ای از یک برنامه فعال است و بعداً یک اسکن LE معمولی توسط برنامه دیگری صادر می شود. قبل از اینکه یک اسکن دسته ای صادر شود، چارچوب/برنامه فیلترهای مناسبی را تنظیم می کند. بعداً، وقتی برنامه دوم یک اسکن معمولی صادر میکند، دستهبندی قبلی ادامه مییابد. با این حال، به دلیل اسکن معمولی، شبیه به اضافه کردن مفهومی یک فیلتر تهی (به همراه تمام فیلترهای موجود) به همراه دستور اسکن LE است. پارامترهای دستور اسکن LE هنگام فعال بودن اولویت دارند. هنگامی که اسکن معمولی LE غیرفعال می شود، در صورت وجود، کنترلر به اسکن دسته ای قبلی برمی گردد.
حالت تحویل OnFound
بر اساس فیلترهای پیکربندی شده است. ترکیبی که عملکرد یک فیلتر را برای موفقیت راهاندازی میکند، نهادی برای ردیابی onLost
در نظر گرفته میشود. رویداد مربوطه LE Advt ردیابی فرعی است.
انتقال OnFound/OnLost
برای یک فیلتر (در صورت فعال بودن) به شکل زیر خواهد بود:
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
APCF_opcode | 1 اکتت | 0x01 - APCF پارامترهای فیلتر را تنظیم کنید |
APCF_Action | 1 اکتت | APCF_Action فرمان Echo back |
APCF_AvailableSpaces | 1 اکتت | تعداد ورودی های موجود در جدول فیلترها |
LE_APCF_Command: broadcast_address_sub_cmd
این دستور فرعی برای افزودن یا حذف آدرس تبلیغ کننده یا پاک کردن لیست آدرس تبلیغ کننده برای فیلتر کردن روی تراشه استفاده می شود.
زیر OCF: 0x02
پارامتر زیر فرمان | اندازه | هدف |
---|---|---|
APCF_Action | 1 اکتت | 0x00 - اضافه کنید 0x01 - حذف کنید 0x02 - پاک کردن Delete آدرس پخش کننده مشخص شده را در فیلتر مشخص شده حذف می کند. Clear تمام آدرس های پخش کننده را در فیلتر مشخص شده پاک می کند. |
APCF_Filter_Index | 1 اکتت | فهرست فیلتر (0، max_filter-1 ) |
APCF_Broadcaster_Address | 6 اکتت | آدرس دستگاه 6 بایتی برای افزودن یا حذف از لیست آدرس پخش کننده |
APCF_Application_Address_type | 1 اکتت | 0x00: عمومی 0x01: تصادفی 0x02: NA (نوع آدرس را نادیده بگیرید) برای فیلتر کردن گزارش های تبلیغاتی با انواع آدرس هویت (0x02، 0x03). برای دریافت گزارش های تبلیغاتی با انواع آدرس 0x02 و 0x03، این قسمت را روی 0x02: NA قرار دهید (نوع آدرس را نادیده بگیرید). |
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
APCF_opcode | 1 اکتت | 0x02 - آدرس پخش کننده APCF |
APCF_Action | 1 اکتت | APCF_Action فرمان Echo back |
APCF_AvailableSpaces | 1 اکتت | تعداد ورودیهای رایگان هنوز در جدول نشانی پخش موجود است |
LE_APCF_Command: service_uuid_sub_cmd
این دستور فرعی برای افزودن یا حذف UUID سرویس یا پاک کردن لیست UUID سرویس برای فیلتر کردن روی تراشه استفاده می شود.
زیر OCF: 0x03
پارامتر زیر فرمان | اندازه | هدف |
---|---|---|
APCF_Action | 1 اکتت | 0x00 - اضافه کنید 0x01 - حذف کنید 0x02 - پاک کردن Delete آدرس UUID سرویس مشخص شده را در فیلتر مشخص شده حذف می کند. Clear تمام UUID های سرویس را در فیلتر مشخص شده پاک می کند. |
APCF_Filter_Index | 1 اکتت | فهرست فیلتر (0، max_filter -1) |
APCF_UUID | 2،4،16 هشت | UUID سرویس (16 بیتی، 32 بیتی یا 128 بیتی) برای افزودن یا حذف از فهرست. |
APCF_UUID_MASK | 2،4،16 هشت | سرویس UUID Mask (16 بیتی، 32 بیتی یا 128 بیتی) برای افزودن به لیست. طول آن باید به اندازه APCF_UUID. |
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
APCF_opcode | 1 اکتت | 0x03 - UUID سرویس APCF |
APCF_Action | 1 اکتت | APCF_Action فرمان Echo back |
APCF_AvailableSpaces | 1 اکتت | تعداد ورودیهای رایگان هنوز در جدول سرویس UUID موجود است |
LE_APCF_Command: solicitation_uuid_sub_cmd
این دستور فرعی برای افزودن یا حذف یک UUID درخواست یا پاک کردن فهرست درخواستی UUID برای فیلتر کردن روی تراشه استفاده می شود.
زیر OCF: 0x04
پارامتر زیر فرمان | اندازه | هدف |
---|---|---|
APCF_Action | 1 اکتت | 0x00 - اضافه کنید 0x01 - حذف کنید 0x02 - پاک کردن Delete آدرس UUID درخواستی را در فیلتر مشخص شده حذف می کند. Clear همه UUID های درخواستی را در فیلتر مشخص شده پاک می کند. |
APCF_Filter_Index | 1 اکتت | فهرست فیلتر (0، max_filter -1) |
APCF_UUID | 2،4،16 هشت | درخواست UUID (16 بیتی، 32 بیتی یا 128 بیتی) برای افزودن یا حذف از لیست. |
APCF_UUID_MASK | 2،4،16 هشت | Solicitation UUID Mask (16 بیتی، 32 بیتی یا 128 بیتی) برای افزودن به لیست. طول آن باید برابر با APCF_UUID باشد. |
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
APCF_opcode | 1 اکتت | 0x04 - APCF Solicitation UUID |
APCF_Action | 1 اکتت | APCF_Action فرمان Echo back |
APCF_AvailableSpaces | 1 اکتت | تعداد ورودیهای رایگان هنوز در جدول درخواست UUID موجود است |
LE_APCF_Command: local_name_sub_cmd
این دستور فرعی برای افزودن یا حذف یک رشته نام محلی یا پاک کردن لیست رشته نام محلی برای فیلتر کردن روی تراشه استفاده می شود.
زیر OCF: 0x05
پارامتر زیر فرمان | اندازه | هدف |
---|---|---|
APCF_Action | 1 اکتت | 0x00 - اضافه کنید 0x01 - حذف کنید 0x02 - پاک کردن Delete رشته نام محلی مشخص شده را در فیلتر مشخص شده حذف می کند. Clear تمام رشته های نام محلی را در فیلتر مشخص شده پاک می کند. |
APCF_Filter_Index | 1 اکتت | فهرست فیلتر (0، max_filter -1) |
APCF_LocName_Mandata_or_SerData | اندازه متغیر | یک رشته کاراکتر برای نام محلی. یادداشت ها:
|
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
APCF_opcode | 1 اکتت | 0x05 - نام محلی APCF |
APCF_Action | 1 اکتت | APCF_Action فرمان Echo back |
APCF_AvailableSpaces | 1 اکتت | تعداد ورودی های رایگان هنوز در جدول نام محلی موجود است |
LE_APCF_Command: manf_data_sub_cmd
این دستور فرعی برای افزودن یا حذف یک رشته داده سازنده یا پاک کردن لیست رشته داده های سازنده برای فیلتر کردن روی تراشه استفاده می شود.
زیر OCF: 0x06
پارامتر زیر فرمان | اندازه | هدف |
---|---|---|
APCF_Action | 1 اکتت | 0x00 - اضافه کنید 0x01 - حذف کنید 0x02 - پاک کردن Delete رشته داده های سازنده مشخص شده را در فیلتر مشخص شده حذف می کند. Clear تمام رشته های داده سازنده را در فیلتر مشخص شده پاک می کند. |
APCF_Filter_Index | 1 اکتت | فهرست فیلتر (0، max_filter -1) |
APCF_LocName_Mandata_or_SerData | اندازه متغیر | یک رشته کاراکتر برای داده های سازنده. یادداشت ها:
|
APCF_ManData_Mask | اندازه متغیر | ماسک داده ساخت را برای افزودن به لیست. طول آن باید به اندازه APCF_LocName_or_ManData_or_SerData باشد. |
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
APCF_opcode | 1 اکتت | 0x06 - داده های سازنده APCF |
APCF_Action | 1 اکتت | APCF_Action فرمان Echo back |
APCF_AvailableSpaces | 1 اکتت | تعداد ورودیهای رایگان هنوز در جدول دادههای سازنده موجود است |
LE_APCF_Command: service_data_sub_cmd
این دستور فرعی برای افزودن یا حذف یک رشته داده سرویس یا پاک کردن لیست رشته داده های سرویس برای فیلتر کردن روی تراشه استفاده می شود.
زیر OCF: 0x07
پارامتر زیر فرمان | اندازه | هدف |
---|---|---|
APCF_Action | 1 اکتت | 0x00 - اضافه کنید 0x01 - حذف کنید 0x02 - پاک کردن Delete رشته داده های سرویس مشخص شده را در فیلتر مشخص شده حذف می کند. Clear تمام رشته های داده سرویس را در فیلتر مشخص شده پاک می کند. |
APCF_Filter_Index | 1 اکتت | فهرست فیلتر (0، max_filter -1) |
APCF_LocName_Mandata_or_SerData | اندازه متغیر | یک رشته کاراکتر برای داده های سرویس. یادداشت ها:
|
APCF_LocName_Mandata_or_SerData_Mask | اندازه متغیر | ماسک داده سرویس برای افزودن به لیست. طول آن باید به اندازه APCF_LocName_or_ManData_or_SerData. |
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
APCF_opcode | 1 اکتت | 0x07 - داده های سرویس APCF |
APCF_Action | 1 اکتت | APCF_Action فرمان Echo back |
APCF_AvailableSpaces | 1 اکتت | تعداد ورودیهای رایگان هنوز برای جدول دادههای سرویس موجود است |
LE_APCF_Command: ad_type_sub_cmd
این دستور فرعی برای افزودن یا حذف یک نوع AD یا پاک کردن لیست نوع AD برای فیلتر کردن روی تراشه استفاده می شود. از read_extended_features_sub_cmd
برای بررسی اینکه آیا این دستور پشتیبانی میشود یا خیر، استفاده کنید.
وقتی APCF_AD_DATA_Length
0 است، APCF_AD_TYPE
را بدون مقایسه AD Data و AD Data Mask فیلتر کنید. اگر طول داده بسته ADV دریافتی از AD_DATA_LENGTH
بیشتر شود، فقط اولین AD_DATA_LENGTH
بایت داده AD را مقایسه کنید و داده های باقیمانده را نادیده بگیرید.
زیر OCF: 0x09
پارامتر زیر فرمان | اندازه | هدف |
---|---|---|
APCF_Action | 1 اکتت | 0x00 - اضافه کنید 0x01 - حذف کنید 0x02 - پاک کردن Delete نوع AD مشخص شده را در فیلتر مشخص شده حذف می کند. Clear همه انواع AD را در فیلتر مشخص شده پاک می کند. |
APCF_Filter_Index | 1 اکتت | فهرست فیلتر (0، max_filter -1) |
APCF_AD_TYPE | 1 اکتت | نوع AD برای افزودن یا حذف از لیست. وقتی APCF_Action 0x02 است نادیده بگیرید (پاک کردن) |
APCF_AD_DATA_Length | 1 اکتت | 0x00 - یعنی محتوای داده را فیلتر نکنید وقتی APCF_Action 0x02 است نادیده بگیرید (پاک کردن) |
APCF_AD_DATA | اندازه متغیر | اندازه متغیر، بر اساس APCF_AD_DATA_Length وقتی APCF_Action 0x02 است نادیده بگیرید (پاک کردن) |
APCF_AD_DATA_MASK | اندازه متغیر | اندازه متغیر، بر اساس APCF_AD_DATA_Length وقتی APCF_Action 0x02 است نادیده بگیرید (پاک کردن)طول آن باید به اندازه APCF_AD_DATA باشد. |
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
APCF_opcode | 1 اکتت | 0x09 - نوع AD APCF |
APCF_Action | 1 اکتت | APCF_Action فرمان Echo back |
APCF_AvailableSpaces | 1 اکتت | تعداد ورودی های رایگان هنوز در جدول نوع AD موجود است |
LE_APCF_Command: read_extended_features_sub_cmd
این دستور فرعی برای خواندن ویژگی های توسعه یافته APCF استفاده می شود.
زیر OCF: 0xFF
پارامتر زیر فرمان | اندازه | هدف |
---|---|---|
قابل اجرا نیست | پارامتر فرمان خالی |
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
APCF_opcode | 1 اکتت | 0xFF - APCF_Read_Extended_Features |
APCF_extended_features | 2 اکتت | ماسک های بیت برای ویژگی های توسعه یافته پشتیبانی شده:
ارزش بیت
|
فعالیت کنترلر و فرمان اطلاعات انرژی
هدف از این اطلاعات برای عملکردهای سیستم میزبان بالاتر برای تجزیه و تحلیل کل فعالیتهای همه مؤلفهها، از جمله کنترلکننده BT و حالت کلان آن، در ارتباط با آنچه در برنامهها و چارچوب اتفاق میافتد است. برای انجام این کار، اطلاعات زیر از پشته BT و کنترلر مورد نیاز است:
- پشته BT: گزارش وضعیت کلان عملیاتی فعلی کنترلر
- سیستم عامل: گزارش فعالیت کل و اطلاعات انرژی
حالت های ماکرو پشته میزبان BT، همانطور که در سطح کاربر تعیین می شود:
- بیکار: [اسکن صفحه، LE advt، اسکن پرسش، اسکن LE]
- اسکن: [صفحهبندی/پرسش/تلاش برای اتصال]
- فعال: [پیوند ACL روشن، پیوند SCO در حال انجام، حالت sniff]
فعالیت هایی که کنترلر در طول عمر خود پیگیری می کند عبارتند از زمان Tx، زمان Rx، زمان بیکاری و کل انرژی مصرف شده. هنگام خواندن از میزبان پاک می شوند.
LE_Get_Controller_Activity_Energy_Info
این یک فرمان خاص فروشنده است.
OCF: 0x159
پارامتر زیر فرمان | اندازه | هدف |
---|---|---|
NA | پارامترهای دستور خالی |
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
total_tx_time_ms | 4 اکتت | کل زمان انجام Tx |
total_rx_time_ms | 4 اکتت | کل زمان انجام Rx |
total_idle_time_ms | 4 اکتت | کل زمان در حالت بیکار (حالت های کم مصرف بدون خواب) |
total_energy_used | 4 اکتت | کل انرژی مصرف شده [محصول جریان (mA)، ولتاژ (V) و زمان (ms)] |
فرمان پارامترهای اسکن مجموعه گسترده LE
از این دستور می توان برای فعال کردن یک پنجره اسکن بزرگتر و بازه در کنترلر استفاده کرد. طبق مشخصات BT Core 5.2، یک پنجره و بازه اسکن دارای حد بالایی 10.24 ثانیه است که فواصل اسکن بیش از 10.24 ثانیه را برای برنامه ها مختل می کند.
مرجع پایه: مشخصات BT Core 5.2، صفحه 2493 (دستور پارامترهای اسکن LE)
OCF: 0x15A
پارامتر فرمان | اندازه | هدف |
---|---|---|
LE_Ex_Scan_Type | 1 اکتت | 0x00 - اسکن غیرفعال. هیچ بسته SCAN_REQ نباید ارسال شود (پیش فرض).0x01 - اسکن فعال. بسته های SCAN_REQ ممکن است ارسال شوند. |
LE_Ex_Scan_Interval | 4 اکتت | به عنوان فاصله زمانی از زمانی که کنترلر آخرین اسکن LE خود را شروع کرد تا زمانی که اسکن LE بعدی را آغاز کرد، تعریف می شود. محدوده: 0x0004 تا 0x00FFFFFF پیشفرض: 0x0010 (10 میلیثانیه) زمان = N * 0.625 ms محدوده زمانی: 2.5 ms تا 10442.25 ثانیه |
LE_Ex_Scan_Window | 4 اکتت | مدت زمان اسکن LE. LE_Scan_Window باید کمتر یا مساوی با LE_Scan_Interval باشد.محدوده: 0x0004 تا 0xFFFF پیشفرض: 0x0010 (10 میلیثانیه) زمان = N * 0.625 ms محدوده زمانی: 2.5 ms تا 40.95 ثانیه |
Own_Address_Type | 1 اکتت | 0x00 - آدرس دستگاه عمومی (پیشفرض) 0x01 - آدرس تصادفی دستگاه |
LE_Ex_Scan_Filter_Policy | 0x00 - پذیرفتن تمام بسته های تبلیغاتی (پیش فرض). بسته های تبلیغاتی هدایت شده که برای این دستگاه آدرس داده نشده اند، نادیده گرفته می شوند. 0x01 - بسته های تبلیغاتی را از دستگاه هایی که در لیست فقط لیست سفید نیستند نادیده بگیرید. بسته های تبلیغاتی هدایت شده که برای این دستگاه آدرس داده نشده اند، نادیده گرفته می شوند. |
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
فرمان اطلاعات اشکال زدایی کنترلر را دریافت کنید
هدف این عنصر اطلاعاتی بدست آوردن اطلاعات اشکال زدایی کنترلر توسط یک میزبان، به شکل باینری، برای پس پردازش و تجزیه و تحلیل است. این به اشکال زدایی مشکلات میدانی کمک می کند و یک جعبه ابزار برای ثبت اطلاعات برای تجزیه و تحلیل در اختیار مهندسان قرار می دهد. یک کنترلر می تواند اطلاعات را در صورت درخواست میزبان از طریق رویداد (فرع رویداد اطلاعات اشکال زدایی کنترلر) یا در صورت تمایل کنترل کننده به صورت مستقل ارائه دهد. به عنوان مثال میتوان به گزارش اطلاعات وضعیت سیستمافزار، اطلاعات مربوط به خرابی، اطلاعات ورود به سیستم و غیره اشاره کرد.
OCF: 0x15B
پارامتر فرمان | اندازه | هدف |
---|---|---|
N/A | لیست پارامترهای دستور خالی |
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
پشتیبانی از بارگذاری سخت افزاری A2DP
ویژگی A2DP Offload از بارگذاری فرآیند رمزگذاری صوتی A2DP به یک پردازنده صوتی متصل به کنترلر BT پشتیبانی می کند. جریان داده های صوتی رمزگذاری شده مستقیماً از پردازنده صوتی به کنترلر BT بدون دخالت میزبان BT منتقل می شود. میزبان BT همچنان مسئول پیکربندی و کنترل جلسه A2DP است. دو نسخه از دستورات موجود است. دستورات قدیمی با Sub OCF 0x01-0x02 فقط از کدک های منبع باز پشتیبانی می کنند. نسخههای با Sub-OCF 0x03-0x04 نسبت به کدک پیکربندیشده آگنوستیک هستند.
OCF: 0x15D
شروع بارگذاری A2DP (قدیمی)
زیر OCF: 0x01
از این دستور هم برای پیکربندی فرآیند تخلیه A2DP و هم برای شروع جریان A2DP استفاده کنید.
پارامتر فرمان | اندازه | هدف |
---|---|---|
Codec | 4 اکتت | نوع کدک را مشخص می کند 0x01 - SBC 0x02 - AAC 0x04 - APTX 0x08 - APTX HD 0x10 - LDAC |
Max_Latency | 2 اکتت | حداکثر تأخیر مجاز (بر حسب میلیثانیه). مقدار صفر فلاش را غیرفعال می کند. |
SCMS-T_Enable | 2 اکتت | Octet 0: پرچمی که اضافه کردن هدر SCMS-T را امکان پذیر می کند.
Octet 1: مقدار برای هدر SCMS-T، زمانی که فعال است. |
Sampling_Frequency | 4 اکتت | 0x01 - 44100 هرتز 0x02 - 48000 هرتز 0x04 - 88200 هرتز 0x08 - 96000 هرتز |
Bits_Per_Sample | 1 اکتت | 0x01 - 16 بیت در هر نمونه 0x02 - 24 بیت در هر نمونه 0x04 - 32 بیت در هر نمونه |
Channel_Mode | 1 اکتت | 0x01 - مونو 0x02 - استریو |
Encoded_Audio_Bitrate | 4 اکتت | نرخ بیت صوتی رمزگذاری شده بر حسب بیت در ثانیه. 0x00000000 - میزان بیت صدا مشخص نشده / استفاده نشده است. 0x00000001 - 0x00FFFFFF - نرخ بیت صوتی رمزگذاری شده بر حسب بیت در ثانیه. 0x01000000 - 0xFFFFFFFF - رزرو شده. |
Connection_Handle | 2 اکتت | دستگیره اتصال اتصال A2DP در حال پیکربندی است |
L2CAP_Channel_ID | 2 اکتت | شناسه کانال L2CAP که برای این اتصال A2DP استفاده می شود |
L2CAP_MTU_Size | 2 اکتت | حداکثر اندازه L2CAP MTU حاوی بسته های صوتی رمزگذاری شده |
Codec_Information | 32 اکتت | اطلاعات مختص کدک کدک SBC: به عناصر اطلاعاتی خاص کدک SBC در A2DP نسخه 1.3 مراجعه کنید. کدک AAC: به عناصر اطلاعاتی خاص کدک AAC در A2DP نسخه 1.3 مراجعه کنید کدک LDAC: Octet 0-3: شناسه فروشنده Octet 4-5: Codec ID Octet 6: Index Bitrate: Octet 7: حالت کانال LDAC Octet 8-31: رزرو شده است همه کدک های دیگر: اکتت 0-31: رزرو شده است |
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
Sub_Opcode | 1 اکتت | 0x01 - تخلیه A2DP را شروع کنید |
تخلیه A2DP را شروع کنید
زیر OCF: 0x03
از این دستور هم برای پیکربندی فرآیند تخلیه A2DP و هم برای شروع جریان A2DP استفاده کنید.
پارامتر فرمان | اندازه | هدف |
---|---|---|
Connection Handle | 2 اکتت | دسته اتصال HCI فعال |
L2CAP_Channel_ID | 2 اکتت | شناسه کانال L2CAP برای پخش جریانی A2DP باز شد |
Data_Path_Direction | 1 اکتت | 0x00 - خروجی (AVDTP Source/Merge) 0x01 - ورودی (AVDTP Sink/Split) |
Peer_MTU | 2 اکتت | حداکثر اندازه بسته های L2CAP، با همتا مذاکره شده است. |
CP_Enable_SCMS_T | 1 اکتت | 0x00 - SCMS-T Content Protection Header را غیرفعال کنید 0x01 - SCMS-T Content Protection Header را فعال کنید |
CP_Header_SCMS_T | 1 اکتت | هنگامی که SCMS-T Content Protection Header فعال است ( CP_SCMS_T_Enable روی 0x01 تنظیم شده است)، مقدار سرصفحه را که قبل از محتوای صوتی است (به A2DP، بخش 3.2.1-2 مراجعه کنید) تعریف می کند، همانطور که توسط شماره های اختصاص داده شده بلوتوث، بخش 6.3.2 تعریف شده است.وقتی محافظت از محتوای SCMS-T فعال نیست نادیده گرفته می شود. |
Vendor_Specific_Parameters_Length | 1 اکتت | طول پارامترهای خاص فروشنده، در محدوده 0 تا 128. مقدار 0 زمانی استفاده می شود که هیچ پارامتر اضافی ارائه نشده باشد. |
Vendor_Specific_Parameters | 0-128 اکتت | پارامترهای خاص فروشنده ارائه شده توسط بلوتوث صوتی HAL، CodecParameters.vendorSpecificParameters[] . |
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
Sub_Opcode | 1 اکتت | 0x03 - بارگذاری A2DP را شروع کنید |
متوقف کردن بارگیری A2DP (قدیمی)
زیر OCF: 0x02
این دستور برای متوقف کردن جریان تخلیه A2DP استفاده می شود.
پارامتر فرمان | اندازه | هدف |
---|---|---|
N/A | لیست پارامترهای دستور خالی |
هیچ پارامتری برای این دستور تعریف نشده است.
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
Sub_Opcode | 1 اکتت | 0x02 - بارگذاری A2DP را متوقف کنید |
بارگذاری A2DP را متوقف کنید
زیر OCF: 0x04
این دستور برای متوقف کردن جریان تخلیه A2DP استفاده می شود.
پارامتر فرمان | اندازه | هدف |
---|---|---|
Connection Handle | 2 اکتت | دسته اتصال HCI فعال |
L2CAP_Channel_ID | 2 اکتت | شناسه کانال L2CAP برای پخش جریانی A2DP باز شد |
Data_Path_Direction | 1 اکتت | 0x00 - خروجی (AVDTP Source/Merge) 0x01 - ورودی (AVDTP Sink/Split) |
یک رویداد Command Complete برای این دستور ایجاد خواهد شد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | فرمان وضعیت کامل |
Sub_Opcode | 1 اکتت | 0x04 - بارگذاری A2DP را متوقف کنید |
فرمان گزارش کیفیت بلوتوث
ویژگی فرمان BT Quality Report مکانیزم را در کنترلر بلوتوث برای گزارش رویدادهای کیفیت بلوتوث به میزبان شروع می کند. می توانید چهار گزینه را فعال کنید:
- حالت نظارت بر کیفیت: کنترل کننده به صورت دوره ای یک رویداد فرعی BQR مرتبط با کیفیت پیوند را برای میزبان ارسال می کند.
- نزدیک شدن به LSTO: اگر هیچ بسته ای از دستگاه BT متصل برای بیش از نیمی از مقدار Link Supervision TimeOut (LSTO) دریافت نشود، کنترل کننده یک رویداد نزدیک شدن به LSTO را به میزبان گزارش می دهد.
- A2DP Audio Choppy: هنگامی که کنترل کننده عواملی را که باعث ایجاد صدای تند و تیز می شوند ، تشخیص می دهد ، کنترلر یک رویداد چوپان صوتی A2DP را به میزبان گزارش می دهد.
- (ه) SCO SCO CHOPPY: هنگامی که کنترل کننده عواملی را که باعث صدای ریز و درشت می شوند ، تشخیص می دهد ، کنترل کننده یک رویداد (E) SCO SCO Copypy را به میزبان گزارش می دهد.
- التهاب ریشه: این رویداد هنگامی که HAL یا کنترل کننده با یک خطای مهلک روبرو می شوند ، توسط کنترلر به پشته ارسال می شود و نیاز به راه اندازی مجدد بلوتوث دارد.
- LMP/LL پیام پیام: کنترل کننده دست زدن به پیام LMP/LL را با دستگاه از راه دور به میزبان ارسال می کند.
- برنامه ریزی برنامه ریزی چند منظوره/بلوتوث: کنترل کننده اطلاعات برنامه ریزی خود را در مورد استفاده از پروفایل های بلوتوث متعدد و همزیستی بی سیم در باند 2.4 گیگاهرتز به میزبان ارسال می کند.
- مکانیسم اطلاعات اشکال زدایی کنترل کننده: در صورت فعال بودن ، کنترل کننده می تواند به طور مستقل اطلاعات مربوط به ورود به سیستم اشکال زدایی را از طریق اطلاعات مربوط به اشکال زدایی کنترل کننده به میزبان گزارش دهد.
- le audio choppy: هنگامی که کنترل کننده عواملی را که باعث ایجاد صدای تند و تیز می شوند ، تشخیص می دهد ، کنترل کننده یک رویداد صوتی صوتی را به میزبان گزارش می دهد.
- Advance RF Stats Mode: کنترل کننده اطلاعات مربوط به آمار RF خود را به میزبان گزارش می دهد و از دو مورد استفاده از گزارش پشتیبانی می کند:
- گزارش های دوره ای
- محرک های رویداد (شروع/توقف جریان و لینک کیفیت رویداد).
- BQR_REPORT_ACTION از دستور گزارش کیفیت بلوتوث: میزبان می تواند از این دستور HCI برای دریافت یک پرس و جو یک بار برای حالت نظارت بر کیفیت ، حالت مانیتور انرژی یا حالت Advance RF Stats استفاده کند.
OCF: 0x15e
پارامتر فرمان | اندازه | هدف |
---|---|---|
BQR_Report_Action | 1 اکتت | اقدام برای افزودن / حذف گزارش گزارش از رویداد (های) با کیفیت تنظیم شده در پارامتر BQR_QUATICE_EVENT_MASK ، یا همه را پاک کنید. 0x00 - اضافه کنید حذف گزارش (های) با کیفیت خاص را پاک می کند. |
BQR_Quality_Event_Mask | 4 اکتت | ماسک های بیت برای گزارش رویداد با کیفیت انتخاب شده. بیت 0: برای فعال کردن حالت نظارت بر کیفیت تنظیم کنید. |
BQR_Minimum_Report_Interval | 2 اکتت | حداقل فاصله زمانی گزارش رویداد با کیفیت را برای رویداد (های) با کیفیت انتخاب شده تعریف کنید. سیستم عامل کنترل کننده نباید رویداد بعدی را در بازه زمانی مشخص گزارش کند. تنظیم فاصله باید برای رویداد (های) با کیفیت که در حال اضافه شدن هستند ، مناسب باشد. واحد: MS |
BQR_Vendor_Specific_Quality_Event_Mask | 4 اکتت | ماسک های بیت برای گزارش رویداد با کیفیت خاص فروشنده انتخاب شده. این پارامتر فقط زمانی معتبر است که بیت 15 از BQR_Quality_Event_Mask تنظیم شود.بیت 0 ~ 31: محفوظ است. |
BQR_Vendor_Specific_Trace_Mask | 4 اکتت | ماسک های بیت برای گزارش ردیابی ویژه فروشنده انتخاب شده. این پارامتر فقط زمانی معتبر است که بیت 31 از BQR_Quality_Event_Mask تنظیم شود.بیت 0 ~ 31: محفوظ است. |
Report_interval_multiple | 4 اکتت | ضرب برای BQR_Minimum_Report_Interval . هنگامی که این مقدار> = 1 ، فاصله گزارش BQR از قالب پیروی می کندگزارش BQR فاصله = BQR_MINIMUM_REPORT_INTERVAL X Report_interval_multiple. سیستم عامل کنترل کننده نباید رویداد بعدی را در بازه زمانی مشخص گزارش کند. تنظیم فاصله به طور خاص برای رویداد (های) با کیفیت اضافه شده اختصاص یافته است. واحد: MS BQR_Report_Interval از توانایی کنترلر بزرگتر باشد ، کنترل کننده باید حداکثر زمان BQR_Report_Interval را در تکمیل دستور برگرداند. |
یک رویداد کامل فرمان برای این دستور ایجاد می شود.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | وضعیت کامل فرمان |
Current_Quality_Event_Mask | 4 اکتت | تنظیم ماسک بیت فعلی را نشان می دهد. بیت 0: حالت نظارت بر کیفیت فعال است. بیت 1: نزدیک شدن به گزارش رویداد LSTO فعال است. بیت 2: گزارش رویدادهای صوتی A2DP Audio فعال است. بیت 3: (ه) گزارش رویداد SCO CHOPPY VOICE فعال است. بیت 4: گزارش رویداد التهاب ریشه فعال است. بیت 5: حالت نظارت بر انرژی فعال است. بیت 6: LE Audio Choppy Reporting فعال است. بیت 7: اتصال Fail Event. بیت 8: تنظیم کنید تا بتواند ماشه Advance RF Stats Mode Event را فعال کند. بیت 9: تنظیم کنید تا آمار Advance RF را بطور دوره ای گزارش دهید. بیت 10 ~ 14: محفوظ است. بیت 15: گزارش رویداد با کیفیت خاص فروشنده فعال است. بیت 16: ردیابی پیام LMP/LL فعال است. بیت 17: اثر برنامه ریزی چند لینک/اتصال بلوتوث فعال است. بیت 18: مکانیسم اطلاعات اشکال زدایی کنترل کننده فعال است. بیت 19 ~ 30: محفوظ است. بیت 31: ردیابی خاص فروشنده فعال است. |
Current_Vendor_Specific_Quality_Event_Mask | 4 اکتت | تنظیم ماسک بیت فعلی را نشان می دهد. |
Current_Vendor_Specific_Trace_Mask | 4 اکتت | تنظیم ماسک بیت فعلی را نشان می دهد. |
BQR_Report_interval | 4 اکتت | تنظیم ماسک بیت فعلی را نشان می دهد. |
Current_Vendor_Specific_Trace_Mask | 4 اکتت | تنظیم BQR_Report_interval . این باید حداقل مقدار بین BQR_MINIMUM_REPORT_INTERVAL * Report_interval_multiple یا حداکثر فاصله پشتیبانی کنترل کننده باشد. |
فرمان بافر صوتی پویا
بافر صوتی پویا با تغییر اندازه بافر صوتی در کنترلر بلوتوث بر اساس سناریوهای مختلف ، باعث کاهش صدای صدا می شود.
OCF: 0x15f
قابلیت زمان بافر صوتی را دریافت کنید
زیر OCF: 0x01
برای به دست آوردن قابلیت زمان بافر صوتی از کنترلر بلوتوث از این دستور استفاده کنید.
پارامتر فرمان | اندازه | هدف |
---|---|---|
N/A | لیست پارامتر فرمان خالی |
یک رویداد کامل فرمان برای این دستور ایجاد می شود.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | وضعیت کامل فرمان |
Dynamic_Audio_Buffer_opcode | 1 اکتت | 0x01 - زمان بافر صوتی را دریافت کنید |
Audio_Codec_Type_Supported | 4 اکتت | ماسک های بیت برای انواع کدک پشتیبانی شده بیت 0 - SBC بیت 1 - AAC بیت 2 - aptx بیت 3 - Aptx HD بیت 4 - LDAC بیت 5-31 محفوظ است |
Audio_Codec_Buffer_Default_Time_For_Bit_0 | 2 اکتت | زمان پیش فرض بافر از نوع کدک بیت 0 که در AUDIO_CODEC_TYPE_SUPPORTED مشخص شده است. اگر نوع کدک بیت 0 پشتیبانی نشود ، این مقدار 0 خواهد بود. واحد: MS |
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 | 2 اکتت | حداکثر زمان بافر از نوع کدک بیت 0 که در AUDIO_CODEC_TYPE_SUPPORTED مشخص شده است. اگر نوع کدک بیت 0 پشتیبانی نشود ، این مقدار 0 خواهد بود. واحد: MS |
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 | 2 اکتت | حداقل زمان بافر از نوع کدک بیت 0 که در AUDIO_CODEC_TYPE_SUPPORTED مشخص شده است. اگر نوع کدک بیت 0 پشتیبانی نشود ، این مقدار 0 خواهد بود. واحد: MS |
Audio_Codec_Buffer_Default_Time_For_Bit_1 | 2 اکتت | زمان بافر پیش فرض نوع کدک بیت 1 که در Audio_Codec_Type_Supported مشخص شده است. اگر نوع کدک بیت 1 پشتیبانی نشود ، این مقدار 0 خواهد بود. واحد: MS |
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 | 2 اکتت | حداکثر زمان بافر از نوع کدک بیت 1 که در Audio_Codec_Type_Supported مشخص شده است. اگر نوع کدک بیت 1 پشتیبانی نشود ، این مقدار 0 خواهد بود. واحد: MS |
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 | 2 اکتت | حداقل زمان بافر از نوع کدک بیت 1 که در Audio_Codec_Type_Supported مشخص شده است. اگر نوع کدک بیت 1 پشتیبانی نشود ، این مقدار 0 خواهد بود. واحد: MS |
...... | ...... | ...... |
Audio_Codec_Buffer_Default_Time_For_Bit_31 | 2 اکتت | زمان بافر پیش فرض نوع کدک بیت 31 در Audio_Codec_Type_Supported مشخص شده است. در صورت عدم پشتیبانی از نوع کدک بیت 31 ، این مقدار باید 0 باشد. واحد: MS |
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 | 2 اکتت | حداکثر زمان بافر از نوع کدک بیت 31 در Audio_Codec_Type_Supported مشخص شده است. در صورت عدم پشتیبانی از نوع کدک بیت 31 ، این مقدار باید 0 باشد. واحد: MS |
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 | 2 اکتت | حداقل زمان بافر از نوع کدک بیت 31 در Audio_Codec_Type_Supported مشخص شده است. در صورت عدم پشتیبانی از نوع کدک بیت 31 ، این مقدار باید 0 باشد. واحد: MS |
زمان بافر صوتی را تنظیم کنید
زیر OCF: 0x02
از این دستور برای تنظیم زمان بافر صوتی در کنترلر بلوتوث استفاده کنید.
پارامتر فرمان | اندازه | هدف |
---|---|---|
Audio_Codec_Buffer_Time | 2 اکتت | زمان بافر صوتی درخواست شده برای کدک فعلی استفاده شده. واحد: MS |
یک رویداد کامل فرمان برای این دستور ایجاد می شود.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | وضعیت کامل فرمان |
Dynamic_Audio_Buffer_opcode | 1 اکتت | 0x02 - زمان بافر صوتی را تنظیم کنید |
Audio_Codec_Buffer_Time | 2 اکتت | زمان بافر صوتی فعلی در کنترلر بلوتوث. واحد: MS |
رویداد HCI (ویژه فروشنده)
در بعضی موارد وقایع HCI خاص فروشنده مورد نیاز است. به شکل 5.4 در صفحه 1897 مشخصات BT Core 5.2 مراجعه کنید. پارامتر رویداد 0 همیشه حاوی اولین کد فرعی است که براساس آن بقیه رویداد HCI رمزگشایی می شوند.
پارامتر رویداد | اندازه | هدف |
---|---|---|
HCI_vendor_specific_event_code | 1 اکتت | 0xFF |
sub_event_code | 1 اکتت | یک کد فرعی به اندازه 1 اکتبر خواهد بود ، بایت بلافاصله پس از طول پارامتر در بسته رویداد HCI. |
نقض آستانه ذخیره سازی
این رویداد نشان می دهد که آستانه ذخیره سازی نقض شده است.
کد فرعی = 0x54
پارامتر فرعی | اندازه | هدف |
---|---|---|
هیچ کدام |
LE Multi-Advertising State Sublent
این رویداد نشان می دهد که یک نمونه تبلیغاتی وضعیت خود را تغییر داده است. در این زمان ، این رویداد فقط برای نشان دادن کدام نمونه تبلیغات در نتیجه اتصال متوقف شده است.
کد فرعی = 0x55
پارامتر فرعی | اندازه | هدف |
---|---|---|
Advertising_instance | 1 اکتت | نمونه تبلیغاتی خاص را مشخص می کند مقادیر معتبر از طریق max_advt_instances -1 |
State_Change_Reason | 1 اکتت | 0x00: اتصال دریافت شده |
Connection_handle | 2 اکتت | ارتباطی را که باعث غیرفعال شدن نمونه advt شده است ، مشخص می کند (0xFFFF در صورت نامعتبر) |
ردیابی تبلیغات LE
این رویداد نشان می دهد که یک تبلیغ کننده پیدا شده یا از بین می رود.
کد رویداد فرعی = 0x56
پارامتر فرعی | اندازه | هدف |
---|---|---|
APCF_Filter_Index | 1 اکتت | شاخص فیلتر (0 ، max_filter -1) |
Advertiser_State | 1 اکتت | 0x00: تبلیغ کننده یافت شد 0x01: تبلیغ کننده گم شد |
Advt_Info_Present | 1 اکتت | 0x00: اطلاعات تبلیغ کننده ( Advt_Info ) موجود است0x01: اطلاعات تبلیغ کننده ( Advt_Info ) موجود نیست |
Advertiser_Address | 6 اکتبر | آدرس عمومی یا تصادفی |
Advertiser_Address_Type | 1 اکتت | 0x00: آدرس عمومی 0x01: آدرس تصادفی |
Advt_Info | Tx_Pwr[0] : 1 اکتبرRSSI[0] : 1 اکتبرTimestamp[0] : 2 اکتتAdv packet_len[0] : 1 اکتبرAdv_packet[0] : Adv_packet_len اکتتScan_data_resp_len[0] : 1 اکتبرScan_data_resp[0] : Octets Scan_data_resp |
اطلاعات اشکال زدایی کنترل کننده
این رویداد توسط یک کنترلر برای ارائه اطلاعات اشکال زدایی باینری به یک میزبان استفاده می شود.
کد فرعی = 0x57
پارامتر فرعی | اندازه | هدف |
---|---|---|
debug_block_byte_offset_start | 2 اکتت | بایت بلوک اشکال زدایی از ابتدا |
last_block | 1 اکتت | 0x00: داده های اشکال زدایی بیشتر موجود است 0x01: آخرین بلوک باینری ؛ دیگر اطلاعات اشکال زدایی وجود ندارد |
cur_pay_load_sz | 2 اکتت | اندازه بلوک دودویی در یک رویداد فعلی |
Debug_Data | متغیر | داده های اشکال زدایی از cur_payload_sz |
گزارش کیفیت بلوتوث فرعی
این رویداد یکی از موارد زیر را نشان می دهد: یک رویداد با کیفیت بلوتوث رخ داده است ، کنترلر ردیابی پیام LMP/LL و برنامه ریزی چند لینک/بلوتوث را بارگذاری کرده است ، یا کنترلر داده های اطلاعات اشکال زدایی را کنترل می کند.
کد فرعی = 0x58 [کیفیت_ report_id = 0x01 ~ 0x04 ، رویداد مرتبط با کیفیت پیوند]
پارامتر فرعی | اندازه | هدف |
---|---|---|
Quality_Report_Id | 1 اکتت | 0x01: گزارش کیفیت در حالت نظارت. 0x02: نزدیک شدن به LSTO. 0x03: A2DP Audio Choppy. 0x04: (E) SCO صدای ریز و درشت. 0x05 ~ 0x06: محفوظ است. 0x07: le audio choppy. 0x08: اتصال به کار بیفتد. 0x09 ~ 0xff: محفوظ است. |
Packet_Types | 1 اکتت | 0x01: شناسه 0x02: تهی 0x03: نظرسنجی 0x04: FHS 0x05: HV1 0x06: HV2 0x07: HV3 0x08: DV 0x09: EV3 0x0a: EV4 0x0b: EV5 0x0c: 2-EV3 0x0d: 2-EV5 0x0E: 3-EV3 0x0f: 3-EV5 0x11: DH1 0x12: DM3 0x13: DH3 0x14: DM5 0x15: DH5 0x16: aux1 0x17: 2-DH1 0x18: 2-DH3 0x19: 2-DH5 0x1a: 3-DH1 0x1b: 3-DH3 0x1c: 3-DH5 0x1d ~ 0x50: محفوظ است 0x51: بسته ISO 0x52 ~ 0xff: محفوظ است |
Connection_Handle | 2 اکتت | دسته اتصال ACL/(E) SCO/ISO. |
Connection_Role | 1 اکتت | انجام نقش برای اتصال. 0x00: مرکزی 0x01: محیطی 0x02 ~ 0xff: محفوظ است. |
TX_Power_Level | 1 اکتت | سطح برق انتقال فعلی برای اتصال_دل مشخص شده. این مقدار باید همانند پاسخ کنترل کننده به دستور HCI_READ_TRANSMIT_POWER_LEVEL HCI باشد. |
RSSI | 1 اکتت | [در DBM] مقدار نشانه قدرت سیگنال (RSSI) دریافت شده برای اتصال مشخص شده. |
SNR | 1 اکتت | [در DB] مقدار نسبت سیگنال به نویز (SNR) برای Connection_Handle مشخص شده. |
Unused_AFH_Channel_Count | 1 اکتت | تعداد کانال های استفاده نشده در AFH_CHANNEL_MAP را نشان می دهد. 0x4f ~ 0xff: محفوظ است. |
AFH_Select_Unideal_Channel_Count | 1 اکتت | تعداد کانال هایی را که دخالت می کنند و از کیفیت بد برخوردار هستند ، نشان می دهد ، اما هنوز هم برای AFH انتخاب شده اند. حداقل تعداد کانال های مجاز توسط مشخصات بلوتوث 20 است ، بنابراین حتی اگر همه 79 کانال دخالت داشته باشند و از کیفیت بد برخوردار باشند ، کنترل کننده هنوز باید حداقل 20 کانال را برای AFH انتخاب کند. |
LSTO | 2 اکتت | تنظیم زمان نظارت بر پیوند فعلی. زمان = n * 0.625 ms محدوده زمانی: 0.625 ms تا 40.9 ثانیه |
Connection_Piconet_Clock | 4 اکتت | ساعت Piconet برای Connection_Handle مشخص شده. این مقدار باید همانند پاسخ کنترل کننده به دستور HCI_READ_CLOCK HCI با پارامتر "Who_Clock" 0x01 (ساعت پیکون) باشد. واحد: N * 0.3125 ms (ساعت 1 بلوتوث) |
Retransmission_Count | 4 اکتت | تعداد انتقال مجدد از آخرین رویداد. این تعداد پس از گزارش به میزبان مجدداً تنظیم می شود. |
No_RX_Count | 4 اکتت | از آخرین رویداد ، تعداد RX وجود ندارد. شمارش هنگامی افزایش می یابد که هیچ بسته ای در شکاف زمان برنامه ریزی شده دریافت نشود یا بسته دریافت شده خراب شود. این تعداد پس از گزارش به میزبان مجدداً تنظیم می شود. |
NAK_Count | 4 اکتت | NAK (تأیید منفی) از آخرین رویداد شمارش می شود. این تعداد پس از گزارش به میزبان مجدداً تنظیم می شود. |
Last_TX_ACK_Timestamp | 4 اکتت | Timestamp آخرین TX ACK. این مبتنی بر ساعت بلوتوث Piconet Central (CLK) است. واحد: N * 0.3125 ms (ساعت 1 بلوتوث) |
Flow_Off_Count | 4 اکتت | تعداد دفعاتی که کنترل کننده از آخرین رویداد جریان (توقف) دریافت می کند. این تعداد پس از گزارش به میزبان مجدداً تنظیم می شود. |
Last_Flow_On_Timestamp | 4 اکتت | Timestamp آخرین جریان (برو). این مبتنی بر ساعت بلوتوث Piconet Central (CLK) است. واحد: N * 0.3125 ms (ساعت 1 بلوتوث) |
Buffer_Overflow_Bytes | 4 اکتت | [در بایت] تعداد سرریز بافر از آخرین رویداد. |
Buffer_Underflow_Bytes | 4 اکتت | [در بایت] شمارش زیر جریان بافر از آخرین رویداد. |
bdaddr | 6 اکتبر | آدرس دستگاه از راه دور |
cal_failed_item_count | 1 اکتت | تعداد کالیبراسیون موارد شکست خورده |
TX_Total_Packets | 4 اکتت | تعداد بسته هایی که ارسال می شود. |
TX_UnAcked_Packets | 4 اکتت | تعداد بسته هایی که تأیید دریافت نمی کنند. این تعداد پس از گزارش به میزبان تنظیم مجدد می شود. |
TX_Flushed_Packets | 4 اکتت | تعداد بسته هایی که توسط نقطه گرگرفتگی آن ارسال نشده است. این تعداد پس از گزارش به میزبان تنظیم مجدد می شود. |
TX_Last_Subevent_Packets | 4 اکتت | تعداد بسته هایی که Link Layer را پیوند می دهند ، یک PDU داده CIS را در آخرین زیرزمین یک رویداد CIS منتقل می کند. این تعداد پس از گزارش به میزبان تنظیم مجدد می شود. اگر مقدار معتبری برای پیوند وجود نداشته باشد ، مقدار صفر است. |
CRC_Error_Packets | 4 اکتت | تعداد بسته های دریافت شده با خطای CRC از آخرین رویداد. این تعداد پس از گزارش به میزبان تنظیم مجدد می شود. |
RX_Duplicate_Packets | 4 اکتت | تعداد بسته های تکراری (انتقال مجدد) دریافت شده از آخرین رویداد. این تعداد پس از گزارش به میزبان تنظیم مجدد می شود. |
RX_Unreceived_Packets | 4 اکتت | تعداد بسته های غیررسمی همان پارامتر دستور کیفیت LE LER LINK LINK است (به مشخصات هسته بلوتوث نسخه 5.4 مراجعه کنید). جریانهای مرتبط CI و BIS هستند. با افزایش این مقدار ، لایه پیوند با استفاده از نقطه شستشوی آن (در CIS) یا در پایان رویداد که با آن همراه است ، بار خاصی دریافت نمی کند (در یک BIS ؛ به مشخصات اصلی بلوتوث نسخه 5.4 جلد 6 قسمت مراجعه کنید ب ، بخش 4.4.6.6). |
Coex_Info_Mask | 2 اکتت | بیت 0 - CoexinVolvement: تنظیم شده برای نشان دادن فعالیت های COEX مشکوک به هنگام تولید این گزارش است (به عنوان مثال ، محصولات A2DP و نزدیک شدن به LSTO). بیت 1 - WL 2G رادیو فعال: تنظیم شده برای نشان دادن رادیو WLAN 2G فعال است. بیت 2 - WL 2G متصل: تنظیم کنید تا رادیو WLAN 2G را نشان دهد فعال و متصل است. BIT 3 - WL 5G/6G Radio Active: تنظیم شده برای نشان دادن رادیو WLAN 5G/6G فعال است. بیت 4-15 - محفوظ است |
پارامتر خاص فروشنده | (طول کل پارامتر - TBD) * اکتت ها | برای فروشنده کنترل کننده برای به دست آوردن پارامترهای خاص فروشنده بیشتر. |
کد فرعی = 0x58 [کیفیت_ report_id = 0x05 ، رویداد التهاب ریشه]
این رویداد نشان می دهد که بلوتوث HAL یا کنترل کننده با یک خطای مهلک روبرو شده اند و برای ثبت این وضعیت و راه اندازی مجدد به پشته بلوتوث نیاز دارند. کنترل کننده باید قبل از ارسال اولین قطعه از رویدادهای اطلاعات اشکال زدایی در هر صورت ، یک root_inflammation_event را به پشته بلوتوث ارسال کند.
پارامتر error_code حاوی یک کد خطا است که از HAL/Controller گزارش شده است ، اگر یک خطای خاص فروشنده چیپست باشد. Vendor_Specific_error_code حاوی کد خطای خاص فروشنده چیپست از HAL/Controller است. اگر پارامتر error_code 0 نباشد ، باید به عنوان 0 تنظیم شود.
پارامتر فرعی | اندازه | هدف |
---|---|---|
Quality_Report_Id | 1 اکتت | 0x00 ~ 0x04: محفوظ است. 0x05: التهاب ریشه. 0x06 ~ 0xff: محفوظ است. |
Error_Code | 1 اکتت | 0x00: کد خطای خاص فروشنده چیپست گنجانده شده است. 0x01 ~ 0xff: خرابی کنترل کننده رخ داده است. به مشخصات بلوتوث [جلد 2] قسمت D ، کدهای خطا برای لیستی از کدهای خطا و توضیحات مراجعه کنید. |
Vendor_Specific_Error_Code | 1 اکتبر | 0x00: هیچ کد خطای خاص فروشنده چیپست درج شده است. 0x01 ~ 0xff: کد خطای خاص فروشنده چیپست. |
پارامتر خاص فروشنده | (طول کل پارامتر - 4) * اکتت ها | برای فروشنده کنترل کننده برای به دست آوردن پارامترهای خاص فروشنده بیشتر. |
کد فرعی = 0x58 [کیفیت_ report_id = 0x11 ~ 0x13 ، رویداد مربوط به زباله ورود به سیستم]
پارامتر فرعی | اندازه | هدف |
---|---|---|
Quality_Report_Id | 1 اکتت | 0x00 ~ 0x10: محفوظ است. 0x11: ردیابی پیام LMP/LL. 0x12: ردیابی برنامه ریزی چند لینک/بلوتوث. 0x13: کنترل کننده اطلاعات اشکال زدایی اطلاعات اشکال زدایی. 0x14 ~ 0xff: محفوظ است. |
Connection_Handle | 2 اکتت | دسته اتصال. |
پارامتر خاص فروشنده | (طول کل پارامتر - 4) * اکتت ها | فرمت خاص فروشنده ردیابی پیام LMP ، برنامه ریزی برنامه ریزی چند لینک/همبستگی بلوتوث و کنترل اطلاعات اشکال زدایی اطلاعات اشکال زدایی. |
پشتیبانی چند آداب و رسوم
اهداف پشتیبانی چند افزودنی موارد زیر است:
- امکان پشتیبانی از چندین تبلیغات (
max_advt_instances
) - قدرت های مختلف انتقال برای محدوده متفاوت
- محتوای مختلف تبلیغاتی
- یک پاسخ فردی برای هر تبلیغ کننده
- حریم خصوصی (غیر قابل ردیابی) برای هر تبلیغ کننده
- قابل اتصال
برای نگه داشتن این مشخصات به استانداردهای موجود ، دستورات خاص فروشنده زیر ارائه شده است. آنها از مشخصات بلوتوث هسته 4.1 مشتق شده اند.
le_multi_advt_command
OCF: 0x154
پارامتر فرمان | اندازه | هدف |
---|---|---|
Multi_advt_opcode | 1 اکتبر | 0x01 - Set_Advt_Param_Multi_Sub_Cmd 0x02 - Set_Advt_Data_Multi_Sub_Cmd 0x03 - Set_Scan_Resp_Data_Multi_Sub_Cmd 0x04 - Set_Random_Addr_Multi_Sub_Cmd 0x05 - Set_Advt_Enable_Multi_Sub_Cmd |
یک رویداد کامل فرمان برای این دستور ایجاد می شود.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتبر | وضعیت کامل فرمان |
Multi_advt_opcode | 1 اکتبر | 0x01 - Set_Advt_Param_Multi_Command 0x02 - Set_Advt_Data_Multi_Command 0x03 - Set_Scan_Resp_Data_Multi_Command 0x04 - Set_Random_Addr_Multi_Command 0x05 - Set_Advt_Enable_Multi_Command |
le_multi_advt_command: set_advt_param_multi_sub_cmd
مرجع پایه: بلوتوث هسته 4.1 مشخصات ، صفحه 964 (دستور پارامتر تبلیغات LE)
زیر OCF: 0x01
پارامتر فرعی | اندازه | هدف |
---|---|---|
Advertising_Interval_Min | در هر مشخصات | در هر مشخصات |
Advertising_Interval_Max | در هر مشخصات | در هر مشخصات |
Advertising_Type | در هر مشخصات | در هر مشخصات |
Own_Address_Type | در هر مشخصات | در هر مشخصات |
Own_Address | در هر مشخصات | در هر مشخصات |
Direct_Address_Type | در هر مشخصات | در هر مشخصات |
Direct_Address | در هر مشخصات | در هر مشخصات |
Advertising_Channel_Map | در هر مشخصات | در هر مشخصات |
Adverstising_Filter_Policy | در هر مشخصات | در هر مشخصات |
Advertising_Instance | 1 اکتبر | کاربرد پارامترهای فوق را به عنوان مثال مشخص می کند |
Tx_power | 1 اکتبر | انتقال_ قدرت واحد - در DBM (عدد صحیح امضا شده) دامنه (-70 تا +20) |
پارامتر Own_Address
می تواند یک آدرس میزبان تنظیم شده در زمان تنظیم این نمونه چند افزودنی باشد. این امکان داشتن یک آدرس خصوصی قابل حل در زمان انتقال چراغ اول را فراهم می کند. تبلیغات در یک نمونه صرف نظر از ارتباط ادامه خواهد یافت. میزبان BT Stack می تواند یک دستور برای شروع تبلیغات به عنوان مثال ، اتصال ارسال کند.
یک رویداد کامل دستور برای این دستور همانطور که در مشخصات بلوتوث هسته 4.1 مشخص شده است ، طبق دستور فوق ایجاد می شود. اگر نمونه تبلیغات یا پارامترهای Tx_Power
نامعتبر باشد ، کنترل کننده با یک کد غیر موفق (پارامتر نامعتبر) پاسخ می دهد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتبر | وضعیت کامل فرمان |
Multi_advt_opcode | 1 اکتبر | 0x01 [ Set_Advt_Param_Multi_Sub_Cmd] |
le_multi_advt_command: set_advt_data_multi_sub_cmd
مرجع پایه: Bluetooth Core 4.1 مشخصات ، صفحه 969 (LE Set Command Advertising Data Data)
زیر OCF: 0x02
پارامتر فرعی | اندازه | هدف |
---|---|---|
Advertising_Data_Length | در هر مشخصات | در هر مشخصات |
Advertising_Data | در هر مشخصات | در هر مشخصات |
Advertising_Instance | 1 اکتبر | کاربرد پارامترهای فوق را به عنوان مثال مشخص می کند |
یک رویداد کامل دستور برای این دستور همانطور که در مشخصات بلوتوث هسته 4.1 مشخص شده است ، طبق دستور فوق ایجاد می شود. اگر نمونه تبلیغاتی یا پارامترهای Tx_Power
نامعتبر باشد ، کنترل کننده با یک کد غیر موفق پاسخ می دهد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتبر | وضعیت کامل فرمان |
Multi_advt_opcode | 1 اکتبر | 0x02 [ Set_Advt_Data_Multi_Sub_Cmd] |
le_multi_advt_command: set_scan_resp_data_multi_sub_cmd
مرجع پایه: بلوتوث هسته 4.1 مشخصات ، صفحه 970 (دستور داده پاسخ پاسخ اسکن))
زیر OCF: 0x03
پارامتر فرعی | اندازه | هدف |
---|---|---|
Scan_Response_Data_Length | در هر مشخصات | در هر مشخصات |
Scan_Response_Data | در هر مشخصات | در هر مشخصات |
Advertising_Instance | 1 اکتبر | کاربرد پارامترهای فوق را به عنوان مثال مشخص می کند |
یک رویداد کامل دستور برای این دستور همانطور که در مشخصات بلوتوث هسته 4.1 مشخص شده است ، طبق دستور فوق ایجاد می شود. اگر نمونه تبلیغات یا پارامترهای Tx_Power
نامعتبر باشد ، کنترل کننده با یک کد غیر موفق (پارامتر نامعتبر) پاسخ می دهد.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | وضعیت کامل فرمان |
Multi_advt_opcode | 1 اکتبر | 0x03 [ Set_Scan_Resp_Data_Multi_Sub_Cmd] |
le_multi_advt_command: set_random_addr_multi_sub_cmd
مرجع پایه: Bluetooth Core 4.1 مشخصات ، صفحه 963 (LE SET COMMED ADDRESS RANDOON)
زیر OCF: 0x04
پارامتر فرعی | اندازه | هدف |
---|---|---|
آدرس تصادفی | در هر مشخصات | در هر مشخصات |
Advertising_Instance | 1 اکتبر | کاربرد پارامترهای فوق را به عنوان مثال مشخص می کند |
یک رویداد کامل فرمان برای این دستور ایجاد می شود.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتبر | وضعیت کامل فرمان |
Multi_advt_opcode | 1 اکتبر | 0x04 [ Set_Random_Addr_Multi_Sub_Cmd] |
le_multi_advt_command: set_advt_enable_multi_sub_cmd
مرجع پایه: Bluetooth Core 4.1 مشخصات ، صفحه 971 (LE Set Advertise Advertion را فعال کنید در آن مشخصات اصلی)
OCF: 0x05
پارامتر فرعی | اندازه | هدف |
---|---|---|
Advertising_Enable | 1 اکتبر | مقدار 1 به معنی فعال کردن است. هر مقدار دیگر به معنای غیرفعال کردن است. |
Advertising_Instance | 1 اکتبر | کاربرد پارامترهای فوق را به عنوان مثال مشخص می کند. نمونه 0 به معنای یک نمونه استاندارد HCI است. |
یک رویداد کامل فرمان برای این دستور ایجاد می شود.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتبر | وضعیت کامل فرمان |
Multi_advt_opcode | 1 اکتبر | 0x05 [ Set_Advt_Enable_Multi_Sub_Cmd] |
وضوح بارگیری شده از آدرس خصوصی
این ویژگی یک آدرس خصوصی را در سیستم عامل کنترل کننده یا سخت افزار کنترل می کند ، که مزایای زیر را ارائه می دهد:
- تأخیر درگیر با میزبان در حل و فصل آدرس خصوصی
- صرفه جویی در قدرت با خودداری از بیدار شدن میزبان
le_set_rpa_timeout
OCF: 0x15c
پارامتر فرمان | اندازه | هدف |
---|---|---|
LE_local_IRK | 16 اکتبر | دستگاه محلی IRK برای تولید آدرس قابل حل تصادفی (ES) استفاده می شود. |
tRPA_min | 2 اکتت | حداقل مدت زمان تولید در رأی در چند ثانیه. کنترل کننده باید برای هرگونه رویداد تبلیغاتی/اسکن/اتصال در یا بعد از این زمان ، آدرس های قابل حل جدید ایجاد کند. دامنه معتبر: 300-1800 |
tRPA_max | 2 اکتت | حداکثر زمان تولید حداکثر حداکثر در ثانیه. کنترل کننده باید برای هرگونه رویداد تبلیغاتی/اسکن/اتصال در یا قبل از این مدت زمان ، آدرس های قابل حل جدید ایجاد کند. دامنه معتبر: tRPA_min -1800 |
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتبر | وضعیت فرمان. مقادیر وضعیت HCI پیشنهادی: 0x00 موفقیت 0x01 فرمان ناشناخته (در صورت پشتیبانی) 0x12 پارامترهای فرمان نامعتبر (اگر پارامتری خارج از محدوده داده شده است) |
le_rpa_offload_command
OCF: 0x155
پارامتر فرمان | اندازه | هدف |
---|---|---|
RPA_offload_opcode | 1 اکتت | 0x1 - ویژگی خاص مشتری را فعال کنید 0x2 - IRK را به لیست اضافه کنید 0x3 - IRK را از لیست حذف کنید 0x4 - لیست IRK را پاک کنید 0x5 - ورود به لیست IRK را بخوانید |
یک رویداد کامل فرمان برای این دستور ایجاد می شود.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | وضعیت کامل فرمان |
Event_RPA_offload_opcode | 1 اکتبر | 0x1 - ویژگی خاص مشتری را فعال کنید 0x2 - IRK را به لیست اضافه کنید 0x3 - IRK را از لیست حذف کنید 0x4 - لیست IRK را پاک کنید 0x5 - ورود به لیست IRK را بخوانید |
LE_RPA_OFFLOAD: ENABLE_CUST_SPECIFIC_SUB_COMMAND
زیر OCF: 0x01
پارامتر فرعی | اندازه | هدف |
---|---|---|
enable_customer_specific_feature_set | 1 اکتبر | 0x01 - ویژگی intebled infled را فعال کنید 0x00 - ویژگی stroaded infled را غیرفعال کنید |
براساس قابلیت تراشه ، بارگیری در stermpa مورد نیاز است که توسط میزبان فعال شود. به LE_Get_Vendor_Capabilities_Command
مراجعه کنید. هر تراشه می تواند در سیستم عامل max_irk_list_sz
متفاوت باشد.
یک رویداد کامل فرمان برای این دستور ایجاد می شود.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتبر | وضعیت کامل فرمان |
Event_cust_specific_feature_opcode | 1 اکتبر | 0x01 [ویژگی خاص مشتری را فعال کنید] |
le_rpa_offload: add_irk_to_list_sub_command
زیر OCF: 0x02
پارامتر فرعی | اندازه | هدف |
---|---|---|
LE_IRK | 16 اکتبر | Le Irk (1 بایت LSB) |
Address_Type | 1 اکتبر | 0: آدرس عمومی 1: آدرس تصادفی |
LE_Device_Address | 6 اکتبر | آدرس عمومی یا تصادفی مرتبط با IRK (1 بایت LSB) |
یک رویداد کامل فرمان برای این دستور ایجاد می شود.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتبر | وضعیت کامل فرمان |
Event_cust_specific_feature_opcode | 1 اکتت | 0x02 [اضافه کردن IRK به لیست] |
LE_IrkList_AvailableSpaces | 1 اکتبر | نوشته های موجود در لیست IRL پس از عمل جاری |
le_rpa_offload: remove_irk_to_list_sub_command
زیر OCF: 0x03
پارامتر فرعی | اندازه | هدف |
---|---|---|
Address_Type | 1 اکتبر | 0: آدرس عمومی 1: آدرس تصادفی |
LE_Device_Address | 6 اکتبر | آدرس عمومی یا تصادفی که به IRK همبستگی دارد |
یک رویداد کامل فرمان برای این دستور ایجاد می شود.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتبر | وضعیت کامل فرمان |
Event_cust_specific_feature_opcode | 1 اکتبر | 0x03 [حذف IRK از لیست] |
LE_IrkList_AvailableSpaces | 1 اکتبر | نوشته های موجود در لیست IRL پس از عمل جاری |
le_rpa_offload: clear_irk_list_sub_command
زیر OCF: 0x04
پارامتر فرعی | اندازه | هدف |
---|---|---|
هیچ کدام |
یک رویداد کامل فرمان برای این دستور ایجاد می شود.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتبر | وضعیت کامل فرمان |
Event_cust_specific_feature_opcode | 1 اکتبر | 0x04 [لیست IRK پاک] |
LE_IrkList_AvailableSpaces | 1 اکتبر | ورودی های موجود در لیست IRL پس از عملیات فعلی [ max_irk_list_sz] |
le_rpa_offload: read_irk_list_sub_command
زیر OCF: 0x05
پارامتر فرعی | اندازه | هدف |
---|---|---|
LE_read_IRK_list_entry-index | 1 اکتبر | فهرست لیست IRK [0 ، max_irk_list_sz-1] |
یک رویداد کامل فرمان برای این دستور ایجاد می شود.
پارامتر بازگشت | اندازه | هدف |
---|---|---|
Status | 1 اکتت | وضعیت کامل فرمان |
Event_cust_specific_feature_opcode | 1 اکتبر | 0x05 [ورود به لیست IRK را بخوانید] |
LE_Read_IRK_List_entry | 1 اکتبر | شاخص IRK که میزبان می خواهد دوباره بخواند (حداکثر اندازه لیست IRK 32 است) |
LE_IRK | 16 اکتبر | ارزش IRK |
Address_Type | 1 اکتبر | 0: آدرس عمومی 1: آدرس تصادفی |
LE_Device_Address | 6 اکتبر | آدرس عمومی یا تصادفی مرتبط با IRK |
LE_Resolved_Private_Address | 6 اکتبر | آدرس خصوصی قابل حل و حل شده فعلی این IRK |