الزامات HCI

رابط کنترل کننده میزبان (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 اندازه متغیر یک رشته کاراکتر برای نام محلی.

یادداشت ها:
  • در حال حاضر حداکثر تعداد کاراکترها در یک رشته نام محلی 29 است
  • زمانی که عملکرد "پاک" است (0x2) قابل اجرا نیست

یک رویداد 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 اندازه متغیر یک رشته کاراکتر برای داده های سازنده.

یادداشت ها:
  • در حال حاضر حداکثر تعداد کاراکترها در یک رشته نام محلی 29 است
  • زمانی که عملکرد "پاک" است (0x2) قابل اجرا نیست
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 اندازه متغیر یک رشته کاراکتر برای داده های سرویس.

یادداشت ها:
  • در حال حاضر حداکثر تعداد کاراکترها در یک رشته نام محلی 29 است
  • زمانی که عملکرد "پاک" است (0x2) قابل اجرا نیست
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 اکتت

ماسک های بیت برای ویژگی های توسعه یافته پشتیبانی شده:

  • بیت 0: پشتیبانی از فیلتر خدمات کشف حمل و نقل
  • بیت 1: پشتیبانی از فیلتر نوع AD
  • بیت 2 ~ 15: برای استفاده در آینده رزرو شده است

ارزش بیت

  • 0 = پشتیبانی نمی شود
  • 1 = پشتیبانی می شود

فعالیت کنترلر و فرمان اطلاعات انرژی

هدف از این اطلاعات برای عملکردهای سیستم میزبان بالاتر برای تجزیه و تحلیل کل فعالیت‌های همه مؤلفه‌ها، از جمله کنترل‌کننده 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 را امکان پذیر می کند.
  • 0x00 - سربرگ SCMS-T گنجانده نشده است.
  • 0x01 - سربرگ 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 مراجعه کنید.
Octet 0: طول بلوک | زیر باندها | روش تخصیص
Octet 1: حداقل مقدار Bitpool
Octet 2: حداکثر مقدار Bitpool
Octet 3: Sampling Frequency | حالت کانال
Octet 4-31: رزرو شده است

کدک AAC:

به عناصر اطلاعاتی خاص کدک AAC در A2DP نسخه 1.3 مراجعه کنید
Octet 0: نوع شی
اکتت 1; b7: VBR
Octet 2-31: رزرو شده است

کدک LDAC:

Octet 0-3: شناسه فروشنده
0x0000012D

Octet 4-5: Codec ID
0x00AA - LDAC
تمام مقادیر دیگر محفوظ است

Octet 6: Index Bitrate:
0x00 - بالا
0x01 - وسط
0x02 - کم
0x03 - 0x7E - رزرو شده
0x7F - ABR (نرخ بیت تطبیقی)
0x80 - 0xFF - رزرو شده

Octet 7: حالت کانال LDAC
0x01 - استریو
0x02 - دوتایی
0x04 - مونو
بقیه محفوظ هستند

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 - اضافه کنید
0x01 - حذف
0x02 - پاک
0x03 - پرس و جو یک بار

حذف گزارش (های) با کیفیت خاص را پاک می کند.
CLEAR تمام گزارش های با کیفیت را پاک می کند (پارامتر BQR_QUATY_EVENT_MASK قابل نادیده گرفتن است).

BQR_Quality_Event_Mask 4 اکتت ماسک های بیت برای گزارش رویداد با کیفیت انتخاب شده.

بیت 0: برای فعال کردن حالت نظارت بر کیفیت تنظیم کنید.
بیت 1: تنظیم کنید تا به رویداد LSTO نزدیک شوید (برای ACL/(E) SCO/ISO).
بیت 2: تنظیم کنید تا رویداد صوتی A2DP را فعال کنید.
بیت 3: تنظیم کنید تا (E) رویداد Coppy Voice SCO را فعال کنید.
بیت 4: تنظیم کنید تا رویداد التهاب ریشه را فعال کنید.
بیت 5: برای فعال کردن حالت نظارت بر انرژی تنظیم کنید.
بیت 6: تنظیم کنید تا رویداد leudio choppy را فعال کنید.
بیت 7: برای فعال کردن رویداد Fail Connect تنظیم کنید.
بیت 8: تنظیم کنید تا بتواند ماشه Advance RF Stats Mode Event را فعال کند.
بیت 9: تنظیم کنید تا گزارش دوره ای Advance RF Stats را فعال کنید.
بیت 10 ~ 14: محفوظ است.
بیت 15: تنظیم کنید تا رویدادهای با کیفیت خاص فروشنده را فعال کنید.
بیت 16: تنظیم کنید تا ردیابی پیام LMP/LL را فعال کنید.
بیت 17: تنظیم کنید تا اثری از برنامه ریزی چند لینک/COEX بلوتوث را فعال کنید.
بیت 18: تنظیم کنید تا مکانیسم اطلاعات اشکال زدایی کنترلر را فعال کنید.
بیت 19 ~ 30: محفوظ است.
بیت 31: تنظیم کنید تا ردیابی خاص فروشنده را فعال کنید.

BQR_Minimum_Report_Interval 2 اکتت حداقل فاصله زمانی گزارش رویداد با کیفیت را برای رویداد (های) با کیفیت انتخاب شده تعریف کنید. سیستم عامل کنترل کننده نباید رویداد بعدی را در بازه زمانی مشخص گزارش کند. تنظیم فاصله باید برای رویداد (های) با کیفیت که در حال اضافه شدن هستند ، مناسب باشد.

واحد: MS
پیش فرض: 0 (هیچ محدودیتی برای فاصله زمانی وجود ندارد.)
دامنه: 0 ~ 65535 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
پیش فرض: 1
دامنه: 0 ~ 4294967295 (0: برابر با 1 است)

توجه: اگر تنظیم 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 و برنامه ریزی چند لینک/بلوتوث را بارگذاری کرده است ، یا کنترلر داده های اطلاعات اشکال زدایی را کنترل می کند.

پارامتر فرعی اندازه هدف
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) دریافت شده برای اتصال مشخص شده.
این مقدار باید یک مقدار قدرت سیگنال گیرنده مطلق باشد.
دامنه: -127 تا +20

SNR 1 اکتت [در DB]

مقدار نسبت سیگنال به نویز (SNR) برای Connection_Handle مشخص شده.
کنترل کننده باید میانگین SNR تمام کانال های مورد استفاده در لینک را فراهم کند.

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) * اکتت ها برای فروشنده کنترل کننده برای به دست آوردن پارامترهای خاص فروشنده بیشتر.
پارامتر فرعی اندازه هدف
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