از «میانای کنترلکننده میزبان» (HCI) برای تعامل با کنترلکننده بلوتوثی استفاده میشود.
این سند فهرستی از الزامات HCI بلوتوث (BT) و بلوتوث کممصرف (BLE) را ارائه میدهد. هدف این است که فروشندگان پشته BT میزبان و فروشندگان کنترلکننده BT با این الزامات پلاتفرم مطابقت داشته باشند تا بتوانند از مجموعه ویژگیهای توصیفشده در زیر استفاده کنند.
این سند به «مشخصات اصلی بلوتوث ۵.۲» بهعنوان «مشخصات» اشاره میکند. مشخصات Bluetooth Core 5.2 در وبسایت Bluetooth SIG بههمراه سایر اسناد پذیرفتهشده دردسترس است.
نمای کلی طراحی عمومی
قابلیتها و پیکربندی تراشه
Android بهعنوان یک پلاتفرم باز، ماتریسی از نسخههای پخش نرمافزار، سازندگان تجهیزات اصلی (OEM)، فروشندگان، و قابلیتهای پلاتفرم و تراشه دارد.
برای مدیریت چشماندازهای مختلف و مدیریت انتقالها، فلسفه طراحی اجازه دادن به کنترلکنندههای بلوتوث برای آشکار کردن قابلیتهایشان (فراتر از «مشخصات استاندارد بلوتوث هسته ۵.۲») در این سند شرح داده شده است. سپس پشته BT میزبان میتواند از این قابلیتها برای تعیین اینکه کدام ویژگیها فعال شوند استفاده کند.
پشتیبانی از استانداردهای باز
یکی از اهداف Android پشتیبانی از استانداردهای باز پساز تصویب در مشخصات بلوتوث است. اگر ویژگی شرحدادهشده در زیر در روشهای استاندارد HCI در مشخصات بلوتوث آینده دردسترس قرار گیرد، ما تمایل داریم آن رویکرد را بهعنوان پیشفرض قرار دهیم.
قابلیتهای مختص ارائهدهنده
فرمان مختص ارائهدهنده: LE_Get_Vendor_Capabilities_Command
فیلد فرمان OpCode (OCF): 0x153
| پارامتر فرمان | اندازه | هدف |
|---|---|---|
| NA | فهرست پارامتر فرمان خالی است |
رویداد «فرمان تکمیل شد» برای این فرمان ایجاد خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
max_advt_instances(منسوخشده) |
۱ هشتتایی |
تعداد نمونههای تبلیغات پشتیبانیشده. پساز نسخه ۰.۹۸ رزرو شد. این پارامتر در مشخصات ویژگی Google نسخه ۰.۹۸ و بالاتر منسوخ شده است و بهجای آن از LE Extended Advertising موجود در مشخصات BT نسخه ۵.۰ و بالاتر استفاده میشود. |
offloaded_resolution_of_private-address(منسوخشده) |
۱ هشتتایی |
قابلیت تراشه BT در RPA. اگر تراشه از آن پشتیبانی کند، میزبان باید آن را فعال کند. ۰ = ناتوان ۱ = توانمند پساز نسخه ۰.۹۸ رزرو شده است. این پارامتر در مشخصات ویژگی Google نسخه ۰.۹۸ و بالاتر منسوخ شده است و بهجای آن از ویژگی «حریم خصوصی» موجود در مشخصات نسخه ۴.۲ و بالاتر BT استفاده میشود. |
total_scan_results_storage |
۲ هشتتایی | فضای ذخیرهسازی برای نتایج اسکن به بایت |
max_irk_list_sz |
۱ هشتتایی | تعداد ورودیهای IRK پشتیبانیشده در میانافزار |
filtering_support |
۱ هشتتایی |
پشتیبانی از فیلتر کردن در کنترلکننده ۰ = پشتیبانی نمیشود ۱ = پشتیبانی میشود |
max_filter |
۱ هشتتایی | تعداد فیلترهای پشتیبانیشده |
activity_energy_info_support |
۱ هشتتایی |
از گزارش اطلاعات فعالیت و انرژی پشتیبانی میکند 0 = قادر نیست 1 = قادر است |
version_supported |
۲ هشتتایی |
نسخه مشخصات ویژگی Google پشتیبانیشده را مشخص میکند بایت[۰] = عدد اصلی بایت[۱] = عدد فرعی v1.06 بایت[۰] = ۰x۰۱ بایت[۱] = ۰x۰۶ ویژگیهای اضافه در نسخههای زیر: v1.06:
|
total_num_of_advt_tracked |
۲ هشتتایی |
تعداد کل تبلیغکنندگان ردیابیشده برای OnLost/OnFound
هدف
|
extended_scan_support |
۱ هشتتایی | از بازه و فاصله اسکن گسترده پشتیبانی میکند |
debug_logging_supported |
۱ هشتتایی | از ثبت اطلاعات اشکالزدایی باینری از کنترلکننده پشتیبانی میکند |
LE_address_generation_offloading_support(منسوخ) |
۱ هشتتایی |
۰ = پشتیبانی نمیشود ۱ = پشتیبانی میشود پساز نسخه ۰.۹۸ رزرو شده است. این پارامتر در مشخصات ویژگی Google نسخه ۰.۹۸ و بالاتر منسوخ شده است و بهجای آن از ویژگی «حریم خصوصی» موجود در مشخصات نسخه ۴.۲ و بالاتر BT استفاده میشود. |
A2DP_source_offload_capability_mask |
۴ هشتتایی |
ماسکهای بیت برای انواع کدک پشتیبانیشده بیت ۰ - SBC بیت ۱ - AAC بیت ۲ - APTX بیت ۳ - APTX HD بیت ۴ - LDAC بیت ۵ - Opus بیت ۶ تا ۳۱ رزرو شدهاند |
bluetooth_quality_report_support |
۱ هشتتایی |
از گزارش رویدادهای «کیفیت بلوتوث» پشتیبانی میکند ۰ = قابلیت ندارد ۱ = قابلیت دارد |
dynamic_audio_buffer_support |
۴ هشتتایی |
از میانگیری پویای صوتی در کنترلکننده بلوتوث پشتیبانی میکند ماسکهای بیت برای انواع کدک پشتیبانیشده بیت ۰ - SBC بیت ۱ - AAC بیت ۲ - APTX بیت ۳ - APTX HD بیت ۴ - LDAC بیت ۵ - Opus بیت ۶ تا ۳۱ رزرو شدهاند |
a2dp_offload_v2_support |
۱ هشتتایی |
از دستورات نسخه ۲ بارگیری A2DP در کنترلکننده بلوتوث پشتیبانی میکند (به
شروع بارگیری A2DP،
توقف بارگیری A2DP مراجعه کنید) ۰ = پشتیبانی نمیشود ۱ = پشتیبانی میشود |
iso_link_feedback_support |
۱ هشتتایی |
از رویداد ISO Link Feedback پشتیبانی میکند 0 = پشتیبانی نمیشود 1 = پشتیبانی میشود |
sniff_offload_support |
۱ هشتتایی |
از فرمانهای Sniff Offload در کنترلکننده بلوتوث پشتیبانی میکند 0 = پشتیبانی نمیشود 1 = پشتیبانی میشود |
big_set_channel_map_classification_support |
۲ هشتتایی |
از sub_opcode ویژگی «طبقهبندی نقشه کانال پخش LE» پشتیبانی میکند بیت ۰ - از sub_opcode 0x01 (تنظیم نقشه کانال BIG با «دستورات اتصال LE ACL») پشتیبانی میکند بیت ۱ تا ۱۵ - رزروشده مقدار بیت: ۰ ۰ = پشتیبانی نمیشود ۱ = پشتیبانی میشود |
vendor_connection_handle_min |
۲ هشتتایی | حداقل مقدار دستههای اتصال فروشنده را برای رویدادهای فروشنده HCI که ازطریق بستههای ACL دریافت شده است گزارش کنید. از دستگیره ۰ برای نشان دادن عدم پشتیبانی از گزارش رویداد فروشنده ازطریق بستههای داده ACL استفاده میشود. |
vendor_connection_handle_max |
۲ هشتتایی | گزارش حداکثر مقدار دستههای اتصال فروشنده برای رویدادهای فروشنده HCI که ازطریق بستههای ACL دریافت شده است. از دستگیره ۰ برای نشان دادن عدم پشتیبانی از گزارش رویداد فروشنده ازطریق بستههای داده ACL استفاده میشود. |
connection_proximity_threshold_support |
۱ هشتتایی |
آیا تراشه از آستانه مجاورت اتصال پشتیبانی میکند ۰ = پشتیبانی نمیشود ۱ = پشتیبانی میشود |
نتایج اسکن دستهای
هدف طراحی این است که نحوه ارائه اعلانهای رویداد «پاسخ اسکن Bluetooth LE» به میزبان بهبود یابد تا در میزبان صرفهجویی در مصرف انرژی شود.
با کاهش دفعاتی که کنترلکننده به پردازنده برنامه میزبان اطلاع میدهد تا نتایج را اسکن کند،
پردازنده برنامه میزبان میتواند مدت بیشتری در حالت
بیکار/خواب بماند. این کار مصرف برق را در میزبان کاهش میدهد. پارامتر برگشت
total_scan_results_storage از
LE_Get_Vendor_Capabilities_Command نشاندهنده قابلیت تراشه
برای ذخیره نتایج اسکن است.
این ویژگی بر مدیریت و پیکربندی تسهیلات ذخیرهسازی «نتایج اسکن کممصرف» در کنترلکننده بلوتوث تمرکز دارد. از فضای ذخیرهسازی برای دستهای کردن موقت دادههای تبلیغات و دادههای اسکن و فرادادههایی که کنترلکننده دریافت میکند استفاده میشود تا بعداً به میزبان تحویل داده شوند.
سفتافزار باید از دو نوع دستهبندی پشتیبانی کند که میتوانند بهطور همزمان فعال شوند:
- کوتاهشده. حاوی عناصر اطلاعاتی زیر است: {MAC, TX Power, RSSI, Timestamp}
- کامل. حاوی عناصر اطلاعاتی زیر است: {MAC، TX Power، RSSI، مُهر زمان، Adv Data، Scan Response}
LE_Batch_Scan_Command
OCF: 0x156
| پارامتر فرمان | اندازه | هدف |
|---|---|---|
Batch_Scan_opcode |
۱ هشتتایی |
0x1 - فعال کردن ویژگی مختص مشتری 0x2 - تنظیم پارامترهای «فضای ذخیرهسازی اسکن دستهای» 0x3 - تنظیم پارامترهای «اسکن دستهای» 0x4 - خواندن پارامترهای «نتیجه اسکن دستهای» |
رویداد «فرمان تکمیل شد» برای این فرمان ایجاد خواهد شد. فعال کردن ویژگی مشتریمحور باعث شروع اسکن نمیشود.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Batch_Scan_opcode |
۱ هشتتایی |
0x1 - فعال کردن ویژگی مختص مشتری 0x2 - تنظیم پارامترهای «فضای ذخیرهسازی اسکن دستهای» 0x3 - تنظیم پارامترهای «اسکن دستهای» 0x4 - خواندن پارامترهای «نتیجه اسکن دستهای» |
LE_Batch_Scan_Command: فعال کردن ویژگی مختص مشتری
Sub OCF: 0x01
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
enable_customer_specific_feature_set |
۱ هشتتایی |
0x01 - فعال کردن ویژگی «اسکن دستهای» 0x00 - غیرفعال کردن ویژگی «اسکن دستهای» |
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Batch_Scan_opcode |
۱ هشتتایی |
0x1 - فعال کردن ویژگی مختص مشتری 0x2 - تنظیم پارامترهای «ذخیرهسازی اسکن دستهای» 0x3 - تنظیم پارامترهای «اسکن دستهای» 0x4 - خواندن پارامترهای «نتیجه اسکن دستهای» |
LE_Batch_Scan_Command: زیرفرمان تنظیم پارامتر فضای ذخیرهسازی اسکن دستهای
Sub OCF: 0x02
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
Batch_Scan_Full_Max |
۱ هشتتایی |
حداکثر فضای ذخیرهسازی (به درصد) اختصاصدادهشده به سبک کامل [محدوده: ۰-۱۰۰] |
Batch_Scan_Truncated_Max |
۱ هشتتایی |
حداکثر فضای ذخیرهسازی (به درصد) اختصاصدادهشده به سبک کوتاه [محدوده: ۰-۱۰۰] |
Batch_Scan_Notify_Threshold |
۱ هشتتایی |
سطح اعلان را (بهصورت درصد) برای استخر ذخیرهسازی فردی راهاندازی کنید
[محدوده: ۰ تا ۱۰۰] اگر روی ۰ تنظیم کنید، اعلان غیرفعال میشود. رویداد HCI مختص فروشنده تولید میشود (رویداد فرعی نقض آستانه ذخیرهسازی) |
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Batch_scan_opcode |
۱ هشتتایی | 0x02 [Set Batch Scan parameters] |
LE_Batch_Scan_Command: تنظیم زیرفرمان پارامتر اسکن دستهای
Sub OCF: 0x03
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
Batch_Scan_Mode |
۱ هشتتایی |
0x00 – اسکن دستهای غیرفعال است 0x01 – حالت کوتاه فعال است 0x02 – حالت کامل فعال است 0x03 – حالت کوتاه و کامل فعال است |
Duty_cycle_scan_window |
۴ هشتتایی | زمان اسکن «اسکن دستهای» (# از جایگاه) |
Duty_cyle_scan_interval |
۴ هشتتایی | دوره فاصله زمانی «اسکن دستهای» (تعداد وقت آزاد) |
own_address_type |
۱ هشتتایی |
0x00 - نشانی عمومی دستگاه 0x01 - نشانی تصادفی دستگاه |
Batch_scan_Discard_Rule |
۱ هشتتایی |
۰ - صرفنظر کردن از قدیمیترین آگهی ۱ - صرفنظر کردن از آگهی با ضعیفترین RSSI |
این زیرفرمان اسکن دستهای را درصورت فعال بودن شروع میکند. در اسکن «کوتهشده»، نتایج بهصورت کوتهشده ذخیره میشوند که در آن کلید یکتای سبک «کوتهشده» = {BD_ADDR, scan_interval}. این یعنی فقط
یک BD_ADDR will برای هر فاصله اسکن ضبط میشود. ثبت
برای نگهداری در حالت «کوتهشده» بهصورت زیر است: {BD_ADDR،
توان انتقالی، قدرت سیگنال دریافتی، مُهر زمان}
وقتی «حالت کامل» فعال باشد، از اسکن فعال استفاده میشود و «پاسخهای اسکن»
ضبط خواهد شد. کلید یکتای «سبک کامل» = {MAC، بسته آگهی}،
بدون درنظر گرفتن فاصله اسکن. ثبت برای نگهداری در حالت «کامل» عبارت است از
{BD_ADDR، قدرت انتقال، شاخص قدرت سیگنال دریافتی، مُهر زمان، بسته آگهی،
پاسخ اسکن}. در سبک «کامل»، بسته AD یکسان، وقتی چندین بار در
فاصلههای زمانی اسکن مختلف دیده میشود، فقط یکبار ضبط میشود. بااینحال، در حالت
«کوتهشده»، رؤیتپذیری BA_ADDR در
فاصلههای اسکن مختلف موردتوجه است (یکبار در هر فاصله اسکن). RSSI مقدار میانگین همه موارد تکراری آگهی یکتا در فاصله اسکن است.
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Batch_scan_opcode |
۱ هشتتایی | 0x03 [تنظیم پارامترهای اسکن دستهای] |
LE_Batch_Scan_Command: Read batch scan results subcommand
کد عملیات فرعی: 0x04
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
Batch_Scan_Data_read |
۱ هشتتایی |
0x01 - دادههای حالت کوتاه 0x02 - دادههای حالت کامل |
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد. وقتی میزبان این فرمان را صادر میکند، ممکن است همه نتایج در کنترلکننده در یک رویداد «تکمیل فرمان» جا نشود. میزبان این فرمان را تکرار میکند تا زمانی که نتایج مربوطه در رویداد «تکمیل فرمان» عدد ۰ را در تعداد سوابق نشان دهد، که نشاندهنده این است که کنترلکننده سوابق بیشتری برای ارسال به میزبان ندارد. هر رویداد «فرمان تکمیل شد» میتواند شامل چندین سابقه از فقط یک نوع داده (کامل یا کوتاهشده) باشد.
مرجعهای زمانی کنترلکننده و میزبان همگامسازی نشدهاند. واحد مُهر زمان ۵۰ میلیثانیه است. مقدار مُهر زمان براساس زمانی است که
Read_Batch_Scan_Results_Sub_cmd
توسط میزبان داده میشود. اگر زمان رسیدن فرمان در سفتافزار T_c باشد، زمان واقعی که مُهر زمان در سفتافزار گرفته شده است T_fw است. زمان گزارشدهی این خواهد بود:
(T_c - T_fw). T_c و
T_fw در دامنه زمانی میانافزار هستند. این کار به میزبان امکان میدهد
محاسبه کند رویداد چه مدت پیش رخ داده است.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Batch_scan_opcode |
۱ هشتتایی | 0x03 [تنظیم پارامترهای اسکن دستهای] |
Batch_Scan_data_read |
۱ هشتتایی | قالب را مشخص میکند (کوتاهشده یا کامل) |
num_of_records |
۱ هشتتایی | تعداد سوابق Batch_Scan_data_read |
format_of_data |
متغیر |
Truncated Mode: Address[0]: 6 octets Address_Type[0]: 1 octet Tx_Pwr[0]: 1 octet RSSI[0] : 1 octet Timestamp[0]: 2 octets [multiple records ( num_of_records) with above format]Full Mode: Address[0]: 6 octets Address_Type[0]: 1 octet Tx_Pwr[0]: 1 octet RSSI[0]: 1 octet Timestamp[0]: 2 octets Adv packet_len[0]: 1 octet Adv_packet[0]: Adv_packet_len octets Scan_data_resp_len[0]: 1 octet Scan_data_resp[0]: Scan_data_resp octets[multiple records with above format ( num_of_records)]
|
فیلتر محتوای بسته تبلیغاتی
از این برای فعال/غیرفعال/راهاندازی «فیلتر محتوای بسته تبلیغاتی» (APCF) در کنترلکننده استفاده کنید. APCF گزارشهای تبلیغات را در کنترلکننده فیلتر میکند اما تبلیغات دورهای را فیلتر نمیکند.
LE_APCF_Command
OCF: 0x157
| پارامتر فرمان | اندازه | هدف |
|---|---|---|
APCF_opcode |
۱ هشتتایی |
0x00 - فعال کردن APCF 0x01 - تنظیم پارامترهای فیلتر APCF 0x02 - نشانی فرستنده APCF 0x03 - شناسه جهانی سرویس APCF 0x04 - شناسه جهانی درخواست سرویس APCF 0x05 - نام محلی APCF 0x06 - دادههای سازنده APCF 0x07 - دادههای سرویس APCF 0x08 - سرویس شناسایی انتقال APCF 0x09 - فیلتر نوع تبلیغات APCF 0x10 ~ 0xAF - برای استفاده در آینده رزرو شده است 0xB0 ~ 0xDF - برای فروشنده رزرو شده است 0xE0 ~ 0xFE - برای استفاده در آینده رزرو شده است 0xFF - خواندن ویژگیهای گسترده APCF |
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت برگرداندن |
APCF_opcode |
۱ هشتتایی |
0x00 - APCF Enable 0x01 - APCF Set Filtering parameters 0x02 - APCF Broadcaster Address 0x03 - APCF Service UUID 0x04 - APCF Service Solicitation UUID 0x05 - APCF Local Name 0x06 - APCF Manufacturer Data 0x07 - APCF Service Data 0x08 - APCF Transport Discovery Service 0x09 - APCF AD Type Filter 0x10 ~ 0xAF - Reserved for future use 0xB0 ~ 0xDF - Reserved for vendor 0xE0 ~ 0xFE - Reserved for future use 0xFF - APCF Read extended Features |
LE_APCF_Command: Enable_sub_cmd
Sub OCF: 0x00
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
APCF_enable |
۱ هشتتایی |
0x01 - فعال کردن ویژگی APCF 0x00 - غیرفعال کردن ویژگی APCF |
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
APCF_opcode |
۱ هشتتایی | 0x0 - APCF Enable (فعال کردن APCF) |
APCF_Enable |
۱ هشتتایی | فعال/غیرفعال کردن ازطریق APCF_enable تنظیم میشود |
LE_APCF_Command: set_filtering_parameters_sub_cmd
این زیرفرمان برای افزودن یا حذف مشخصات فیلتر یا پاک کردن فهرست فیلتر برای فیلتر کردن روی تراشه استفاده میشود.
Sub OCF: 0x01
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
APCF_Action |
۱ هشتتایی |
0x00 - افزودن 0x01 - حذف 0x02 - پاک کردن حذف کردن فیلتر خاص را بههمراه ورودیهای ویژگی مرتبط در جدولهای دیگر پاک میکند. «پاک کردن» همه فیلترها و ورودیهای مرتبط در جدولهای دیگر را پاک میکند. |
APCF_Filter_Index |
۱ هشتتایی | شاخص فیلتر (۰، max_filter-1) |
APCF_Feature_Selection |
۲ هشتتایی |
ماسکهای بیت برای ویژگیهای انتخابشده: بیت ۰: برای فعال کردن فیلتر «نشانی همهفرستی» تنظیم شده است بیت ۱: برای فعال کردن فیلتر «تغییر داده خدمات» تنظیم شده است بیت ۲: برای فعال کردن بررسی «شناسه جهانی خدمات» تنظیم شده است بیت ۳: برای فعال کردن بررسی «شناسه جهانی درخواست خدمات» تنظیم شده است بیت ۴: برای فعال کردن بررسی «نام محلی» تنظیم شده است بیت ۵: برای فعال کردن بررسی «دادههای سازنده» تنظیم شده است بیت ۶: برای فعال کردن بررسی «دادههای خدمات» تنظیم شده است بیت ۷: برای فعال کردن بررسی «خدمات شناسایی انتقال» تنظیم شده است بیت ۸: برای فعال کردن بررسی «نوع تبلیغات» تنظیم شده است |
APCF_List_Logic_Type |
۲ هشتتایی |
عملگر منطقی برای هر انتخاب ویژگی (موقعیت هر بیت)
در APCF_Feature_Selection مشخص شده است.
فقط وقتی ویژگیای فعال باشد معتبر است. مقدار موقعیت بیت: ۰: یا ۱: و اگر منطق «و» انتخاب شده باشد، بسته ADV فقط درصورتی از فیلتر عبور میکند که همه ورودیهای فهرست را داشته باشد. اگر منطق «یا» انتخاب شده باشد، بسته ADV درصورتی از فیلتر عبور میکند که حاوی هریک از ورودیهای فهرست باشد. |
APCF_Filter_Logic_Type |
۱ هشتتایی |
0x00: OR 0x01: AND توجه: نوع منطق برای سه فیلد اول APCF_Feature_Selection «N/A» (نامربوط) است که همیشه منطق «AND» است. این
فقط برای چهار فیلد (بیت ۳ تا بیت ۶) از
APCF_Feature_Selection قابلاعمال است.
|
rssi_high_thresh |
۱ هشتتایی |
[به دسیبل میلیوات] تبلیغکننده فقط درصورتی دیده میشود که سیگنال بالاتر از آستانه بالای RSSI باشد. درغیراینصورت، سفتافزار باید طوری رفتار کند که انگار هرگز آن را ندیده است. |
delivery_mode |
۱ هشتتایی |
0x00 - immediate0x01 - on_found0x02 - batched
|
onfound_timeout |
۲ هشتتایی |
فقط درصورتی معتبر است که delivery_mode
on_found باشد.[به میلیثانیه] زمان ماندگاری میانافزار و جمعآوری تبلیغات اضافی قبلاز گزارش کردن. |
onfound_timeout_cnt |
۱ هشتتایی |
فقط درصورتی معتبر است که delivery_mode
on_found باشد.[count] اگر آگهیای در onFound برای مدت onfound_timeout در سفتافزار باقی بماند، چند آگهی جمعآوری میکند و تعداد بررسی میشود. اگر تعداد از
onfound_timeout_cnt بیشتر شود،
OnFound بلافاصله پساز آن گزارش میشود.
|
rssi_low_thresh |
۱ هشتتایی |
فقط درصورتی معتبر است که delivery_mode
on_found باشد.[در dBm] اگر «شاخص قدرت سیگنال دریافتی» بسته دریافتی بالاتر از آستانه پایین «شاخص قدرت سیگنال دریافتی» نباشد، بسته آگهیدهنده بهعنوان دیده نشده درنظر گرفته میشود. |
onlost_timeout |
۲ هشتتایی |
فقط درصورتی معتبر است که delivery_mode
on_found باشد.[به میلیثانیه] اگر تبلیغی پساز پیدا شدن بهصورت پیوسته برای دوره lost_timeout دیده نشود، بلافاصله بهعنوان
ازدسترفته گزارش خواهد شد.
|
num_of_tracking_entries |
۲ هشتتایی |
فقط درصورتی معتبر است که delivery_mode
on_found باشد.[count] تعداد کل تبلیغکنندگان برای پیگیری براساس فیلتر. |
مقادیر RSSI باید از مکمل ۲ برای نشان دادن مقادیر منفی استفاده کنند.
میزبان باید بتواند چندین فیلتر را با
APCF_Application_Address_type تنظیمشده روی 0x02 (برای همه
نشانیهای همهفرست) پیکربندی کند تا بتواند ترکیبهای مختلف فیلتر را مدیریت کند.
فیلتر کردن، دستهبندی کردن، و گزارش دادن مفاهیم مرتبط با یکدیگر هستند. هر
آگهی و پاسخ اسکن مربوطه باید از همه
فیلترها، یکی پساز دیگری، عبور کند. بنابراین، کنشهای حاصل
(delivery_mode) ارتباط نزدیکی با فیلتر کردن دارند. حالتهای
ارسال عبارتاند از: report_immediately،
batch، و onFound. مقدار
OnLost به OnFound مرتبط است، به این معنا که
درصورت گم شدن، بعداز OnFound خواهد آمد.
این جریان پردازش مدل مفهومی را نشان میدهد:
وقتی قاب آگهی (یا پاسخ اسکن) دریافت میشود، به همه فیلترها بهترتیب اعمال میشود. ممکن است تبلیغی براساس یک فیلتر باعث گزارشدهی فوری شود و همان تبلیغ براساس کنش فیلتر دیگری دستهبندی شود.
آستانههای سطح RSSI (بالا و پایین) این امکان را فراهم میکند که کنترل کنید قاب چه زمانی برای پردازش فیلتر قابلمشاهده باشد، حتی زمانی که کنترلکننده بسته معتبری دریافت میکند. درصورتیکه حالت تحویل روی فوری یا دستهای تنظیم شده باشد، RSSI قاب برای پردازش بیشتر کنترلکننده درنظر گرفته میشود. برنامههای مختلف به گزارشدهی و رفتار دستهای متفاوت نیاز دارند. این کار به چندین برنامه اجازه میدهد گزارشدهی مستقیم و/یا دستهبندی نتایج را بهطور همزمان در میانافزار داشته باشند. مثال: وقتی اسکن دستهای از یک برنامه فعال است و بعداً اسکن LE معمولی از برنامه دیگری صادر میشود. قبلاز اینکه اسکن دستهای صادر شود، چارچوب/برنامه فیلترهای مناسب را تنظیم میکند. بعداً، وقتی برنامه دوم اسکن معمولی انجام میدهد، دستهبندی قبلی ادامه مییابد. بااینحال، بهدلیل اسکن منظم، این کار شبیه به افزودن مفهومی فیلتر تهی (همراه با همه فیلترهای موجود) بههمراه فرمان اسکن LE است. پارامترهای فرمان اسکن LE درصورت فعال بودن اولویت دارند. وقتی اسکن LE معمولی غیرفعال باشد، کنترلکننده به اسکن دستهای قبلی (درصورت وجود) برمیگردد.
حالت تحویل OnFound براساس فیلترهای پیکربندیشده است. ترکیبی که باعث شود کنش فیلتر موفق شود بهعنوان نهاد
موردنظر برای ردیابی onLost درنظر گرفته میشود. رویداد مربوطه زیررویداد
ردیابی تبلیغات LE است.
گذار OnFound/OnLost برای فیلتر (درصورت فعال بودن) به این شکل خواهد بود:
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
APCF_opcode |
۱ هشتتایی | 0x01 - APCF Set Filtering Parameters |
APCF_Action |
۱ هشتتایی | پژواک فرمان APCF_Action |
APCF_AvailableSpaces |
۱ هشتتایی | تعداد ورودیهای دردسترس در جدول فیلترها |
LE_APCF_Command: broadcast_address_sub_cmd
از این فرمان فرعی برای افزودن یا حذف نشانی تبلیغکننده یا پاک کردن فهرست نشانی تبلیغکننده برای فیلتر کردن درونتراشهای استفاده میشود.
Sub OCF: 0x02
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
APCF_Action |
۱ هشتتایی |
0x00 - افزودن 0x01 - حذف 0x02 - پاک کردن «حذف» نشانی همهفرست مشخصشده را در فیلتر مشخصشده حذف میکند. «پاک کردن» همه نشانیهای همهفرست را در فیلتر مشخصشده پاک میکند. |
APCF_Filter_Index |
۱ هشتتایی | نمایه فیلتر (۰، max_filter-1) |
APCF_Broadcaster_Address |
۶ هشتتایی | نشانی دستگاه ۶ بایتی برای افزودن به فهرست نشانی همهفرست یا حذف از آن |
APCF_Application_Address_type |
۱ هشتتایی |
0x00: عمومی 0x01: تصادفی 0x02: ناموجود (نوع نشانی نادیده گرفته میشود) برای فیلتر کردن گزارشهای تبلیغات با انواع نشانی هویت (0x02، 0x03). برای دریافت گزارشهای تبلیغاتی با انواع نشانی 0x02 و 0x03، این فیلد را روی 0x02: NA (نوع نشانی را نادیده بگیرید) تنظیم کنید. |
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
APCF_opcode |
۱ هشتتایی | 0x02 - APCF Broadcaster Address |
APCF_Action |
۱ هشتتایی | پژواک فرمان APCF_Action |
APCF_AvailableSpaces |
۱ هشتتایی | تعداد ورودیهای رایگان که هنوز در جدول «نشانی همهفرستی» دردسترس است |
LE_APCF_Command: service_uuid_sub_cmd
از این زیرفرمان برای افزودن یا حذف کردن «شناسه جهانی سرویس» یا پاک کردن فهرست «شناسه جهانی سرویس» برای فیلتر کردن روی تراشه استفاده میشود.
Sub OCF: 0x03
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
APCF_Action |
۱ هشتتایی |
0x00 - افزودن 0x01 - حذف 0x02 - پاک کردن «حذف» نشانی UUID سرویس مشخصشده را در فیلتر مشخصشده حذف میکند. Clear (پاک کردن) همه UUIDهای سرویس را در فیلتر مشخصشده پاک میکند. |
APCF_Filter_Index |
۱ هشتتایی | شاخص فیلتر (۰، max_filter-۱) |
APCF_UUID |
۲، ۴، ۱۶ هشتتایی | شناسه UUID سرویس (۱۶ بیتی، ۳۲ بیتی، یا ۱۲۸ بیتی) برای افزودن به فهرست یا حذف از آن. |
APCF_UUID_MASK |
۲، ۴، ۱۶ هشتتایی |
«پوشش شناسه جهانی سرویس» (۱۶ بیتی، ۳۲ بیتی، یا ۱۲۸ بیتی) برای افزودن به فهرست.
باید طول آن با APCF_UUID. یکسان باشد
|
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
APCF_opcode |
۱ هشتتایی | 0x03 - شناسه منحصربهفرد جهانی سرویس APCF |
APCF_Action |
۱ هشتتایی | پژواک فرمان APCF_Action |
APCF_AvailableSpaces |
۱ هشتتایی | تعداد ورودیهای رایگان که هنوز در جدول «شناسه جهانی سرویس» دردسترس است |
LE_APCF_Command: solicitation_uuid_sub_cmd
از این فرمان فرعی برای افزودن یا حذف کردن «شناسه منحصربهفرد جهانی» درخواست یا پاک کردن فهرست «شناسه منحصربهفرد جهانی» درخواست برای فیلتر کردن درونتراشهای استفاده میشود.
Sub OCF: 0x04
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
APCF_Action |
۱ هشتتایی |
0x00 - افزودن 0x01 - حذف 0x02 - پاک کردن حذف کردن نشانی UUID درخواست را در فیلتر مشخصشده حذف میکند. «پاک کردن» همه شناسههای UUID درخواست را در فیلتر مشخصشده پاک میکند. |
APCF_Filter_Index |
۱ هشتتایی | شاخص فیلتر (۰، max_filter-۱) |
APCF_UUID |
۲، ۴، ۱۶ هشتتایی | «شناسه جهانی یکتای» درخواست (۱۶ بیتی، ۳۲ بیتی، یا ۱۲۸ بیتی) برای افزودن به فهرست یا حذف از آن. |
APCF_UUID_MASK |
هشتتایی ۲، ۴، ۱۶ |
«پوشش شناسه جهانی درخواست» (۱۶ بیتی، ۳۲ بیتی، یا ۱۲۸ بیتی) برای افزودن به
فهرست. طول آن باید با APCF_UUID یکسان باشد.
|
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
APCF_opcode |
۱ هشتتایی | 0x04 - شناسه منحصربهفرد جهانی درخواست APCF |
APCF_Action |
۱ هشتتایی | پژواک فرمان APCF_Action |
APCF_AvailableSpaces |
۱ هشتتایی | تعداد ورودیهای رایگان که هنوز در جدول «شناسه جهانی یکتای درخواست» دردسترس است |
LE_APCF_Command: local_name_sub_cmd
این زیرفرمان برای افزودن یا حذف رشته نام محلی یا پاک کردن فهرست رشته نام محلی برای فیلتر کردن روی تراشه استفاده میشود.
Sub OCF: 0x05
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
APCF_Action |
۱ هشتتایی |
0x00 - افزودن 0x01 - حذف 0x02 - پاک کردن حذف کردن رشته نام محلی مشخصشده را در فیلتر مشخصشده حذف میکند. «پاک کردن» همه رشتههای نام محلی را در فیلتر مشخصشده پاک میکند. |
APCF_Filter_Index |
۱ هشتتایی | شاخص فیلتر (۰، max_filter-۱) |
APCF_LocName_Mandata_or_SerData |
اندازه متغیر |
رشته نویسهای برای نام محلی. نکتهها:
|
رویداد «فرمان تکمیل شد» برای این فرمان ایجاد خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
APCF_opcode |
۱ هشتتایی | 0x05 - نام محلی APCF |
APCF_Action |
۱ هشتتایی | پژواک فرمان APCF_Action |
APCF_AvailableSpaces |
۱ هشتتایی | تعداد ورودیهای رایگان که هنوز در جدول «نام محلی» دردسترس است |
LE_APCF_Command: manf_data_sub_cmd
این زیرفرمان برای افزودن یا حذف رشته داده سازنده یا برای پاک کردن فهرست رشته داده سازنده برای فیلتر کردن روی تراشه استفاده میشود.
Sub OCF: 0x06
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
APCF_Action |
۱ هشتتایی |
0x00 - افزودن 0x01 - حذف 0x02 - پاک کردن «حذف» رشته دادههای سازنده مشخصشده را در فیلتر مشخصشده حذف میکند. با «پاک کردن»، همه رشتههای داده سازنده در فیلتر مشخصشده پاک خواهد شد. |
APCF_Filter_Index |
۱ هشتتایی | فیلتر کردن شاخص (۰، max_filter-۱) |
APCF_LocName_Mandata_or_SerData |
اندازه متغیر |
رشته نویسهای برای دادههای سازنده. نکتهها:
|
APCF_ManData_Mask |
اندازه متغیر |
ماسک دادههای تولید برای افزودن به فهرست. باید همان
طول APCF_LocName_or_ManData_or_SerData را داشته باشد.
|
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
APCF_opcode |
۱ هشتتایی | 0x06 - APCF Manufacturer Data |
APCF_Action |
۱ هشتتایی | پژواک فرمان APCF_Action |
APCF_AvailableSpaces |
۱ هشتتایی | تعداد ورودیهای رایگان که هنوز در جدول «دادههای سازنده» دردسترس است |
LE_APCF_Command: service_data_sub_cmd
این زیرفرمان برای افزودن یا حذف رشته داده سرویس یا پاک کردن فهرست رشته داده سرویس برای فیلتر کردن روی تراشه استفاده میشود.
کد فرعی OCF: 0x07
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
APCF_Action |
۱ هشتتایی |
0x00 - افزودن 0x01 - حذف 0x02 - پاک کردن حذف رشته داده سرویس مشخصشده را در فیلتر مشخصشده حذف میکند. «پاک کردن» همه رشتههای داده سرویس را در فیلتر مشخصشده پاک میکند. |
APCF_Filter_Index |
۱ هشتتایی | فیلتر کردن شاخص (۰، max_filter-۱) |
APCF_LocName_Mandata_or_SerData |
اندازه متغیر |
رشته نویسهای برای دادههای سرویس. نکتهها:
|
APCF_LocName_Mandata_or_SerData_Mask |
اندازه متغیر |
پوشش دادههای سرویس برای افزودن به فهرست. باید طول آن با APCF_LocName_or_ManData_or_SerData. یکسان باشد
|
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
APCF_opcode |
۱ هشتتایی | 0x07 - دادههای سرویس APCF |
APCF_Action |
۱ هشتتایی | پژواک فرمان APCF_Action |
APCF_AvailableSpaces |
۱ هشتتایی | تعداد ورودیهای رایگان که هنوز برای جدول «دادههای سرویس» دردسترس است |
LE_APCF_Command: transport_discovery_service_sub_cmd
از این فرمان فرعی برای افزودن یا حذف فیلتر «سرویس شناسایی حملونقل» (TDS) یا پاک کردن فهرست فیلتر TDS برای فیلتر کردن روی تراشه استفاده میشود. از read_extended_features_sub_cmd برای بررسی اینکه
این فرمان پشتیبانی میشود یا نه استفاده کنید.
کد فرمان فرعی OCF: 0x08
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
APCF_Action |
۱ هشتتایی |
0x00 - افزودن 0x01 - حذف 0x02 - پاک کردن حذف فیلتر TDS مشخصشده را در فیلتر مشخصشده حذف میکند. «پاک کردن» همه فیلترهای TDS را در فیلتر مشخصشده پاک میکند. |
APCF_Filter_Index |
۱ هشتتایی | فیلتر کردن شاخص (۰، max_filter-۱) |
Org_ID |
۱ هشتتایی | شناسه سازمان که توسط Bluetooth SIG تعریف شده است. وقتی APCF_Action روی 0x02 (پاک) تنظیم شده است، نادیده گرفته میشود. |
TDS_Flags |
۱ هشتتایی | پرچمهای TDS برای مطابقت. وقتی APCF_Action روی 0x02 (پاک) تنظیم شده است، نادیده گرفته میشود. |
TDS_Flags_Mask |
۱ هشتتایی | پوشش برای پرچمهای TDS. وقتی APCF_Action برابر با 0x02 (پاک) است، نادیده گرفته شود. |
Transport_Data_Length |
۱ هشتتایی | طول Transport_Data. وقتی APCF_Action برابر با 0x02 (پاک) است، نادیده گرفته شود. |
Transport_Data |
اندازه متغیر | اندازه متغیر، براساس Transport_Data_Length. دادههای بلوک انتقال برای مطابقت. وقتی APCF_Action روی 0x02 (پاک) تنظیم شده است، نادیده گرفته میشود. |
Transport_Data_Mask_Length |
۱ هشتتایی | طول Transport_Data_Mask. این مقدار باید برابر با Transport_Data_Length باشد. وقتی APCF_Action روی 0x02 (پاک) تنظیم شده است، نادیده گرفته میشود. |
Transport_Data_Mask |
اندازه متغیر | اندازه متغیر، براساس Transport_Data_Mask_Length. پوشش برای دادههای بلوک «حملونقل». باید طول آن با Transport_Data یکسان باشد. وقتی APCF_Action برابر با 0x02 (پاک) است، نادیده گرفته شود. |
Meta_Data_Type |
۱ هشتتایی |
0x00 - نامعتبر 0x01 - درهمسازی Wi-Fi NAN وقتی APCF_Action برابر با 0x02 (پاک) است، نادیده گرفته میشود.
|
Meta_Data_Length |
۱ هشتتایی | طول Meta_Data. وقتی APCF_Action روی 0x02 (پاک) تنظیم شده است، نادیده گرفته میشود. |
Meta_Data |
اندازه متغیر | اندازه متغیر، براساس Meta_Data_Length. فراداده برای مطابقت. وقتی APCF_Action برابر با 0x02 (پاک) است، نادیده گرفته شود. |
رویداد «فرمان تکمیل شد» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
APCF_opcode |
۱ هشتتایی | 0x08 - APCF Transport Discovery Service |
APCF_Action |
۱ هشتتایی | پژواک فرمان APCF_Action |
APCF_AvailableSpaces |
۱ هشتتایی | تعداد ورودیهای رایگان که هنوز در جدول فیلتر TDS دردسترس است |
LE_APCF_Command: ad_type_sub_cmd
این فرمان فرعی برای افزودن یا حذف نوع AD یا پاک کردن فهرست نوع AD برای فیلتر کردن روی تراشه استفاده میشود. از
read_extended_features_sub_cmd استفاده کنید تا بررسی کنید این فرمان پشتیبانی میشود یا نه.
وقتی APCF_AD_DATA_Length برابر با ۰ است، APCF_AD_TYPE را بدون
مقایسه «دادههای AD» و «ماسک دادههای AD» فیلتر کنید.
اگر طول داده بسته ADV دریافتی از AD_DATA_LENGTH بیشتر باشد، فقط
AD_DATA_LENGTH بایت اول داده AD را مقایسه کنید و بقیه دادهها را نادیده بگیرید.
Sub OCF: 0x09
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
APCF_Action |
۱ هشتتایی |
0x00 - افزودن 0x01 - حذف 0x02 - پاک کردن حذف نوع AD مشخصشده را در فیلتر مشخصشده حذف میکند. پاک کردن همه انواع «آگهی» را در فیلتر مشخصشده پاک میکند. |
APCF_Filter_Index |
۱ هشتتایی | فیلتر کردن شاخص (۰، max_filter-۱) |
APCF_AD_TYPE |
۱ هشتتایی | نوع آگهی برای افزودن به فهرست یا حذف از آن. نادیده گرفتن وقتی APCF_Action برابر با 0x02 (پاک کردن) است |
APCF_AD_DATA_Length |
۱ هشتتایی |
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 یکسان باشد.
|
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
APCF_opcode |
۱ هشتتایی | 0x09 - نوع آگهی APCF |
APCF_Action |
۱ هشتتایی | پژواک فرمان APCF_Action |
APCF_AvailableSpaces |
۱ هشتتایی | تعداد ورودیهای رایگان که هنوز در جدول «نوع آگهی» دردسترس است |
LE_APCF_Command: read_extended_features_sub_cmd
از این فرمان فرعی برای خواندن ویژگیهای گسترده APCF استفاده میشود.
Sub OCF: 0xFF
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
| نامربوط | پارامتر فرمان خالی است. |
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
APCF_opcode |
۱ هشتتایی | 0xFF - APCF_Read_Extended_Features |
APCF_extended_features |
۲ هشتتایی |
ماسکهای بیت برای ویژگیهای گسترده پشتیبانیشده:
مقدار بیت
|
فرمان اطلاعات انرژی و فعالیت کنترلکننده
هدف از این اطلاعات این است که عملکردهای سیستم میزبان بالاتر بتوانند فعالیتهای کلی همه عناصر، ازجمله کنترلکننده BT و وضعیت کلان آن را، همراه با آنچه در برنامهها و چارچوب اتفاق میافتد تجزیهوتحلیل کنند. برای انجام این کار، اطلاعات زیر از پشته BT و کنترلکننده لازم است:
- پشته بلوتوث: وضعیت کلانعملیاتی فعلی کنترلکننده را گزارش میکند
- سفتافزار: گزارش اطلاعات تجمیعی فعالیت و انرژی
وضعیتهای کلان پشته میزبان بلوتوث، همانگونه که در سطح کاربر تعیین شده است:
- درحالت آماده بهکار: [اسکن صفحه، تبلیغات LE، اسکن پرسش، اسکن LE]
- اسکن: [صفحهبندی/پرسوجو/تلاش برای اتصال]
- فعال: [پیوند ACL روشن، پیوند SCO درحال انجام، حالت استراق سمع]
فعالیتهایی که کنترلکننده در طول عمر خود پیگیری میکند عبارتاند از زمان انتقال، زمان دریافت، زمان بیکاری، و کل انرژی مصرفشده. وقتی از میزبان خوانده میشوند، پاک میشوند.
LE_Get_Controller_Activity_Energy_Info
این فرمان مختص ارائهدهنده است.
OCF: 0x159
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
| NA | پارامترهای فرمان خالی است |
رویداد «فرمان تکمیل شد» برای این فرمان ایجاد خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت تکمیل فرمان |
total_tx_time_ms |
۴ هشتتایی | کل زمان انجام Tx |
total_rx_time_ms |
۴ هشتتایی | کل زمان اجرای Rx |
total_idle_time_ms |
۴ هشتتایی | کل زمان در حالت بیکار (حالتهای کممصرف غیرخواب) |
total_energy_used |
۴ هشتتایی | کل انرژی مصرفشده [حاصلضرب جریان (میلیآمپر)، ولتاژ (ولت)، و زمان (میلیثانیه)] |
فرمان پارامترهای اسکن مجموعه گسترده LE
از این فرمان میتوان برای فعال کردن پنجره و فاصله اسکن بزرگتر در کنترلکننده استفاده کرد. طبق «مشخصات اصلی بلوتوث ۵.۲»، پنجره اسکن و فاصله دارای حد بالایی ۱۰٫۲۴ ثانیه است که فواصل اسکن فراتر از ۱۰٫۲۴ ثانیه را برای برنامهها مختل میکند.
مرجع پایه: مشخصات BT Core 5.2، صفحه ۲۴۹۳ (فرمان پارامترهای LE Set Scan )
OCF: 0x15A
| پارامتر فرمان | اندازه | هدف |
|---|---|---|
LE_Ex_Scan_Type |
۱ هشتتایی |
0x00 - اسکن منفعل. هیچ بسته SCAN_REQ نباید
ارسال شود (پیشفرض).0x01 - اسکن فعال. ممکن است SCAN_REQ بسته ارسال شود.
|
LE_Ex_Scan_Interval |
۴ هشتتایی |
بهعنوان فاصله زمانی از وقتی که «کنترلکننده» آخرین اسکن LE خود را شروع کرد تا وقتی که اسکن LE بعدی را آغاز کرد تعریف میشود. محدوده: 0x0004 تا 0x00FFFFFF پیشفرض: 0x0010 (۱۰ میلیثانیه) زمان = N * ۰٫۶۲۵ میلیثانیه محدوده زمانی: ۲٫۵ میلیثانیه تا ۱۰۴۴۲٫۲۵ ثانیه |
LE_Ex_Scan_Window |
۴ هشتتایی |
مدت اسکن LE. LE_Scan_Window باید کمتر
از LE_Scan_Interval یا مساوی با آن باشد.
محدوده: 0x0004 تا 0xFFFF پیشفرض: 0x0010 (10 میلیثانیه) زمان = N * 0.625 میلیثانیه محدوده زمان: ۲٫۵ میلیثانیه تا ۴۰٫۹۵ ثانیه |
Own_Address_Type |
۱ هشتتایی |
0x00 - نشانی دستگاه عمومی (پیشفرض) 0x01 - نشانی دستگاه تصادفی |
LE_Ex_Scan_Filter_Policy |
0x00 - پذیرفتن همه بستههای تبلیغاتی (پیشفرض). بستههای تبلیغاتی هدایتشده که برای این دستگاه آدرسدهی نشدهاند باید نادیده گرفته شوند. 0x01 - Ignore advertisement packets from devices not in the White List Only list. بستههای تبلیغات هدایتشده که برای این دستگاه نشانیگذاری نشدهاند نادیده گرفته میشوند. |
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت تکمیل فرمان |
فرمان دریافت اطلاعات اشکالزدایی کنترلکننده
هدف این عنصر اطلاعاتی، دریافت اطلاعات اشکالزدایی کنترلکننده توسط میزبان، در قالب باینری، برای پسپردازش و تجزیهوتحلیل است. این کار به اشکالزدایی مشکلات میدانی کمک میکند و مجموعهای از ابزارها را برای مهندسان فراهم میکند تا اطلاعات را برای تجزیهوتحلیل ثبت کنند. «کنترلکننده» میتواند اطلاعات را وقتی میزبان ازطریق رویداد درخواست میکند (رویداد فرعی «اطلاعات اشکالزدایی کنترلکننده») یا بهصورت خودکار وقتی کنترلکننده بخواهد ارائه دهد. برای مثال، از آن میتوان برای گزارش کردن اطلاعات وضعیت میانافزار، اطلاعات تخلیه خرابی، اطلاعات گزارشگیری، و غیره استفاده کرد.
OCF: 0x15B
| پارامتر فرمان | اندازه | هدف |
|---|---|---|
| موجود نیست | فهرست پارامتر فرمان خالی است |
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت تکمیل فرمان |
پشتیبانی از انتقال بار سختافزار A2DP
ویژگی «واگذاری A2DP» از واگذاری فرایند کدبندی صوتی A2DP به پردازنده صوتی متصل به «کنترلکننده بلوتوث» پشتیبانی میکند. جاریسازی دادههای صوتی کدبندیشده مستقیماً از پردازنده صوتی به کنترلکننده بلوتوث منتقل میشود، بدون اینکه میزبان بلوتوث درگیر شود. «میزبان بلوتوث» همچنان مسئول پیکربندی و کنترل جلسه A2DP است. دو نسخه از فرمانها دردسترس است. فرمانهای قدیمی با «زیر OCF 0x01-0x02» فقط از کدکهای متنباز پشتیبانی میکنند. نسخههای دارای Sub-OCF 0x03-0x04 نسبتبه کدک پیکربندیشده آگنوستیک هستند.
OCF: 0x15D
شروع کردن واگذاری A2DP (قدیمی)
Sub OCF: 0x01
از این فرمان هم برای پیکربندی فرایند واگذاری A2DP و هم برای شروع جاریسازی A2DP استفاده کنید.
| پارامتر فرمان | اندازه | هدف |
|---|---|---|
Codec |
۴ هشتتایی |
نوع کدک را مشخص میکند 0x01 - SBC 0x02 - AAC 0x04 - APTX 0x08 - APTX HD 0x10 - LDAC 0x20 - Opus |
Max_Latency |
۲ هشتتایی | حداکثر تأخیر مجاز (به میلیثانیه). مقدار صفر، پاکسازی را غیرفعال میکند. |
SCMS-T_Enable |
۲ هشتتایی |
اکتت ۰: پرچمی که افزودن سرایند SCMS-T را فعال میکند.
اکتت ۱: مقدار سرصفحه SCMS-T، زمانی که فعال باشد. |
Sampling_Frequency |
۴ هشتتایی |
0x01 - 44100 هرتز 0x02 - 48000 هرتز 0x04 - 88200 هرتز 0x08 - 96000 هرتز |
Bits_Per_Sample |
۱ هشتتایی |
0x01 - 16 بیت در هر نمونه 0x02 - 24 بیت در هر نمونه 0x04 - 32 بیت در هر نمونه |
Channel_Mode |
۱ هشتتایی |
0x01 - مونو 0x02 - استریو |
Encoded_Audio_Bitrate |
۴ هشتتایی |
نرخ بیت صدای کدگذاریشده برحسب بیت در ثانیه. 0x00000000 - نرخ بیت صدا مشخص نشده است و/یا استفاده نشده است. 0x00000001 - 0x00FFFFFF - نرخ بیت صوتی کدبندیشده برحسب بیت در ثانیه. 0x01000000 - 0xFFFFFFFF - رزروشده. |
Connection_Handle |
۲ هشتتایی | دستگیره اتصال اتصال A2DP درحال پیکربندی است |
L2CAP_Channel_ID |
۲ هشتتایی | شناسه کانال L2CAP که برای این اتصال A2DP استفاده میشود |
L2CAP_MTU_Size |
۲ هشتتایی | حداکثر اندازه MTU مربوط به L2CAP حاوی بستههای صوتی کدبندیشده |
Codec_Information |
۳۲ هشتتایی |
اطلاعات مختص کدک.
کدک SBC:
به عناصر اطلاعاتی خاص کدک SBC در A2DP نسخه ۱.۳ مراجعه کنید. کدک AAC:
به عناصر اطلاعاتی خاص کدک AAC در A2DP نسخه ۱.۳ مراجعه کنید کدک LDAC:
بایت ۰-۳: شناسه فروشنده
اکتت ۴-۵: شناسه کدک
اکتت ۶: شاخص نرخ بیت:
بایت ۷: حالت کانال LDAC هشتتایی ۸-۳۱: رزروشده کدک Opus:
اکتت ۰-۳: شناسه فروشنده
اکتت ۴-۵: شناسه کدک اکتت ۶-۳۱: رزروشده همه کدکهای دیگر: اکتت ۰-۳۱: رزروشده |
رویداد «فرمان تکمیل شد» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Sub_Opcode |
۱ هشتتایی | 0x01 - Start A2DP offload (شروع کردن واگذاری A2DP) |
شروع کردن واگذاری A2DP
Sub OCF: 0x03
از این فرمان هم برای پیکربندی فرایند واگذاری A2DP و هم برای شروع جاریسازی A2DP استفاده کنید.
| پارامتر فرمان | اندازه | هدف |
|---|---|---|
Connection Handle |
۲ هشتتایی | دستورات اتصال HCI فعال |
L2CAP_Channel_ID |
۲ هشتتایی | شناسه «کانال L2CAP» بازشده برای جاریسازی A2DP |
Data_Path_Direction |
۱ هشتتایی |
0x00 - برونداد (منبع/ادغام AVDTP) 0x01 - ورودی (مقصد/تفکیک AVDTP) |
Peer_MTU |
۲ هشتتایی | حداکثر اندازه بستههای L2CAP که با همتا مذاکره شده است. |
CP_Enable_SCMS_T |
۱ هشتتایی |
0x00 - غیرفعال کردن سرایند «محافظت از محتوای SCMS-T» 0x01 - فعال کردن سرایند «محافظت از محتوای SCMS-T» |
CP_Header_SCMS_T |
۱ هشتتایی |
وقتی «سرایند محافظت از محتوای SCMS-T» فعال باشد (CP_SCMS_T_Enable
روی 0x01 تنظیم شده باشد)، مقدار سرایندی را که قبلاز محتوای صوتی قرار میگیرد (به
A2DP، بخش 3.2.1-2 مراجعه کنید) همانطور که در «اعداد اختصاصدادهشده بلوتوث»، بخش
6.3.2 تعریف شده است، تعریف میکند.وقتی «محافظت از محتوای SCMS-T» فعال نباشد نادیده گرفته میشود. |
Vendor_Specific_Parameters_Length |
۱ هشتتایی |
طول «پارامترهای ویژه فروشنده»، در محدوده ۰ تا ۱۲۸. وقتی پارامترهای اضافی ارائه نشده باشد، از مقدار 0 استفاده میشود. |
Vendor_Specific_Parameters |
۰ تا ۱۲۸ هشتتایی |
پارامترهای خاص فروشنده که توسط HAL صدای بلوتوث ارائه شده است،
CodecParameters.vendorSpecificParameters[].
|
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Sub_Opcode |
۱ هشتتایی | 0x03 - Start A2DP offload |
توقف بارگیری A2DP (قدیمی)
Sub OCF: 0x02
این فرمان برای متوقف کردن جاریسازی واگذاری A2DP استفاده میشود.
| پارامتر فرمان | اندازه | هدف |
|---|---|---|
| موجود نیست | فهرست پارامتر فرمان خالی است. |
هیچ پارامتری برای این فرمان تعریف نشده است.
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Sub_Opcode |
۱ هشتتایی | 0x02 - توقف واگذاری A2DP |
توقف کردن واگذاری A2DP
کد عملیات فرعی: 0x04
این فرمان برای متوقف کردن جاریسازی واگذاری A2DP استفاده میشود.
| پارامتر فرمان | اندازه | هدف |
|---|---|---|
Connection Handle |
۲ هشتتایی | دستورات اتصال HCI فعال |
L2CAP_Channel_ID |
۲ هشتتایی | شناسه «کانال L2CAP» بازشده برای جاریسازی A2DP |
Data_Path_Direction |
۱ هشتتایی |
0x00 - برونداد (منبع/ادغام AVDTP) 0x01 - ورودی (مقصد/تفکیک AVDTP) |
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Sub_Opcode |
۱ هشتتایی | 0x04 - توقف کردن واگذاری A2DP |
فرمان گزارش کیفیت بلوتوث
ویژگی فرمان «گزارش کیفیت بلوتوث» سازوکار را در کنترلکننده بلوتوث برای گزارش رویدادهای کیفیت بلوتوث به میزبان شروع میکند. میتوانید چهار گزینه را فعال کنید:
- حالت «نظارت بر کیفیت»: کنترلکننده بهطور دورهای یک زیررویداد BQR مربوط به «کیفیت پیوند» را به میزبان ارسال میکند.
- نزدیک شدن به LSTO: اگر بستهای از دستگاه BT متصل برای مدت زمانی بیشتر از نصف مقدار «زمان اتمام نظارت پیوند» (LSTO) دریافت نشود، کنترلکننده رویداد «نزدیک شدن به LSTO» را به میزبان گزارش میکند.
- صدای A2DP ناهموار: وقتی کنترلکننده عواملی را که باعث ناهموار شدن صدا میشود تشخیص دهد، کنترلکننده رویداد «صدای A2DP ناهموار» را به میزبان گزارش میکند.
- (ه)صدای SCO بریده بریده: وقتی کنترلکننده عواملی را که باعث بریده بریده شدن صدا میشود تشخیص میدهد، کنترلکننده رویداد «صدای SCO بریده بریده» را به میزبان گزارش میکند.
- التهاب ریشهای: این رویداد زمانی ازسوی کنترلکننده به پشته ارسال میشود که HAL یا کنترلکننده با خطای مهلکی مواجه شود و نیاز به بازراهاندازی بلوتوث داشته باشد.
- ردیابی پیام LMP/LL: کنترلکننده پیام LMP/LL را ارسال میکند دستدهی با دستگاه ازراهدور به میزبان.
- ردیابی زمانبندی همزیستی/چندنمایه بلوتوث: کنترلکننده اطلاعات زمانبندی خود را درباره مدیریت چند نمایه بلوتوث و همزیستی بیسیم در باند ۲٫۴ گیگاهرتز به میزبان ارسال میکند.
- سازوکار «اطلاعات اشکالزدایی کنترلکننده»: وقتی فعال باشد، کنترلکننده میتواند اطلاعات گزارش اشکالزدایی را بهطور خودکار ازطریق رویداد فرعی اطلاعات اشکالزدایی کنترلکننده به میزبان گزارش دهد.
- صدای کممصرف ناپیوسته: وقتی کنترلکننده عواملی را که باعث ناپیوسته شدن صدا میشود تشخیص میدهد، کنترلکننده رویداد «صدای کممصرف ناپیوسته» را به میزبان گزارش میدهد.
-
حالت «آمار RF پیشرفته»: کنترلکننده اطلاعات مربوط به آمار RF خود را به میزبان گزارش میدهد و از دو مورد استفاده گزارش پشتیبانی میکند:
- گزارشهای دورهای
- راهاندازهای رویداد (شروع/توقف جاریسازی و راهانداز رویداد کیفیت پیوند).
- سازوکار پایش وضعیت سلامت کنترلکننده ازطریق دو نوع رویداد اطلاعات مربوط به سلامت را دراختیار میزبان قرار میدهد: گزارشهای دورهای و گزارشهای رویدادمحور.
- BQR_Report_Action از فرمان «گزارش کیفیت بلوتوث»: میزبان میتواند از این فرمان HCI برای دریافت پُرسمان یکباره برای حالت پایش کیفیت، حالت پایش انرژی، یا حالت آمار RF پیشرفته استفاده کند.
OCF: 0x15E
| پارامتر فرمان | اندازه | هدف |
|---|---|---|
BQR_Report_Action |
۱ هشتتایی |
کنش برای افزودن / حذف گزارش رویداد(های) کیفیت تنظیمشده در پارامتر BQR_Quality_Event_Mask، یا پاک کردن همه.
0x00 - افزودن
حذف کردن گزارش رویداد(های) کیفیت خاص را پاک میکند. |
BQR_Quality_Event_Mask |
۴ هشتتایی |
نقابهای بیت برای گزارش رویداد کیفیت انتخابشده.
بیت ۰: برای فعال کردن حالت پایش کیفیت تنظیم کنید. |
BQR_Minimum_Report_Interval |
۲ هشتتایی |
حداقل فاصله زمانی گزارش رویداد کیفیت را برای رویداد(های) کیفیت انتخابشده تعریف کنید. «میانافزار» کنترلکننده نباید رویداد بعدی را
در فاصله زمانی تعریفشده گزارش کند. تنظیم فاصله
باید مربوط و مختص رویداد(های) کیفیتی باشد که
اضافه میشود.
واحد: میلیثانیه |
BQR_Vendor_Specific_Quality_Event_Mask |
۴ هشتتایی |
بیتماسکها برای گزارش رویداد کیفیت خاص فروشنده انتخابشده. این پارامتر فقط زمانی معتبر است که بیت ۱۵ از BQR_Quality_Event_Mask تنظیم شده باشد.
بیت ۰ تا ۳۱: رزروشده. |
BQR_Vendor_Specific_Trace_Mask |
۴ هشتتایی |
ماسکهای بیت برای گزارش ردیابی مختص فروشنده انتخابشده. این پارامتر فقط زمانی معتبر است که بیت ۳۱ از BQR_Quality_Event_Mask تنظیم شده باشد.
بیت ۰ تا ۳۱: رزروشده. |
Report_interval_multiple |
۴ هشتتایی |
ضریب BQR_Minimum_Report_Interval. وقتی این مقدار >= 1 باشد،
«فاصله گزارش BQR» از قالب پیروی میکند «فاصله گزارش BQR» = «حداقل فاصله گزارش BQR» × «چندبرابر فاصله گزارش». «میانافزار» کنترلکننده نباید رویداد بعدی را در فاصله زمانی تعریفشده گزارش کند. تنظیم فاصله بهطور خاص به رویداد(های) کیفیت اضافهشده اختصاص داده شده است.
واحد: میلیثانیه BQR_Report_Interval بزرگتر از توانایی
کنترلکننده باشد، کنترلکننده باید حداکثر زمان BQR_Report_Interval
را در تکمیل فرمان برگرداند.
|
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت تکمیل فرمان |
Current_Quality_Event_Mask |
۴ هشتتایی |
تنظیمات ماسک بیت فعلی را نشان میدهد. بیت ۰: حالت پایش کیفیت فعال است. بیت ۱: گزارش رویداد نزدیک شدن به LSTO فعال است. بیت ۲: گزارش رویداد «صدای A2DP منقطع» فعال است. بیت ۳: گزارش رویداد «صدای SCO منقطع» فعال است. بیت ۴: گزارش رویداد التهاب ریشه فعال است. بیت ۵: حالت پایش انرژی فعال است. بیت ۶: گزارش رویداد صدای بریدهبریده LE فعال است. بیت ۷: رویداد عدم اتصال. بیت ۸: برای فعال کردن راهانداز رویداد حالت «آمار RF پیشرفته» تنظیم شده است. بیت ۹: برای فعال کردن گزارش دورهای «آمار پیشرفته RF» تنظیم شود. بیت ۱۰: روی راهانداز رویداد سازوکار پایش وضعیت سلامت کنترلکننده فعال تنظیم شده است. بیت ۱۱: روی فعال تنظیم شود تا سازوکار پایش سلامت کنترلکننده بهصورت دورهای گزارش دهد. بیت ۱۲ تا ۱۴: رزروشده. بیت ۱۵: گزارش رویداد کیفیت مختص فروشنده فعال است. بیت ۱۶: ردیابی پیام LMP/LL فعال است. بیت ۱۷: ردیابی زمانبندی همزیستی/چندپیوندی بلوتوث فعال است. بیت ۱۸: سازوکار اطلاعات اشکالزدایی کنترلکننده فعال است. بیت ۱۹: برای اطلاعات اشکالزدایی برونسپاری رزرو شده است بیت ۲۰: راهاندازی رویداد تخلیه سابقه UART بیت ۲۱ تا ۳۰: رزرو شده است. بیت ۳۱: ردیابی مختص فروشنده فعال است. |
Current_Vendor_Specific_Quality_Event_Mask |
۴ هشتتایی | تنظیمات ماسک بیت فعلی را نشان میدهد. |
Current_Vendor_Specific_Trace_Mask |
۴ هشتتایی | تنظیمات ماسک بیت فعلی را نشان میدهد. |
BQR_Report_interval |
۴ هشتتایی | تنظیمات ماسک بیت فعلی را نشان میدهد. |
Current_Vendor_Specific_Trace_Mask |
۴ هشتتایی |
تنظیم BQR_Report_interval. باید حداقل مقدار بین
BQR_Minimum_Report_Interval * Report_interval_multiple یا حداکثر فاصله پشتیبانی
کنترلکننده باشد. |
فرمان میانگیری پویای صدا
میانگیر پویای صدا با تغییر اندازه میانگیر صدا در کنترلکننده بلوتوث براساس سناریوهای مختلف، اشکالات صدا را کاهش میدهد.
OCF: 0x15F
دریافت قابلیت زمان میانگیری صدا
Sub OCF: 0x01
از این فرمان برای دریافت قابلیت زمان بافر صدا از کنترلکننده بلوتوث استفاده کنید.
| پارامتر فرمان | اندازه | هدف |
|---|---|---|
| موجود نیست | فهرست پارامتر فرمان خالی است |
رویداد «فرمان تکمیل شد» برای این فرمان ایجاد خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Dynamic_Audio_Buffer_opcode |
۱ هشتتایی | 0x01 - دریافت زمان میانگیری صدا |
Audio_Codec_Type_Supported |
۴ هشتتایی |
ماسکهای بیت برای انواع کدک پشتیبانیشده بیت ۰ - SBC بیت ۱ - AAC بیت ۲ - APTX بیت ۳ - APTX HD بیت ۴ - LDAC بیت ۵ تا ۳۱ رزرو شدهاند |
Audio_Codec_Buffer_Default_Time_For_Bit_0 |
۲ هشتتایی |
زمان میانگیری پیشفرض نوع کدک Bit 0 مشخصشده در
Audio_Codec_Type_Supported. اگر نوع کدک «بیت ۰» پشتیبانی نشود، این مقدار باید ۰ باشد. واحد: میلیثانیه |
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 |
۲ هشتتایی |
حداکثر زمان میانگیری نوع کدک Bit 0 مشخصشده در
Audio_Codec_Type_Supported. اگر نوع کدک «بیت ۰» پشتیبانی نشود، این مقدار باید ۰ باشد. واحد: میلیثانیه |
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 |
۲ هشتتایی |
حداقل زمان میانگیری نوع کدک Bit 0 مشخصشده در
Audio_Codec_Type_Supported. اگر نوع کدک «بیت ۰» پشتیبانی نشود، این مقدار باید ۰ باشد. واحد: میلیثانیه |
Audio_Codec_Buffer_Default_Time_For_Bit_1 |
۲ هشتتایی |
زمان میانگیری پیشفرض نوع کدک Bit 1 مشخصشده در
Audio_Codec_Type_Supported. اگر نوع کدک «بیت ۱» پشتیبانی نمیشود، این مقدار باید ۰ باشد. واحد: میلیثانیه |
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 |
۲ هشتتایی |
حداکثر زمان میانگیری نوع کدک Bit 1 مشخصشده در
Audio_Codec_Type_Supported. اگر نوع کدک «بیت ۱» پشتیبانی نمیشود، این مقدار باید ۰ باشد. واحد: میلیثانیه |
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 |
۲ هشتتایی |
حداقل زمان بافر کدک نوع Bit 1 که در
Audio_Codec_Type_Supported مشخص شده است. اگر نوع کدک «بیت ۱» پشتیبانی نمیشود، این مقدار باید ۰ باشد. واحد: میلیثانیه |
| ...... | ...... | ...... |
Audio_Codec_Buffer_Default_Time_For_Bit_31 |
۲ هشتتایی |
زمان میانگیری پیشفرض نوع کدک Bit 31 که در
Audio_Codec_Type_Supported مشخص شده است. اگر نوع کدک بیت ۳۱ پشتیبانی نشود، این مقدار باید ۰ باشد. واحد: میلیثانیه |
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 |
۲ هشتتایی |
حداکثر زمان میانگیری کدک نوع Bit 31 که در
Audio_Codec_Type_Supported مشخص شده است. اگر نوع کدک بیت ۳۱ پشتیبانی نشود، این مقدار باید ۰ باشد. واحد: میلیثانیه |
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 |
۲ هشتتایی |
حداقل زمان بافر نوع کدک Bit 31 که در
Audio_Codec_Type_Supported مشخص شده است. اگر نوع کدک Bit 31 پشتیبانی نشود، این مقدار باید ۰ باشد. واحد: میلیثانیه |
تنظیم زمان میانگیری صدا
Sub OCF: 0x02
از این فرمان برای تنظیم زمان بافر صدا در کنترلکننده بلوتوث استفاده کنید.
| پارامتر فرمان | اندازه | هدف |
|---|---|---|
Audio_Codec_Buffer_Time |
۲ هشتتایی |
زمان میانگیر صوتی درخواستشده برای کدک مورداستفاده فعلی. واحد: میلیثانیه |
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Dynamic_Audio_Buffer_opcode |
۱ هشتتایی | 0x02 - تنظیم زمان میانگیری صدا |
Audio_Codec_Buffer_Time |
۲ هشتتایی |
زمان میانگیر صوتی فعلی در کنترلکننده بلوتوث. واحد: میلیثانیه |
آستانه مجاورت اتصال (نسخه ۱.۰۶)
LE_Add_Device_To_Filter_Accept_List_With_Proximity_Threshold_Command
از این فرمان میتوان برای ارائه آستانه مجاورت اتصال (افت مسیر و RSSI) هنگام افزودن دستگاه به «فهرست پذیرش فیلتر» استفاده کرد.
اتصال باید فقط زمانی امتحان شود که سیگنال مقدار افت مسیر کمتری از آستانه «افت مسیر» داشته باشد.
اگر TxPower دردسترس نباشد یا از No Path Loss filtering استفاده شود، اتصال فقط زمانی باید برقرار شود که سیگنال مقدار RSSI بالاتری نسبتبه آستانه RSSI مشخصشده داشته باشد.
از این فرمان میتوان بهعنوان جایگزینی برای فرمان «استاندارد بلوتوث» LE Add Device To Filter Accept List command استفاده کرد.
اگر این فرمان با مقادیر آستانه متفاوت فراخوانده شود درحالیکه دستگاه ازقبل در «فهرست پذیرش فیلتر» باشد، مقادیر آستانه باید بهروز شود.
مرجع پایه: مشخصات BT Core 6.2، 7.8.16 (فرمان LE Add Device To Filter Accept List)
این فرمان نباید در موارد زیر استفاده شود:
- هرگونه خطمشی فیلتر تبلیغات از «فهرست پذیرش فیلتر» استفاده کند و تبلیغات فعال باشد،
- خطمشی فیلتر اسکن از «فهرست پذیرش فیلتر» استفاده میکند و اسکن فعال است، یا
- خطمشی فیلتر آغازگر از «فهرست پذیرش فیلتر» استفاده میکند و فرمان
HCI_LE_Create_ConnectionیاHCI_LE_Extended_Create_Connectionمعلقه است.
LE Remove Device From Filter Accept List باید دستگاه را از «فهرست پذیرش فیلتر» که با این فرمان اضافه شده است بردارد.
کد عملیات: 0xFD66 (OCF: 0x166)
| پارامتر فرمان | اندازه | هدف |
|---|---|---|
Address_Type |
۱ هشتتایی |
0x00 - نشانی دستگاه عمومی 0x01 - نشانی دستگاه تصادفی 0xFF - دستگاههایی که تبلیغات ناشناس ارسال میکنند همه مقادیر دیگر - برای استفاده در آینده رزرو شده است |
LE_Device_Address |
۶ هشتتایی |
نشانی عمومی یا تصادفی وقتی Address_Type روی 0xFF تنظیم شده باشد، نشانی نادیده گرفته میشود. |
Connection_Path_Loss_Threshold |
۱ هشتتایی |
محدوده: ۰ تا ۱۰۰+، ۱۲۷+ [به دسیبل] آستانه «افت مسیر» اتصال را برای شروع اتصال به دستگاه هنگام شناسایی آن نشان میدهد (۰ تا ۱۰۰+). مقدار «افت مسیر» برای شروع اتصال باید کمتر باشد. از مقدار +۱۲۷ برای نشان دادن No Path Loss filtering استفاده میشود. وقتی TxPower دردسترس نیست، یا این مقدار +۱۲۷ است، این فرمان باید به فیلتر RSSI زیر برگردد.
|
Connection_RSSI_Threshold |
۱ هشتتایی |
محدوده: -۱۲۷ تا +۲۰، +۱۲۷ [در dBm] نشاندهنده آستانه RSSI اتصال برای شروع اتصال به دستگاه هنگام شناسایی آن است. (-۱۲۷ تا +۲۰). مقدار RSSI برای شروع اتصال باید بالاتر باشد. فیلتر کردن RSSI زمانی بهعنوان جایگزین استفاده میشود که TxPower دردسترس نباشد یا آستانه «افت مسیر» روی +۱۲۷ مشخص شده باشد. مقدار ۱۲۷+ برای نشان دادن No RSSI filtering استفاده میشود.
|
وقتی هم آستانه «افت مسیر» و هم آستانه RSSI برابر با ۱۲۷+ باشد، این فرمان باید مانند «استاندارد بلوتوث» LE Add Device To Filter Accept List command عمل کند.
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
رویداد HCI (مختص ارائهدهنده)
در برخی موارد، رویدادهای HCI مختص ارائهدهنده لازم است. به شکل ۵.۴ در صفحه ۱۸۹۷ از مشخصات BT Core 5.2 مراجعه کنید. پارامتر رویداد ۰ همیشه حاوی اولین کد زیررویداد است که براساس آن بقیه رویداد HCI رمزگشایی میشود.
| پارامتر رویداد | اندازه | هدف |
|---|---|---|
HCI_vendor_specific_event_code |
۱ هشتتایی | 0xFF |
sub_event_code |
۱ هشتتایی | اندازه کد زیررویداد ۱ هشتتایی خواهد بود، بایت بلافاصله پساز «طول پارامتر» در بسته رویداد HCI. |
رویداد فرعی نقض آستانه فضای ذخیرهسازی
این رویداد نشان میدهد که آستانه فضای ذخیرهسازی نقض شده است.
کد زیررویداد = 0x54
| پارامتر زیررویداد | اندازه | هدف |
|---|---|---|
| هیچکدام |
زیررویداد تغییر وضعیت چندتبلیغاتی LE
این رویداد نشان میدهد که نمونه تبلیغاتی وضعیت خود را تغییر داده است. در این زمان، این رویداد فقط برای نشان دادن اینکه کدام نمونه تبلیغاتی درنتیجه اتصال متوقف شده است استفاده میشود.
کد رویداد فرعی = 0x55
| پارامتر رویداد فرعی | اندازه | هدف |
|---|---|---|
Advertising_instance |
۱ هشتتایی |
نمونه تبلیغات ویژه را شناسایی میکند مقادیر معتبر از ۰ تا max_advt_instances-۱ است
|
State_Change_Reason |
۱ هشتتایی | 0x00: اتصال دریافت شد |
Connection_handle |
۲ هشتتایی |
اتصالی را که باعث غیرفعال شدن نمونه advt شده است شناسایی میکند (0xFFFF اگر نامعتبر باشد)
|
رویداد فرعی ردیابی تبلیغات LE
این رویداد نشان میدهد که تبلیغکننده چه زمانی پیدا شده یا ازدست رفته است.
کد رویداد فرعی = 0x56
| پارامتر زیررویداد | اندازه | هدف |
|---|---|---|
APCF_Filter_Index |
۱ هشتتایی | فیلتر کردن شاخص (۰، max_filter-۱) |
Advertiser_State |
۱ هشتتایی |
0x00: تبلیغکننده پیدا شد 0x01: تبلیغکننده ازدست رفت |
Advt_Info_Present |
۱ هشتتایی |
0x00: اطلاعات تبلیغکننده (Advt_Info) موجود است0x01: اطلاعات تبلیغکننده ( Advt_Info) موجود نیست
|
Advertiser_Address |
۶ هشتتایی | نشانی عمومی یا تصادفی |
Advertiser_Address_Type |
۱ هشتتایی |
0x00: نشانی عمومی 0x01: نشانی تصادفی |
Advt_Info |
Tx_Pwr[0]: ۱ اکتتRSSI[0]: ۱ اکتتTimestamp[0]: ۲ اکتتAdv packet_len[0]: ۱ اکتتAdv_packet[0]: Adv_packet_len اکتتScan_data_resp_len[0]: ۱ اکتتScan_data_resp[0]: Scan_data_resp اکتت
|
رویداد فرعی اطلاعات اشکالزدایی کنترلکننده
این رویداد توسط «کنترلکننده» برای ارائه اطلاعات اشکالزدایی دودویی به میزبان استفاده میشود.
کد رویداد فرعی = 0x57
| پارامتر رویداد فرعی | اندازه | هدف |
|---|---|---|
debug_block_byte_offset_start |
۲ هشتتایی | آفست بایت بلوک اشکالزدایی از ابتدا |
last_block |
۱ هشتتایی |
0x00: دادههای اشکالزدایی بیشتری وجود دارد 0x01: آخرین بلوک باینری؛ دادههای اشکالزدایی دیگری وجود ندارد |
cur_pay_load_sz |
۲ هشتتایی | اندازه بلوک باینری در رویداد کنونی |
Debug_Data |
متغیر | عیبیابی دادههای cur_payload_sz |
طبقهبندی نقشه کانال پخش LE (نسخه ۱.۰۶)
سطح نویز رادیویی در کانالهای بلوتوث عامل مهمی در تعیین موفقیت دریافت بسته است. برای بهینهسازی اطمینانپذیری انتقال، مکانیزم طبقهبندی نقشه کانال برای شناسایی کیفیت کانال ضروری است. در سناریو منبع همهفرستی استاندارد «صدای کممصرف»، منبع معمولاً از اینکه کدام دستگاهها فعالانه به همهفرستی آن گوش میدهند اطلاعی ندارد. درنتیجه، منبع پخش باید صرفاً به ارزیابی خود از کیفیت کانال برای تعیین نقشه کانال BIG تکیه کند. بااینحال، نقشه کانال BIG که صرفاً براساس منبع تعیین میشود ممکن است بهدلیل شرایط محیطی متفاوت یا وجود منابع تداخل محلی در نزدیکی گیرندههای فردی برای هر گیرنده بهینه نباشد. اگر گیرنده همهفرستی بتواند اطلاعات طبقهبندی کانال خود را به منبع همهفرستی منتقل کند، منبع میتواند نقشه کانال BIG خود را مطابق با آن تطبیق دهد. این کار بهطور قابلتوجهی استحکام انتقال و دریافت جاریسازی همهفرستی را دربرابر تداخل افزایش میدهد.
برای مثال، در برنامههای «اشتراک صدای شخصی» (PAS)، پیوند LE ACL (که بهعنوان دستیار همهفرستی برای همگامسازی با منبع همهفرستی محلی عمل میکند) بین هدفونهای توگوشی و منبع همهفرستی برقرار میشود. از این اتصال LE ACL موجود میتوان برای ارائه اطلاعات طبقهبندی کانال از هدفونهای توگوشی (ازطریق بستههای LL_CHANNEL_STATUS_IND) به منبع پخش استفاده کرد. منبع پخش میتواند از این اطلاعات برای اصلاح نقشه کانال BIG خود استفاده کند.
بنابراین، LE_BIG_Set_Channel_Map_Classification_Command را تعریف میکنیم. این فرمان مدیریت نقشه کانال را در منبع BIG فعال میکند تا اطلاعات طبقهبندی کانال دریافتی از دستگاههای جانبی را درنظر بگیرد. این فرمان امکان تنظیم یک دسته اتصال LE ACL خاص را برای کنترلکننده فراهم میکند. پساز دریافت این اطلاعات، کنترلکننده نقشه کانال BIG خود را براساس دادههای طبقهبندی کانال مرتبط با اتصالات LE ACL ارائهشده تعیین میکند.
اجرای این VSC مستلزم آن است که منبع پخش هنگام ساختن نقشه کانال BIG، منابع طبقهبندی کانال متعددی را درنظر بگیرد. برای مثال، کنترلکننده میتواند تقاطع طبقهبندیهای کانال «خوب» گزارششده توسط دستگاههای کنترل از دور متصل را شناسایی کند و آن را به نقشه کانال BIG اعمال کند. الگوریتم خاص برای ادغام این طبقهبندیهای کانال به صلاحدید هر فروشنده کنترلکننده واگذار میشود و امکان نوآوری و بهینهسازی را فراهم میکند.
LE_BIG_Set_Channel_Map_Classification_Command
کد عملیات: 0xFD65 (OCF: 0x165)
| پارامتر فرمان | اندازه | هدف |
|---|---|---|
Sub_opcode |
۱ هشتتایی |
0x01 - تنظیم نقشه کانال BIG با «دستگیرههای اتصال LE ACL» 0x02-0x0E - برای استفاده در آینده رزرو شده است |
Set_BIG_Channel_Action |
۱ هشتتایی |
کنش برای افزودن یا حذف کردن BD_ADDR یا «دستگیرههای اتصال LE ACL»، یا پاک کردن همه. 0x00 - افزودن 0x01 - حذف 0x02 - پاک کردن 0x03-0xFF - رزروشده |
BIG_Handle |
۱ هشتتایی |
نام کاربری BIG را برای بهروزرسانی با طبقهبندی کانال دستگاه جانبی مشخص میکند محدوده: 0x00 تا 0xEF |
cmd_para[] |
متغیر | پارامترهای متغیر به Set_BIG_Channel_opcode بستگی دارد |
LE_BIG_Set_Channel_Map_Classification_Command_by_Conn_Handle
Sub OCF: 0x01
| پارامتر فرمان | اندازه | هدف |
|---|---|---|
Sub_opcode |
۱ هشتتایی |
0x01 - تنظیم نقشه کانال BIG با «دستگیرههای اتصال LE ACL» 0x02-0x0E - برای استفاده در آینده رزرو شده است |
Set_BIG_Channel_Action |
۱ هشتتایی |
کنش برای افزودن یا حذف «دستورات اتصال LE ACL»، یا پاک کردن همه. 0x00 - افزودن 0x01 - حذف 0x02 - پاک کردن 0x03-0xFF - رزروشده |
BIG_Handle |
۱ هشتتایی |
نام کاربری BIG را مشخص میکند تا با طبقهبندی کانال دستگاه جانبی بهروز شود. محدوده: 0x00 تا 0xEF |
Number_of_LE_ACL_Connections |
۱ هشتتایی |
تعداد اتصالهای LE ACL را برای استفاده در بهروزرسانی نقشه کانال BIG مشخص میکند. وقتی Set_BIG_Channel_Action روی Clear (0x02) تنظیم شده است، نادیده گرفته شود محدوده: 0x01 تا 0xFF |
LE_ACL_Connection_Handles |
متغیر (Number_of_LE_ACL_Connections * 2 octets) |
اندازه متغیر، براساس Number_of_LE_ACL_Connections وقتی Set_BIG_Channel_Action روی Clear (0x02) تنظیم شده است، نادیده گرفته میشود محدوده دستگیره اتصال: 0x0000 تا 0x0EFF |
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت تکمیل فرمان. وقتی همه conn_handles مربوط به LE ACL اضافه شد، SUCCESS برگردانده میشود. |
Set_BIG_Channel_opcode |
۱ هشتتایی | Set_BIG_Channel_opcode فرمان انعکاس صدا |
Set_BIG_Channel_Action |
۱ هشتتایی | Set_BIG_Channel_Action فرمان تکرار |
BIG_Handle |
۱ هشتتایی | BIG_Handle فرمان بازتاب Echo |
رویداد فرعی گزارش کیفیت بلوتوث
این رویداد نشاندهنده یکی از موارد زیر است: رویداد کیفیت بلوتوث رخ داده است، کنترلکننده ردیابی پیام LMP/LL و ردیابی زمانبندی چندپیوندی/همزیستی بلوتوث را بارگذاری کرده است، یا کنترلکننده دادههای اطلاعات اشکالزدایی را تخلیه کرده است.
کد زیررویداد = 0x58 [Quality_Report_Id = 0x01 ~ 0x04، رویداد مربوط به کیفیت پیوند]
| پارامتر رویداد فرعی | اندازه | هدف |
|---|---|---|
Quality_Report_Id |
۱ هشتتایی |
0x01: Quality reporting on the monitoring mode. 0x02: نزدیک شدن به LSTO. 0x03: A2DP Audio Choppy. 0x04: (e)صدای SCO ناهموار است. 0x05 تا 0x06: رزروشده. 0x07: صدای کممصرف بریدهبریده است. 0x08: اتصال ناموفق بود. 0x09 ~ 0xFF: رزروشده. |
Packet_Types |
۱ هشتتایی |
0x01: ID 0x02: NULL 0x03: POLL 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 0x10: DM1 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: Reserved 0x51: ISO packet 0x52: 1M PHY 0x53: 2M PHY 0x54: Codec PHY S=2 0x55: Codec PHY S=8 0x56 ~ 0xFF: Reserved |
Connection_Handle |
۲ هشتتایی | دستگیره اتصال ACL/(e)SCO/ISO. |
Connection_Role |
۱ هشتتایی |
نقش اجرایی برای اتصال. 0x00: Central 0x01: Peripheral 0x02 ~ 0xFF: Reserved. |
TX_Power_Level |
۱ هشتتایی |
سطح توان انتقال فعلی برای Connection_Handle مشخصشده.
این مقدار باید با پاسخ کنترلکننده به فرمان HCI_Read_Transmit_Power_Level HCI یکسان باشد. |
RSSI |
۱ هشتتایی |
[برحسب دسیبل میلیوات]
مقدار «نشانگر قدرت سیگنال دریافتی» (RSSI) برای
Connection_Handle مشخصشده. |
SNR |
۱ هشتتایی |
[به دسیبل]
مقدار «نسبت سیگنال به نویز» (SNR) برای
Connection_Handle مشخصشده. |
Unused_AFH_Channel_Count |
۱ هشتتایی |
تعداد کانالهای استفادهنشده در AFH_channel_map را نشان میدهد. 0x4F ~ 0xFF: رزروشده. |
AFH_Select_Unideal_Channel_Count |
۱ هشتتایی |
نشاندهنده تعداد کانالهایی است که تداخل دارند و کیفیت آنها بد است، اما همچنان برای AFH انتخاب شدهاند. حداقل تعداد کانالهای مجاز طبق مشخصات بلوتوث ۲۰ کانال است، بنابراین حتی اگر همه ۷۹ کانال تداخل داشته باشند و کیفیت بدی داشته باشند، کنترلکننده همچنان باید حداقل ۲۰ کانال را برای «پرش فرکانسی تطبیقی» انتخاب کند. |
LSTO |
۲ هشتتایی |
تنظیم فعلی «مهلت نظارت بر پیوند». زمان = N * ۰٫۶۲۵ میلیثانیه محدوده زمانی: ۰٫۶۲۵ میلیثانیه تا ۴۰٫۹ ثانیه |
Connection_Piconet_Clock |
۴ هشتتایی |
ساعت Piconet برای Connection_Handle مشخصشده. این مقدار باید با مقدار کنترلکنندهای که به دستور HCI_Read_Clock HCI با پارامتر «Which_Clock» از 0x01 (ساعت Piconet) پاسخ میدهد یکسان باشد. واحد: N * 0.3125 میلیثانیه (۱ ساعت بلوتوث) |
Retransmission_Count |
۴ هشتتایی |
تعداد بازانتقالها از زمان آخرین رویداد. این شمارش پساز گزارش به میزبان بازنشانی خواهد شد. |
No_RX_Count |
۴ هشتتایی |
از زمان رویداد قبلی، هیچ تعداد نسخه پزشکی وجود ندارد. وقتی در زمان برنامهریزیشده هیچ بستهای دریافت نشود یا بسته دریافتی خراب باشد، شمارش افزایش مییابد. این شمارش پساز گزارش به میزبان بازنشانی خواهد شد. |
NAK_Count |
۴ هشتتایی |
تعداد NAK (تأیید منفی) از آخرین رویداد. این شمارش باید پساز گزارش به میزبان بازنشانی شود. |
Last_TX_ACK_Timestamp |
۴ هشتتایی |
مُهر زمان آخرین TX ACK. این زمان براساس «ساعت بلوتوث»
مرکز پیکونت (CLK) است. واحد: N * 0.3125 میلیثانیه (۱ ساعت بلوتوث) |
Flow_Off_Count |
۴ هشتتایی |
تعداد دفعاتی که کنترلکننده از آخرین رویداد، Flow-off (STOP) دریافت کرده است. این شمارش پساز گزارش به میزبان بازنشانی خواهد شد. |
Last_Flow_On_Timestamp |
۴ هشتتایی |
مُهر زمان آخرین Flow-on (GO). این زمان براساس «ساعت بلوتوث»
مرکز پیکونت (CLK) است. واحد: N * 0.3125 میلیثانیه (۱ ساعت بلوتوث) |
Buffer_Overflow_Bytes |
۴ هشتتایی |
[in Byte]
تعداد سرریز میانگیر از آخرین رویداد. |
Buffer_Underflow_Bytes |
۴ هشتتایی |
[به بایت]
تعداد سرریز بافر از آخرین رویداد. |
bdaddr |
۶ هشتتایی | نشانی دستگاه ازراهدور |
cal_failed_item_count |
۱ هشتتایی | تعداد موارد ناموفق واسنجی |
TX_Total_Packets |
۴ هشتتایی | تعداد بستههایی که ارسال شده است. |
TX_UnAcked_Packets |
۴ هشتتایی |
تعداد بستههایی که تأییدیه دریافت نمیکنند. این شمارش پساز گزارش به میزبان بازنشانی میشود. |
TX_Flushed_Packets |
۴ هشتتایی |
تعداد بستههایی که نقطه تخلیه آن ارسال نشده است. این شمارش پساز گزارش به میزبان بازنشانی میشود. |
TX_Last_Subevent_Packets |
۴ هشتتایی |
تعداد بستههایی که «لایه پیوند» یک PDU داده CIS را در آخرین زیررویداد یک رویداد CIS ارسال میکند. این شمارش پساز گزارش به میزبان بازنشانی میشود. اگر مقدار معتبری برای پیوند وجود نداشته باشد، مقدار صفر است. |
CRC_Error_Packets |
۴ هشتتایی |
تعداد بستههای دریافتی با خطای CRC از آخرین رویداد. این شمارش پساز گزارش به میزبان بازنشانی میشود. |
RX_Duplicate_Packets |
۴ هشتتایی |
تعداد بستههای تکراری (بازارسال) دریافتی از زمان رویداد قبلی. این شمارش پساز گزارش به میزبان بازنشانی میشود. |
RX_Unreceived_Packets |
۴ هشتتایی |
تعداد بستههای دریافتنشده همان پارامتر فرمان LE READ ISO Link
Quality است (به «مشخصات اصلی بلوتوث نسخه ۵.۴» مراجعه کنید). جریانهای منسوب
عبارتاند از CIS و BIS. وقتی این مقدار افزایش مییابد، «لایه پیوند» بار ویژه خاصی را در نقطه تخلیه خود (در CIS) یا در پایان رویدادی که با آن مرتبط است (در BIS؛ به «مشخصات اصلی Bluetooth نسخه ۵.۴ جلد ۶ بخش B، بخش ۴.۴.۶.۶» مراجعه کنید) دریافت نمیکند. |
Coex_Info_Mask |
۲ هشتتایی |
بیت ۰ - CoexInvolvement: برای نشان دادن اینکه مشکوک به دخالت فعالیتهای coex است تنظیم شده است
وقتی این گزارش تولید میشود (برای مثال، A2DP Chops و Approaching LSTO). بیت ۱ - رادیو WL 2G فعال: تنظیم شده است تا نشان دهد «رادیو WLAN 2G» فعال است. بیت ۲ - WL 2G Connected (اتصال WL 2G): تنظیم شده است تا نشان دهد «رادیو WLAN 2G» فعال و متصل است. بیت ۳ - رادیو WL 5G/6G فعال: برای نشان دادن فعال بودن رادیو WLAN 5G/6G تنظیم شده است. بیت ۴-۱۵ - رزروشده |
| پارامتر مختص فروشنده | (طول کل پارامتر - TBD) * هشتتایی | برای اینکه فروشنده کنترلکننده پارامترهای خاص فروشنده بیشتری را دریافت کند. |
کد رویداد فرعی = 0x58 [شناسه گزارش کیفیت = 0x05، رویداد التهاب ریشه]
این رویداد نشان میدهد که Bluetooth HAL یا کنترلکننده با خطای مهلکی مواجه شده است و پشته بلوتوث باید این وضعیت را ثبت کند و بازراهاندازی شود. کنترلکننده باید قبلاز ارسال اولین تکه از رویدادهای اطلاعات اشکالزدایی در هر شرایطی، رویداد Root_Inflammation_Event را به پشته Bluetooth ارسال کند.
پارامتر Error_Code حاوی کد خطایی است که از HAL/کنترلکننده گزارش شده است، اگر خطای خاص فروشنده مجموعه تراشه باشد، مقدار آن ۰ است. Vendor_Specific_Error_Code حاوی کد خطای خاص فروشنده تراشه از HAL/Controller است. اگر پارامتر Error_Code برابر با ۰ نباشد، باید روی ۰ تنظیم شود. پارامترهای Error_Code و Vendor_Specific_Error_Code نباید هر دو ۰ باشند.
| پارامتر رویداد فرعی | اندازه | هدف |
|---|---|---|
Quality_Report_Id |
۱ هشتتایی |
0x00 ~ 0x04: رزروشده. 0x05: التهاب ریشه. 0x06 ~ 0xFF: رزروشده. |
Error_Code |
۱ هشتتایی |
0x00: کد خطای مختص فروشنده مجموعه تراشه اضافه شده است. 0x01 تا 0xFF: خطای کنترلکننده رخ داد. برای مشاهده فهرست کدهای خطا و توضیحات، «مشخصات بلوتوث» [جلد ۲] بخش D، «کدهای خطا» را ببینید. |
Vendor_Specific_Error_Code |
۱ هشتتایی |
0x00: هیچ کد خطای خاص فروشنده تراشهای گنجانده نشده است. 0x01 ~ 0xFF: کد خطای مختص فروشنده تراشه. |
| پارامتر مختص فروشنده | (طول کل پارامتر - ۴) * اکتت | برای اینکه فروشنده کنترلکننده پارامترهای خاص فروشنده بیشتری دریافت کند. |
Subevent code = 0x58 [Quality_Report_Id = 0x06, Energy monitor event]
این رویداد تصویری آنی از مصرف برق و وضعیتهای عملیاتی کنترلکننده بلوتوث در یک دوره زمانی خاص ارائه میدهد. این رویداد به توسعهدهندگان و مهندسان کمک میکند نحوه مدیریت توان توسط کنترلکننده را تجزیهوتحلیل کنند، فعالیتهایی را که بیشترین انرژی را مصرف میکنند شناسایی کنند، و مشکلات مربوط به توان را عیبیابی کنند.
پارامترهای موجود در گزارش، سنجههای کلیدی را ردیابی میکنند، ازجمله:
- میانگین مصرف جریان: جریان کلی که توسط کنترلکننده استفاده میشود.
- زمان صرفشده در حالتهای مختلف: کل زمان (به میلیثانیه) که کنترلکننده در حالت بیکار (خواب/توان پایین) درمقایسه با حالت فعال (اتصال، انتقال، یا دریافت داده) سپری میکند.
- تعداد گذار وضعیت: تعداد دفعاتی که کنترلکننده بین وضعیتهای بیکار و فعال تغییر میکند.
- زمان صرفشده در وضعیتهای رادیویی خاص: سنجههای جداگانه برای زمان صرفشده در انتقال (Tx) و دریافت (Rx) برای هر دو پیوند BR/EDR (بلوتوث کلاسیک) و LE (بلوتوث کممصرف).
- سطوح توان انتقال میانگین: توان میانگین (برحسب دسیبل میلیوات) استفادهشده برای انتقالها در پیوندهای BR/EDR و LE.
- فعالیت زنجیرهای دقیق: گزارشهایی درباره زمان صرفشده با زنجیرههای فعال ارسال یا دریافت، با تمایز بین عملیات یکزنجیرهای و دوزنجیرهای، و بین تقویتکنندههای توان داخلی (iPA) و خارجی (ePA).
- زمان فعالیت اسکن: زمانی که کنترلکننده بهطور فعال برای دستگاههای BR/EDR و LE اسکن میکند.
مهندسان با بررسی این پارامترها میتوانند به اطلاعات آماری درباره بهرهوری انرژی کنترلکننده دست یابند و عملکرد آن را بهینهسازی کنند.
| پارامتر زیررویداد | اندازه | هدف |
|---|---|---|
Quality_Report_Id |
۱ هشتتایی | 0x06: پایش انرژی |
Average_Current_Consumption |
۲ هشتتایی | [برحسب میلیآمپر] میانگین مصرف جریان همه فعالیتهای مصرفشده توسط کنترلکننده |
Idle_Total_Time (خواب) |
۴ هشتتایی | [به میلیثانیه] کل زمان در حالت غیرفعال (حالتهای کممصرف، خواب). |
Idle_Sate_Enter_Count |
۴ هشتتایی | نشان میدهد که کنترلکننده چند بار وارد حالت آماده بهکار شده است. |
Active_Total_Time |
۴ هشتتایی | [به میلیثانیه] کل زمان در وضعیت فعال (پرسوجو، صفحهبندی، ترافیک ACL/SCO/eSCO/BIS/CIS، پردازش هر تکلیف). |
Active_State_Enter_Count |
۴ هشتتایی | نشان میدهد کنترلکننده چند بار وارد حالتهای فعال میشود. |
BR_RDR_Tx_Total_Time |
۴ هشتتایی | [برحسب میلیثانیه] کل زمان در وضعیت Tx(انتقال برای ترافیک ACL/SCO/eSCO) ویژه BR/EDR. |
BR_RDR_Tx_State_Enter_Count |
۴ هشتتایی | نشان میدهد کنترلکننده چند بار وارد وضعیت Tx خاص BR/EDR میشود. |
BR_RDR_Tx_Average_Power_Level |
۱ هشتتایی | [به دسیبل میلیوات] میانگین سطح توان Tx همه پیوندهای BR/EDR |
BR_RDR_Rx_Total_Time |
۴ هشتتایی | [به میلیثانیه] کل زمان در وضعیت «دریافت» ویژه BR/EDR (دریافت از ترافیک ACL/SCO/eSCO). |
BR_RDR_Rx_State_Enter_Count |
۴ هشتتایی | [به میلیثانیه] نشان میدهد کنترلکننده چند بار وارد وضعیت Rx خاص BR/EDR میشود. |
LE_Tx_Total_Time |
۴ هشتتایی | [به میلیثانیه] کل زمان در وضعیت Tx مختص LE (انتقال برای ترافیک تبلیغاتی ACL/BIS/CIS یا LE). |
LE_Tx_State_Enter_Count |
۴ هشتتایی | نشان میدهد کنترلکننده چند بار وارد وضعیت Rx ویژه BR/EDR میشود. |
LE_Tx_Average_Power_Level |
۱ هشتتایی | [برحسب دسیبل میلیوات] میانگین سطح توان انتقال همه پیوندهای LE. |
LE_Rx_Total_Time |
۴ هشتتایی | [به میلیثانیه] کل زمان در وضعیت LE specific Rx (دریافت از ACL/BIS/CIS یا ترافیک اسکن LE). |
LE_Rx_State_Enter_Count |
۴ هشتتایی | [in ms] Indicates how many times the controller enters the LE specific Rx state |
Report_Time_Duration (کل زمان) |
۴ هشتتایی | [به میلیثانیه] مدت زمان کل برای جمعآوری اطلاعات مربوط به توان. |
RX_Active_One_Chain_Time |
۴ هشتتایی | [به میلیثانیه] مدت زمان فعال بودن RX در یک زنجیره |
RX_Active_Two_Chain_Time |
۴ هشتتایی | [به میلیثانیه] مدت زمان فعال بودن RX در دو زنجیره |
TX_iPA_Active_One_Chain_Time |
۴ هشتتایی | [به میلیثانیه] مدت زمان فعال بودن TX داخلی در یک زنجیره |
TX_iPA_Active_Two_Chain_Time |
۴ هشتتایی | [به میلیثانیه] مدت زمان فعال بودن TX داخلی در دو زنجیره |
TX_ePA_Active_One_Chain_Time |
۴ هشتتایی | [به میلیثانیه] مدت زمان فعال بودن انتقال خارجی در یک زنجیره |
TX_ePA_Active_Two_Chain_Time |
۴ هشتتایی | [به میلیثانیه] مدت زمان فعال بودن TX خارجی در دو زنجیره |
BREDR_RX_Active_Scan_total_Time |
۴ هشتتایی | [به میلیثانیه] دوره زمانی (میلیثانیه) در زمان فعال دریافت اسکن BR/EDR |
LE_RX_Active_Scan_total_Time |
۴ هشتتایی | [in ms] Time period (ms) on LE scan RX active time |
کد زیررویداد = 0x58 [Quality_Report_Id = 0x09~0x0A، رویداد آمار RF پیشرفته]
رویداد «آمار فرکانس رادیویی پیشرفته بلوتوث» سنجههای عملکرد دقیقی درباره رفتار رادیویی کنترلکننده بلوتوث ارائه میدهد. این رویداد میتواند به دو روش راهاندازی شود:
- براساس راهانداز (0x09): گزارش یکبارهای در پاسخ به فرمان خاصی ارسال میشود.
- توسط «پایشگر» (0x0A): کنترلکننده گزارشها را بهصورت دورهای در فواصل زمانی مشخص ارسال میکند.
پارامترهای رویداد اساساً شمارندههای بسته هستند که عملکردهای مختلف رادیویی را در یک دوره زمانی مشخص پیگیری میکنند.
سنجههای کلیدی و هدف آنها
- آمار توان انتقال: این شمارندهها بستههای ارسالشده بااستفاده از پیکربندیهای توان مختلف را ردیابی میکنند و بین تقویتکنندههای توان داخلی (iPA) و خارجی (ePA) و حالتهای مختلف تنوع آنتن (Div) یا شکلدهی پرتو (BF) تمایز قائل میشوند. این کار به تعیین اینکه کدام تنظیمات آنتن و توان بیشتر استفاده میشوند کمک میکند.
- دستههای نشانگر قدرت سیگنال دریافتی (RSSI): این پارامترها بستههای دریافتی را براساس قدرت سیگنال آنها دستهبندی میکنند. با ارائه تعداد بستهها در محدودههای RSSI خاص (برای نمونه، کمتر از ۹۰- دسیبل، ۷۰- تا ۷۵- دسیبل)، گزارش تصویری واضح از کیفیت پیوند ارائه میدهد. تعداد زیاد در دستههای سیگنال «ضعیف» (برای مثال، < -90 dBm) نشاندهنده اتصال ضعیف است.
- دلتا RSSI: این سنجه تفاوت در قدرت سیگنال بین دو آنتن دریافتکننده (درصورت وجود) را اندازهگیری میکند. شمارندهها تعداد بستههایی را که دارای دلتای RSSI در محدودههای مختلف هستند ردیابی میکنند. دلتای بزرگ (مثلاً >۱۱ دسیبل میلیوات) میتواند نشاندهنده تداخل یا مانع فیزیکی باشد، زیرا یک آنتن سیگنال بسیار قویتری نسبتبه آنتن دیگر دریافت میکند.
- تعویض آنتن و انتقال مجدد: گزارش تعداد دفعاتی را که کنترلکننده بین آنتنها جابهجا میشود و بستههای انتقال مجدد (ReTX) را ردیابی میکند، شمارش میکند. تعداد زیاد انتقال مجدد اغلب نشاندهنده اتصال ضعیف یا غیرقابل اعتماد است که نیاز به ارسال مجدد بستهها دارد.
- کیفیت کانال: این پارامترها خلاصه سطح بالایی از وضعیت کانالهای ارتباطی مختلف ارائه میدهند و آنها را براساس RSSI بهعنوان «خوب»، «متوسط»، «بد»، یا «بسیار بد» دستهبندی میکنند. این کار نمای کلی فوری از محیط RF ارائه میدهد.
- صف میانگیری TX: این بخش تعداد بستههای منتظر در میانگیر انتقال کنترلکننده را برای انواع مختلف پیوند، مانند ACL (پیوند منطقی اتصالگرای ناهمگام)، LECONN (اتصال LE)، و LEISOC (همزمان LE) پایش میکند. تعداد بالای میانگیر میتواند نشاندهنده گلوگاه یا مشکلی در جریان داده از میزبان به کنترلکننده باشد.
| پارامتر رویداد فرعی | اندازه | هدف |
|---|---|---|
Quality_Report_Id |
۱ هشتتایی | 0x09: آمار RF پیشرفته براساس راهانداز 0x0A: آمار RF پیشرفته براساس پایشگر |
Extension_info |
۱ هشتتایی | اطلاعات نسخه BQR. 0x01 برای BQRv6 0x02 برای BQRv7 |
Report_Time_Period |
۴ هشتتایی | دوره زمانی برای جمعآوری اطلاعات عملکرد. واحد: میلیثانیه |
TX_Power_iPA_BF |
۴ هشتتایی | شمارنده بسته iPA BF |
TX_Power_ePA_BF |
۴ هشتتایی | شمارنده بسته ePA BF |
TX_Power_iPA_Div |
۴ هشتتایی | شمارنده بسته ePA Div |
TX_Power_ePA_Div |
۴ هشتتایی | شمارنده بسته ePA Div |
RSSI_chain_50 |
۴ هشتتایی | شمارنده بسته زنجیره RSSI > -۵۰ دسیبل میلیوات |
RSSI_chain_50_55 |
۴ هشتتایی | تعداد بستههای زنجیره RSSI بین ۵۰- دسیبل میلیوات تا >۵۵- دسیبل میلیوات |
RSSI_chain_55_60 |
۴ هشتتایی | شمارنده بسته زنجیره RSSI بین ۵۵- دسیبل میلیوات تا ۶۰- دسیبل میلیوات |
RSSI_chain_60_65 |
۴ هشتتایی | شمارنده بسته زنجیره RSSI بین ۶۰- دسیبل میلیوات ~ >۶۵- دسیبل میلیوات |
RSSI_chain_65_70 |
۴ هشتتایی | شمارنده بسته زنجیره RSSI بین -۶۵ دسیبل میلیوات ~ >-۷۰ دسیبل میلیوات |
RSSI_chain_70_75 |
۴ هشتتایی | شمارنده بسته زنجیره RSSI بین ۷۰- دسیبل میلیوات ~ >۷۵- دسیبل میلیوات |
RSSI_chain_75_80 |
۴ هشتتایی | شمارنده بسته زنجیره RSSI بین -۷۵ دسیبل میلیوات ~ >-۸۰ دسیبل میلیوات |
RSSI_chain_80_85 |
۴ هشتتایی | شمارنده بسته زنجیره RSSI بین -۸۰ دسیبل میلیوات تا >-۸۵ دسیبل میلیوات |
RSSI_chain_85_90 |
۴ هشتتایی | شمارنده بسته زنجیره RSSI بین -۸۵ دسیبل میلیوات تا >-۹۰ دسیبل میلیوات |
RSSI_chain_90 |
۴ هشتتایی | شمارنده بسته زنجیره RSSI < -90 dBm |
RSSI_delta_2 |
۴ هشتتایی | شمارنده بسته RSSI delta < 2 dBm |
RSSI_delta_2_5 |
۴ هشتتایی | شمارنده بسته دلتای RSSI بین ۲ دسیبل میلیوات تا ۵ دسیبل میلیوات |
RSSI_delta_5_8 |
۴ هشتتایی | شمارنده بسته دلتای RSSI بین ۵ دسیبل میلیوات تا ۸ دسیبل میلیوات |
RSSI_delta_8_11 |
۴ هشتتایی | شمارنده بسته دلتای RSSI بین ۸ دسیبل میلیوات تا ۱۱ دسیبل میلیوات |
RSSI_delta_11 |
۴ هشتتایی | شمارنده بسته دلتای RSSI > 11 dBm |
Antenna_Switch_Count |
۴ هشتتایی | شمارنده بسته رویداد تعویض آنتن |
ReTX_iPA_BF |
۴ هشتتایی | شمارنده بسته ReTX_iPA_BF در آخرین دوره زمانی |
ReTX_ePA_BF |
۴ هشتتایی | شمارنده بسته ReTX_ePA_BF در آخرین دوره زمانی |
ReTX_iPA_Div |
۴ هشتتایی | شمارنده بسته ReTX_iPA_Div در آخرین دوره زمانی |
ReTX_ePA_Div |
۴ هشتتایی | شمارنده بسته ReTX_ePA_Div در آخرین دوره زمانی |
Channel_count_Good |
۱ هشتتایی | تعداد کانالهایی که RSSI آنها در «مخزن ۴» (>-۵۰) قرار میگیرد |
Channel_count_OK |
۱ هشتتایی | تعداد کانالهایی که RSSI آنها در محدوده Bin-3 (-76~-50) قرار دارد |
Channel_count_Bad |
۱ هشتتایی | تعداد کانالهایی که RSSI آنها در Bin-2 (-۹۰ تا -۷۶) قرار میگیرد |
Channel_count_VeryBad |
۱ هشتتایی | تعداد کانالهایی که RSSI آنها در Bin-1 قرار میگیرد (<-90) |
TX_buffer_Queue_Count |
۴ هشتتایی | شمارنده وضعیت صف میانگیر-میانگیر TX کنترلکننده در آخرین دوره زمانی [۰:۳] ACL_1 [۴:۷] ACL_2 [۸:۱۱] LECONN_1 [۱۲:۱۵] LECONN_2 [۱۶:۱۹] LEISOC_1 [۲۰:۲۳] LEISOC_2 [۲۴:۲۷] LEBroadcast [۲۸:۳۱] rsvd |
کد رویداد فرعی = 0x58 [Quality_Report_Id = 0x0B~0x0C، رویداد «پایش سلامت کنترلکننده»]
رویداد «پایش سلامت کنترلکننده بلوتوث» خلاصهای از وضعیت عملکرد کنترلکننده ارائه میدهد. این رویداد میتواند به دو روش راهاندازی شود:
- براساس راهانداز (0x09): گزارش یکبارهای در پاسخ به فرمان خاصی ارسال میشود.
- توسط «پایشگر» (0x0A): کنترلکننده گزارشها را بهصورت دورهای در فواصل زمانی مشخص ارسال میکند.
رویداد «پایش سلامت کنترلکننده بلوتوث» ابزاری تشخیصی است که خلاصهای از وضعیت عملیاتی کنترلکننده ارائه میدهد. این رویداد بخشی از چارچوب گزارش کیفیت بلوتوث (BQR) است و برای اشکالزدایی مشکلات اتصال، مدیریت مصرف برق، و زمانبندی استفاده میشود. میتواند بهعنوان گزارش یکباره یا بهصورت دورهای برای ارائه پایش مداوم ارسال شود.
سنجههای کلیدی و هدف آنها
- شمارندههای بسته HCI: این رویداد تعداد کل بستههای ارسالشده از میزبان به کنترلکننده و بالعکس را ردیابی میکند. این شمارندهها برای اشکالزدایی مشکلات مربوط به انتقال «میانای کنترلکننده میزبان» (HCI) ضروری هستند. انتقال «میانای کنترلکننده میزبان» کانال ارتباطی بین پشته نرمافزار و تراشه کنترلکننده بلوتوث است.
- طول بستهها: رویداد طول آخرین بسته HCI ارسالشده و دریافتشده را گزارش میکند. این کار کمک میکند تأیید شود که دادهها بهدرستی منتقل میشوند و هیچ مشکل غیرمنتظرهای در اندازه وجود ندارد.
- تعداد سیگنالهای بیدارباش: این گزارش شامل تعداد کل دفعاتی است که سنجاقهای BT_Wake و HOST_Wake تأیید شدهاند. این سیگنالهای فیزیکی برای مدیریت مصرف برق حیاتی هستند، زیرا برای بیدار کردن نهادهای مربوطه از حالتهای کممصرف استفاده میشوند. نظارت بر این تعداد به اشکالزدایی مشکلات مربوط به برق کمک میکند، مثل روشن شدن غیرمنتظره یا عدم ورود به حالت خواب.
- مُهرهای زمان: رویداد چندین مُهر زمان ارائه میدهد، ازجمله زمان آخرین سیگنال بیدار شدن و آخرین بازنشانی HCI. این مُهرهای زمان به عیبیابی مشکلات مربوط به زمانبندی کمک میکنند و نقطه مرجعی برای زمان وقوع رویدادهای خاص ارائه میدهند.
- زمانسنج ناظر: پرچم خاصی نشان میدهد که آیا رویداد بهعنوان هشدار زودهنگام تولید شده است که زمانسنج ناظر کنترلکننده درحال منقضی شدن است یا نه. این یک هشدار مهم برای خرابی یا ازکارافتادگی احتمالی کنترلکننده است.
- وضعیت پیوند: این گزارش وضعیت فعلی اتصالات فعال را خلاصه میکند، ازجمله تعداد کل پیوندهای BR/EDR، LE، و CIS (جاریسازی همزمان متصل). همچنین نشان میدهد که آیا پیوندهای SCO (اتصال همزمان گرا) فعال هستند یا نه. این اطلاعات نمایی کلی از بار اتصال فعلی کنترلکننده ارائه میدهد.
| پارامتر زیررویداد | اندازه | هدف |
|---|---|---|
Quality_Report_Id |
۱ هشتتایی | 0xB~0xC 0x0B: گزارشهای یکباره یا گزارشهایی که با رویداد راهاندازی میشوند 0x0C: گزارشهای دورهای. |
Packet_Count_Host_to_Controller |
۴ هشتتایی | تعداد کل بستههای ارسالی از «میزبان» به «کنترلکننده» ازطریق انتقال HCI. این فیلد برای اشکالزدایی مشکلات HCI (مثلاً UART) استفاده میشود. عملکرد: وقتی کنترلکننده بازنشانی HCI دریافت میکند، شمارندهها بازنشانی میشوند. |
Packet_Count_Controller_to_Host |
۴ هشتتایی | تعداد کل بستههای «رویداد HCI» ارسالشده به «میزبان». این فیلد برای اشکالزدایی مشکلات HCI (مثلاً UART) استفاده میشود. عملکرد: وقتی کنترلکننده بازنشانی HCI را دریافت میکند، شمارندهها بازنشانی میشوند. |
Last_Packet_Length_Host_to_Controller |
۲ هشتتایی | طول آخرین بسته HCI ارسالشده به Host UART. توجه: حداکثر طول بسته HCI ۲ اکتت (شامل HCI، ACL، SCO، ISO) |
Last_Packet_Length_Controller_To_host |
۲ هشتتایی | طول آخرین بسته HCI دریافتی از Host UART. توجه: حداکثر طول بسته HCI ۲ بایت (شامل HCI، ACL، SCO، ISO) |
Total_BT_Wake_Count |
۴ هشتتایی | تعداد کل ادعاهای سنجاق BT_Wake توسط نهاد میزبان. این فیلد بهعنوان ابزار عیبیابی برای اشکالزدایی مشکلات مربوط به برق عمل میکند. رفتار: وقتی کنترلکننده بازنشانی HCI را دریافت کرد، شمارندهها بازنشانی میشوند. |
Total_HOST_Wake_Count |
۴ هشتتایی | محاسبه تجمیعی ادعاهای سنجاق Host_Wake که توسط «کنترلکننده» آغاز شده است. این فیلد بهعنوان ابزار تشخیص خرابی برای اشکالزدایی مشکلات مربوط به برق عمل میکند. عملکرد: وقتی کنترلکننده بازنشانی HCI دریافت میکند، شمارندهها بازنشانی میشوند. |
Last_BT_Wake_TimeStamp |
۴ هشتتایی | آخرین مُهر زمان وقتی میزبان پین BT_Wake را تأیید کرد.این فیلد برای هدف اشکالزدایی مشکلات برق پیادهسازی شده است. |
Last_HOST_Wake_TimeStamp |
۴ هشتتایی | جدیدترین مُهر زمان وقتی که کنترلکننده پین Host_Wake را تأیید کرد. این فیلد برای اشکالزدایی مشکلات برق استفاده میشود. |
Reset_Timestamp |
۴ هشتتایی | مُهر زمانی که نشاندهنده تکمیل جدیدترین «بازنشانی HCI» است. این فیلد بهطور خاص برای تسهیل حلوفصل مشکلات مربوط به زمانبندی استفاده میشود. باید بهعنوان نقطه ضبط اولیه که همه موارد دیگر در مقایسه با آن ارجاع داده میشوند عمل کند. |
Current_Timestamp |
۴ هشتتایی | زمان کنونی که این رویداد تولید میشود. این فیلد برای هدف عیبیابی کردن اختلافهای زمانی استفاده میشود. باید بهعنوان نقطه ضبط محرک که همه عناصر دیگر به آن ارجاع میدهند عمل کند. |
Is_WatchDog_Timer_About_To_Expire |
۴ هشتتایی | پرچمی که نشان میدهد این رویداد وضعیت سلامت توسط کنترلکننده بهعنوان هشدار زودهنگام درباره انقضای «سگ نگهبان» تولید شده است. مُهر زمان فعلی برای نشان دادن زمان وقوع استفاده میشود. |
Coex_Status_Mask |
۲ هشتتایی | بیت ۰ - رزروشده |
Total_Links_BR_EDR_LE_Active |
۱ هشتتایی | تعداد کل پیوندهای BR/EDR/LE در وضعیت «فعال». |
Total_Links_BR_EDR_Sniff |
۱ هشتتایی | تعداد کل پیوند BR/EDR در حالت Sniff/Idle. |
Total_Links_CIS |
۱ هشتتایی | تعداد کل پیوند ISO. |
Is_SCO_Active |
۱ هشتتایی | نشانگر بررسی اینکه آیا پیوند SCO درحالحاضر فعال است یا نه. |
Subevent code = 0x58 [Quality_Report_Id = 0x11 ~ 0x13, Log Dump related event]
| پارامتر رویداد فرعی | اندازه | هدف |
|---|---|---|
Quality_Report_Id |
۱ هشتتایی |
0x00 ~ 0x10: رزروشده. 0x11: ردیابی پیام LMP/LL. 0x12: ردیابی زمانبندی چندپیوندی/همزیستی بلوتوث. 0x13: تخلیه دادههای «اطلاعات اشکالزدایی کنترلکننده». 0x14 ~ 0xFF: رزروشده. |
Connection_Handle |
۲ هشتتایی | دستگیره اتصال. |
| پارامتر مختص فروشنده | (Parameter Total Length - 4) * octets | قالب خاص فروشنده از ردیابی پیام LMP، ردیابی زمانبندی Bluetooth Multi-link/Coex و تخلیه دادههای «اطلاعات اشکالزدایی کنترلکننده». |
Subevent code = 0x58 [Quality_Report_Id = 0x16, LEA broadcast source event]
پارامترهای BIG Handle تا Timestamp به کنترلکننده امکان میدهند اطلاعات «منبع» همهفرستی را بهطور پیشکنشی گزارش کند، ازجمله BD_ADDR ارسالشده ازطریق هوا و نقشه کانال BIG که درحالحاضر استفاده میشود. پارامترهای Broadcast ID of Broadcast Receiver Subscribed تا RSSI برای گیرنده «پخش» درنظر گرفته شدهاند تا اطلاعات مربوط به منبع BIG مشترکشده را گزارش کند. این اطلاعات باید از گیرنده «همهفرستی» به منبع BIG ازطریق PAwR، اتصال LE ACL، یا روشهای ذیربط دیگر منتقل شود.
| پارامتر زیررویداد | اندازه | هدف |
|---|---|---|
Quality_Report_Id |
۱ هشتتایی | 0x16: رویداد منبع همهفرستی LEA. |
BIG_Handle |
۱ هشتتایی | دستور BIG اختصاصدادهشده توسط میزبان. |
Broadcast_Source_BD_ADDR_Type |
۱ هشتتایی | نوع BD_ADDR منبع همهفرستی (دستور BIG) که به هوا ارسال میشود. |
Broadcast_Source_BD_ADDR |
۶ هشتتایی | BD_ADDR منبع همهفرستی (دستور BIG) به هوا ارسال شد. |
BIG_Source_Prefer_Channel_Map |
۵ هشتتایی | نقشه کانال BIG که توسط کنترلکننده ترجیح داده میشود و توسط طبقهبندی کانال شناسایی میشود. |
BIG_Source_Used_Channel_Map |
۵ هشتتایی | کانال BIG که توسط کنترلکننده استفاده میشود. |
BIG_TX_Power |
۱ هشتتایی | توان انتقالی فعلی که در «شناسه همهفرستی» استفاده میشود. |
Timestamp |
۴ هشتتایی |
مُهر زمان (ساعت Piconet) برای «دستگیره بزرگ» مشخصشده. این مقدار باید با مقدار کنترلکننده در پاسخ به فرمان HCI_Read_Clock HCI با پارامتر Which_Clock از 0x01 (ساعت Piconet) یکسان باشد.واحد: N * ۰٫۳۱۲۵ میلیثانیه (۱ ساعت بلوتوث) |
Broadcast_ID_of_Broadcast_Receiver_Subscribed |
۳ هشتتایی |
شناسه پخش زنده مشترکشده دستگاه مشتری را نشان میدهد. مقدار نامعتبر: 0xFFFFFF |
Broadcast_Receiver_BD_ADDR_Type |
۱ هشتتایی |
نوع BD_ADDR گیرنده رویداد ثبتشده. مقدار نامعتبر: 0xFF |
Broadcast_Receiver_BD_ADDR |
۶ هشتتایی |
BD_ADDR گیرنده همهفرستی. مقدار نامعتبر: 0x000000000000 |
Time_Duration |
۴ هشتتایی |
مدت زمان جمعآوری اطلاعات عملکرد. واحد: میلیثانیه. مقدار نامعتبر: 0xFFFFFFFF |
BIS_Choppy_count |
۴ هشتتایی |
تعداد «مبهم بودن» BIS: تعداد «مبهم بودن» با Time_Duration. مقدار نامعتبر: 0xFFFFFFFF |
PER |
۴ هشتتایی |
نرخ خطای بسته (PER) در Time_Duration. مقدار نامعتبر: 0xFFFFFFFF |
No_Sync |
۴ هشتتایی |
تعداد دفعاتی که RX همگامسازی نشده است. مقدار نامعتبر: 0xFFFFFFFF |
Receiver_Prefer_Channel_Map |
۵ هشتتایی |
نقشه کانال گیرنده پخش را نشان میدهد. مقدار نامعتبر: 0x0000000000 |
Receiver_Tx_Power |
۱ هشتتایی |
سطح توانی را نشان میدهد که در آن بستهای حاوی داده از گیرنده پخش ارسال میشود. مقدار نامعتبر: 0xFF |
RSSI |
۱ هشتتایی |
RSSI بستههای دریافتی از گیرنده رویداد ثبتشده. مقدار نامعتبر: 0x7F |
Reserved |
۴ هشتتایی | رزروشده |
زیررویداد بازخورد پیوند ISO
کد رویداد فرعی = 0x5C
وقتی فعال شد، این رویداد باید درطول هر فاصله ISO تولید شود.
فعالسازی
فعالسازی با انتخاب کد فروشندهData_Path_ID
0x19 در فرمان استاندارد HCI_LE_Setup_ISO_Data_Path انجام میشود.
فرمان HCI_Configure_Data_Path با Data_Path_ID تنظیمشده روی
0x19 و Vendor_Specific_Config_Length تنظیمشده روی 0،
باید پذیرفته شود، حتی اگر انتظار نرود که کنترلکننده پساز دریافت این
فرمان کنشی انجام دهد.
نقطه زمانی اعزام
رویداد از ابتدای یک بازه ISO (نقطه لنگر CIG یا BIG) تا بازه ISO بعدی منتشر میشود. کنترلکننده تأخیر را با شروع مؤثر فاصله ISO بااستفاده ازAnchor_Point_Delay نشان میدهد.
همگامسازی کنترلکننده
در ابتدای یک بازه ISO، کنترلکننده با افزایش مقدار فعلی توسطISO_Interval ÷ SDU_Interval پیکربندیشده، StreamSN را محاسبه میکند؛ در بازه اول، این مقدار روی ۰ مقداردهی اولیه میشود.سپس، برای هر بسته در ISO FIFO، موارد زیر اعمال میشود:
-
کنترلکننده تفاوت بستهبندی SNdiff بین دو
شماره ترتیب را محاسبه میکند:
SNdiff = (SDUSN - StreamSN + 0x10000) mod 0x10000 - وقتی
(SNdiff + (FT-1) × ISO_Interval ÷ SDU_Interval) mod 0x10000 <= (FT-1) × ISO_Interval ÷ SDU_Interval:
بسته در پنجره بازارسال است. باید برای انتقال در فواصل قبلی زمانبندی شده باشد و اکنون برای انتقال مجدد دردسترس است. اگر اینطور نباشد (برای انتقال زمانبندی نشده باشد)، دیر دریافت شده است. این موضوع باید بااستفاده ازIn_Statusبه میزبان اطلاع داده شود. چنین بستههایی میتوانند دور ریخته شوند یا برای انتقال زمانبندی شوند؛ انتخاب با پیادهسازی تعریف میشود. - یا وقتی
SNdiff < ISO_Interval ÷ SDU_Interval:
بسته برای انتقال از این رویداد تا زمان وقوع مهلت شستشو زمانبندی میشود. - یا وقتی
SNdiff >= ISO_Interval ÷ SDU_IntervalوSNdiff <= Max_Forward_Buffers:
بسته در آینده است؛ با رویداد بعدی منتقل خواهد شد. ازآنجاییکه بستهها بهترتیب ارسال میشوند، این وضعیت جستجوی بستهها برای این بازه را پایان میدهد.
میانگیرهای استفادهشده توسط میزبان به کنترلکننده اعلام نمیشود، اما بهMax_Forward_Buffers = 16محدود میشود. - یا زمانی که هیچیک از شرایط بالا برآورده نشود:
بسته دور انداخته میشود، به حد مجاز مهلت زمانی تخلیه میرسد، یا بسته بدساختهای دریافت میشود.
| پارامتر زیررویداد | اندازه | هدف |
|---|---|---|
Connection_Handle |
۲ هشتتایی |
دستگیره اتصال CIS یا BIS محدوده: 0x0000 تا 0x0EFF |
Sequence_Number |
۲ هشتتایی |
شماره ترتیب جاریسازی که توسط کنترلکننده مدیریت میشود. وقتی CIS یا BIS ایجاد میشود، مقدار آن روی ۰ تنظیم میشود و بهاندازه تعداد SDU توسط فاصله همزمان ISO، که بهعنوان ISO_interval ÷ SDU_Interval تعریف شده است،
در هر فاصله ISO افزایش مییابد.
|
Anchor_Point_Delay |
۲ هشتتایی |
تأخیر برحسب میکروثانیه بین تولید رویداد و نقطه لنگر BIG یا CIG مؤثر یا شروع فاصله ISO.
مُهر زمان نقطه لنگر مؤثر با این مورد تعریف میشود:Event generation time - Anchor_Point_Delay
محدوده: ۰ تا فاصله ISO برحسب میکروثانیه |
In_Status |
۲ هشتتایی |
وضعیت میانگیر ISO کنترلکننده در شروع فاصله ISO، هر بیت bi وقتی SDU (Sequence_Number + i) mod 0x10000 دردسترس باشد تنظیم میشود. وقتی دردسترس نباشد، SDU
بهصورت Not received from the host شناسایی میشود.مقدار i از ۰ تا ISO_Interval ÷ SDU_Interval - 1 متغیر است.
برای مقادیر دیگر i، بیتها روی ۰ تنظیم میشوند.
|
Tx_Status |
۲ هشتتایی |
وضعیت انتقال، نسبت به واحدهای داده سرویس با شمارههای ترتیب:(Sequence_Number - Flush_Timeout × ISO_Interval ÷ SDU_Interval + i + 0x10000)
mod 0x10000
هر بیت bi زمانی تنظیم میشود که همه PDUهای SDU شناساییشده، با شماره ترتیب آن، باموفقیت ارسال و تأیید شده باشند. مقدار i از ۰ تا ISO_Interval ÷ SDU_Interval - 1 متغیر است.
برای مقادیر دیگر i، بیتها روی ۰ تنظیم میشوند.در گروه همهفرستی، انتقال همیشه باید تأیید شود. |
پشتیبانی از چند آگهیدهنده
اهداف پشتیبانی از چند آگهیدهنده به شرح زیر است:
-
امکان پشتیبانی از چندین تبلیغات
(
max_advt_instances) - قدرتهای انتقال متفاوت برای امکانپذیر کردن محدودههای مختلف
- محتوای تبلیغاتی متفاوت
- پاسخی شخصیسازیشده برای هر تبلیغکننده
- حریم خصوصی (غیرقابل ردیابی) برای هر تبلیغکننده
- اتصالپذیر
برای اینکه این مشخصات به استانداردهای موجود نزدیک باشد، فرمانهای زیر که مختص فروشنده است ارائه شده است. این مقادیر از «مشخصات اصلی بلوتوث نسخه ۴.۱» استخراج شدهاند.
LE_Multi_Advt_Command
OCF: 0x154
| پارامتر فرمان | اندازه | هدف |
|---|---|---|
Multi_advt_opcode |
۱ هشتتایی |
0x01 - Set_Advt_Param_Multi_Sub_Cmd0x02 - Set_Advt_Data_Multi_Sub_Cmd0x03 - Set_Scan_Resp_Data_Multi_Sub_Cmd0x04 - Set_Random_Addr_Multi_Sub_Cmd0x05 - Set_Advt_Enable_Multi_Sub_Cmd
|
رویداد «فرمان تکمیل شد» برای این فرمان ایجاد خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Multi_advt_opcode |
۱ هشتتایی |
0x01 - Set_Advt_Param_Multi_Command0x02 - Set_Advt_Data_Multi_Command0x03 - Set_Scan_Resp_Data_Multi_Command0x04 - Set_Random_Addr_Multi_Command0x05 - Set_Advt_Enable_Multi_Command
|
LE_Multi_Advt_Command: Set_Advt_Param_Multi_Sub_Cmd
مرجع پایه: مشخصات Bluetooth Core 4.1، صفحه ۹۶۴ (LE Set Advertising Parameter Command)
Sub 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 |
۱ هشتتایی | کاربرد پارامترهای بالا را برای نمونه مشخص میکند |
Tx_power |
۱ هشتتایی |
Transmit_Power واحد - در dBm (عدد صحیح علامتدار) محدوده (-۷۰ تا +۲۰) |
پارامتر Own_Address میتواند نشانی پیکربندیشده توسط میزبان
در زمان راهاندازی این نمونه چندآگهی باشد. این ویژگی امکان داشتن نشانی خصوصی قابلحل در زمان
انتقال اولین پیام راهنما را فراهم میکند. تبلیغات در یک نمونه بدون توجه به اتصال ادامه خواهد یافت. پشته میزبان BT میتواند فرمانی برای شروع تبلیغات در نمونه، پساز اتصال، صادر کند.
یک رویداد «تکمیل فرمان» برای این فرمان همانطور که در «مشخصات هسته بلوتوث ۴.۱» مشخص شده است، طبق فرمان بالا ایجاد خواهد شد. اگر نمونه تبلیغات یا پارامترهای Tx_Power نامعتبر باشند،
کنترلکننده با کد غیرموفق (پارامتر نامعتبر) پاسخ خواهد داد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Multi_advt_opcode |
۱ هشتتایی | 0x01 [Set_Advt_Param_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Advt_Data_Multi_Sub_Cmd
مرجع پایه: مشخصات اصلی بلوتوث ۴.۱، صفحه ۹۶۹ (دستور دادههای تبلیغاتی LE Set)
Sub OCF: 0x02
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
Advertising_Data_Length |
طبق مشخصات | طبق مشخصات |
Advertising_Data |
طبق مشخصات | طبق مشخصات |
Advertising_Instance |
۱ هشتتایی | قابلیت اعمال پارامترهای بالا را برای یک نمونه مشخص میکند |
رویداد «فرمان کامل» برای این فرمان طبق مشخصات Bluetooth Core 4.1، طبق فرمان بالا، تولید خواهد شد. اگر نمونه تبلیغات یا پارامترهای Tx_Power نامعتبر باشند،
کنترلکننده با کد غیرموفق پاسخ خواهد داد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Multi_advt_opcode |
۱ هشتتایی | 0x02 [Set_Advt_Data_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Scan_Resp_Data_Multi_Sub_Cmd
مرجع پایه: مشخصات اصلی بلوتوث ۴.۱، صفحه ۹۷۰ (دستور دادههای پاسخ «تنظیم اسکن کممصرف»)
Sub OCF: 0x03
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
Scan_Response_Data_Length |
طبق مشخصات | طبق مشخصات |
Scan_Response_Data |
طبق مشخصات | طبق مشخصات |
Advertising_Instance |
۱ هشتتایی | قابلیت اعمال پارامترهای بالا را برای یک نمونه مشخص میکند |
یک رویداد «تکمیل فرمان» برای این فرمان همانطور که در «مشخصات هسته بلوتوث ۴.۱» مشخص شده است، طبق فرمان بالا ایجاد خواهد شد. اگر نمونه تبلیغاتی یا پارامترهای Tx_Power نامعتبر باشند، کنترلکننده با کد ناموفق (پارامتر نامعتبر) پاسخ خواهد داد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Multi_advt_opcode |
۱ هشتتایی | 0x03 [Set_Scan_Resp_Data_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Random_Addr_Multi_Sub_Cmd
مرجع پایه: مشخصات اصلی بلوتوث ۴.۱، صفحه ۹۶۳ (دستور تنظیم نشانی تصادفی LE)
کد عملیات فرعی: 0x04
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
| نشانی تصادفی | طبق مشخصات | طبق مشخصات |
Advertising_Instance |
۱ هشتتایی | کاربرد پارامترهای بالا را برای نمونه مشخص میکند |
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Multi_advt_opcode |
۱ هشتتایی | 0x04 [Set_Random_Addr_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Advt_Enable_Multi_Sub_Cmd
مرجع پایه: مشخصات اصلی بلوتوث ۴.۱، صفحه ۹۷۱ (دستور فعال کردن تبلیغات LE در آن مشخصات اصلی)
OCF: 0x05
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
Advertising_Enable |
۱ هشتتایی | مقدار ۱ یعنی فعال کردن. هر مقدار دیگری بهمعنای غیرفعال کردن است. |
Advertising_Instance |
۱ هشتتایی | کاربرد پارامترهای بالا را برای نمونه مشخص میکند. نمونه ۰ بهمعنای نمونه HCI استاندارد است. |
رویداد «فرمان تکمیل شد» برای این فرمان ایجاد خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Multi_advt_opcode |
۱ هشتتایی | 0x05 [Set_Advt_Enable_Multi_Sub_Cmd] |
وضوح نشانی خصوصی بارگذاری شد
این ویژگی نشانی خصوصی را در سفتافزار یا سختافزار کنترلکننده حل میکند که مزایای زیر را ارائه میدهد:
- تأخیر مربوط به میزبان در حل کردن نشانی خصوصی
- صرفهجویی در مصرف برق با خودداری از بیدار کردن میزبان
LE_Set_RPA_Timeout
OCF: 0x15C
| پارامتر فرمان | اندازه | هدف |
|---|---|---|
LE_local_IRK |
۱۶ هشتتایی | IRK دستگاه محلی که برای تولید کردن نشانی(های) تصادفی قابلحل استفاده میشود. |
tRPA_min |
۲ هشتتایی |
حداقل زمان اتمام مهلت تولید RPA به ثانیه. کنترلکننده باید
برای هر رویداد تبلیغات/اسکن/اتصال در این
مهلت زمانی یا پساز آن، نشانیهای قابلحل جدید تولید کند. محدوده معتبر: ۳۰۰ تا ۱۸۰۰ |
tRPA_max |
۲ هشتتایی |
حداکثر زمان وقفه تولید RPA به ثانیه. کنترلکننده باید
برای هر رویداد تبلیغات/اسکن/اتصال در این
مهلت زمانی یا قبلاز آن، نشانیهای قابلحل جدیدی تولید کند. محدوده معتبر: tRPA_min-۱۸۰۰
|
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی |
وضعیت فرمان. مقادیر وضعیت HCI پیشنهادی: 0x00 موفقیتآمیز 0x01 فرمان ناشناخته (درصورت پشتیبانی نشدن) 0x12 پارامترهای فرمان نامعتبر (درصورتیکه هریک از پارامترها خارج از محدوده دادهشده باشد) |
LE_RPA_offload_Command
OCF: 0x155
| پارامتر فرمان | اندازه | هدف |
|---|---|---|
RPA_offload_opcode |
۱ هشتتایی |
0x1 - فعال کردن ویژگی خاص مشتری 0x2 - افزودن IRK به فهرست 0x3 - برداشتن IRK از فهرست 0x4 - پاک کردن فهرست IRK 0x5 - خواندن ورودی فهرست IRK |
رویداد «فرمان تکمیل شد» برای این فرمان ایجاد خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Event_RPA_offload_opcode |
۱ هشتتایی |
0x1 - فعال کردن ویژگی خاص مشتری 0x2 - افزودن IRK به فهرست 0x3 - برداشتن IRK از فهرست 0x4 - پاک کردن فهرست IRK 0x5 - خواندن ورودی فهرست IRK |
LE_RPA_offload: Enable_cust_specific_sub_Command
Sub OCF: 0x01
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
enable_customer_specific_feature_set |
۱ هشتتایی |
0x01 - فعال کردن ویژگی RPA بارگذاریشده 0x00 - غیرفعال کردن ویژگی RPA بارگذاریشده |
میزبان باید براساس قابلیت تراشه، بارگیری RPA را فعال کند. به LE_Get_Vendor_Capabilities_Command مراجعه کنید.
هر تراشه میتواند max_irk_list_sz متفاوتی در میانافزار داشته باشد.
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Event_cust_specific_feature_opcode |
۱ هشتتایی | 0x01 [فعال کردن ویژگی مختص مشتری] |
LE_RPA_offload: Add_IRK_to_list_sub_Command
Sub OCF: 0x02
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
LE_IRK |
۱۶ هشتتایی | LE IRK (1st byte LSB) |
Address_Type |
۱ هشتتایی |
0: نشانی عمومی 1: نشانی تصادفی |
LE_Device_Address |
۶ هشتتایی | نشانی عمومی یا تصادفی مرتبط با IRK (بایت اول LSB) |
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Event_cust_specific_feature_opcode |
۱ هشتتایی | 0x02 [افزودن IRK به فهرست] |
LE_IrkList_AvailableSpaces |
۱ هشتتایی | ورودیهای فهرست IRL دردسترس پساز عملیات فعلی |
LE_RPA_offload: Remove_IRK_to_list_sub_Command
Sub OCF: 0x03
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
Address_Type |
۱ هشتتایی |
0: نشانی عمومی 1: نشانی تصادفی |
LE_Device_Address |
۶ هشتتایی | نشانی عمومی یا تصادفی که به «ریال ایران» مرتبط باشد |
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Event_cust_specific_feature_opcode |
۱ هشتتایی | 0x03 [برداشتن IRK از فهرست] |
LE_IrkList_AvailableSpaces |
۱ هشتتایی | ورودیهای فهرست IRL دردسترس پساز عملیات فعلی |
LE_RPA_offload: Clear_IRK_list_sub_Command
کد عملیات فرعی: 0x04
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
| هیچکدام |
رویداد «فرمان تکمیل شد» برای این فرمان ایجاد خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Event_cust_specific_feature_opcode |
۱ هشتتایی | 0x04 [پاک کردن فهرست IRK] |
LE_IrkList_AvailableSpaces |
۱ هشتتایی |
ورودیهای فهرست IRL پساز عملیات کنونی دردسترس است [max_irk_list_sz]
|
LE_RPA_offload: Read_IRK_list_sub_Command
OCF فرعی: 0x05
| پارامتر زیرفرمان | اندازه | هدف |
|---|---|---|
LE_read_IRK_list_entry-index |
۱ هشتتایی | شاخص فهرست IRK [۰، max_irk_list_sz-1] |
رویداد «فرمان کامل» برای این فرمان تولید خواهد شد.
| پارامتر برگشتی | اندازه | هدف |
|---|---|---|
Status |
۱ هشتتایی | وضعیت «فرمان کامل» |
Event_cust_specific_feature_opcode |
۱ هشتتایی | 0x05 [خواندن ورودی فهرست IRK] |
LE_Read_IRK_List_entry |
۱ هشتتایی | شاخص IRK که میزبان میخواهد آن را بازخوانی کند (حداکثر اندازه فهرست IRK ۳۲ است) |
LE_IRK |
۱۶ هشتتایی | مقدار IRK |
Address_Type |
۱ هشتتایی |
0: نشانی عمومی 1: نشانی تصادفی |
LE_Device_Address |
۶ هشتتایی | نشانی عمومی یا تصادفی مرتبط با IRK |
LE_Resolved_Private_Address |
۶ هشتتایی | نشانی خصوصی قابلحل کنونی این IRK |
انتقال داده Sniff
ویژگی Sniff Offload مدیریت حالت Sniff را از پشته میزبان بلوتوث به کنترلکننده بلوتوث منتقل میکند. این امکان را به کنترلکننده میدهد که زمانبندی ورود/خروج از حالت Sniff را مدیریت کند و پارامترهای پیکربندی Sniff و Sniff sub-rating را اعمال کند، درحالیکه میزبان کنترل انتخاب پارامتر براساس تغییرات فعالیت نمایه Bluetooth را حفظ میکند.
وضعیتهای انتقال داده Sniff
این بخش وضعیتهای کنترلکننده بلوتوث را با درنظر گرفتن عملکرد «بارگیری خاموش کردن استراق سمع» تعریف میکند. دو وضعیت سراسری برای شناسایی وضعیت کنترلکننده بلوتوث با توجه به فعالسازی «بارگیری استراق سمع» تعریف شده است. دو وضعیت خاص اتصال برای شناسایی وضعیت اتصال BR/EDR وقتی کنترلکننده بلوتوث در وضعیت «فعال بودن تخلیه داده استراق سمع» باشد تعریف شده است.
ایالتهای جهانی
دو وضعیت سراسری برای شناسایی وضعیت کنترلکننده بلوتوث نسبت به فعالسازی «بارگیری استراق سمع» تعریف شده است.
وضعیت غیرفعال بودن انتقال داده Sniff
کنترلکننده بلوتوث بهطور پیشفرض در وضعیت «Sniff Offload Disabled» درنظر گرفته میشود. انتظار میرود که کنترلکننده بلوتوث فرمانهای HCI_Sniff_Mode، HCI_Exit_Sniff_Mode، و HCI_Sniff_Subrating صادرشده از میزبان بلوتوث را مدیریت کند. کنترلکننده بلوتوث باید رویدادهای HCI_Mode_Change و HCI_Sniff_Subrating را نیز طبق ماسک رویداد تنظیمشده توسط میزبان بلوتوث به میزبان بلوتوث بازارسال کند.
وضعیت فعال بودن «انتقال داده با استشمام»
کنترلکننده Bluetooth پساز اینکه «نوشتن فعالسازی Sniff Offload» را برای فعال کردن Sniff Offload باموفقیت مدیریت کرد، در وضعیت «Sniff Offload فعال» درنظر گرفته میشود. در این حالت، انتظار میرود کنترلکننده بلوتوث رویدادهای HCI_Mode_Change و HCI_Sniff_Subrating را به میزبان بلوتوث ارسال کند، همانطور که توسط تابع منطقی AND از ماسک رویداد تنظیمشده توسط میزبان بلوتوث و پرچمهای سرکوب رویداد تعیین شده است.
وضعیتهای خاص اتصال
وقتی کنترلکننده بلوتوث در وضعیت «Sniff Offload Enabled» (Sniff Offload فعال است) باشد، هر ACL فعال میتواند در یکی از دو وضعیت شرحدادهشده در زیر باشد.
معلقه-وضعیت پارامتر
وقتی کنترلکننده بلوتوث در وضعیت «بارگیری استراق سمع فعال» باشد، اما فرمان خاص فروشنده «WriteSniffOffloadParameters» حداقل یکبار توسط میزبان بلوتوث برای ACL فعلی صادر نشده باشد، ACL در وضعیت «درانتظار پارامترها» درنظر گرفته میشود.
وضعیت «کنترل-شروعشده»
وقتی کنترلکننده بلوتوث در حالت «بارگیری استراق سمع فعال» باشد و فرمان خاص فروشنده «WriteSniffOffloadParameters» حداقل یکبار توسط میزبان بلوتوث برای ACL فعلی صادر شده باشد، ACL در حالت «کنترل شروعشده» درنظر گرفته میشود.
WriteSniffOffloadEnable
OCF: 0x310
| پارامتر فرمان | اندازه | هدف |
|---|---|---|
Enable_Sniff_Offload |
۱ هشتتایی | 0x00 : غیرفعال کردن 0x01 : فعال کردن |
Subrating_Max_Latency |
۲ هشتتایی | از پارامتر «بیشینه تأخیر» برای محاسبه بیشینه نرخ فرعی استراق سمعی که دستگاه دور میتواند استفاده کند استفاده میشود. پیشفرض: T*sniff* Latency = N × ۰٫۶۲۵ میلیثانیه (۱ شکاف باند پایه) محدوده: ۰x0002 تا ۰xFFFE محدوده زمان: ۱٫۲۵ میلیثانیه تا ۴۰٫۹ ثانیه |
Subrating_Min_Remote_Timeout |
۲ هشتتایی | حداقل زمان اتمام حالت استراق سمع (T*sniff_mode_timeout*) که دستگاه راه دور میتواند استفاده کند پیشفرض: 0x0000 زمان اتمام = N × 0.625 میلیثانیه (۱ شکاف باند پایه) محدوده: 0x0000 تا 0xFFFE زمان محدوده: ۰ ثانیه تا ۴۰٫۹ ثانیه |
Subrating_Min_Local_Timeout |
۲ هشتتایی | حداقل زمان اتمام حالت استراق سمع (*Tsniff_mode_timeout*) که دستگاه محلی ممکن است استفاده کند. پیشفرض: 0x0000 زمان اتمام = N × 0.625 میلیثانیه (۱ شکاف باند پایه) محدوده: 0x0000 تا 0xFFFE محدوده زمانی: ۰ ثانیه تا ۴۰٫۹ ثانیه |
Suppress_Mode_Change_Event |
۱ هشتتایی | 0x00 : کنترلکننده بلوتوث باید رویداد HCI Mode_Change را به میزبان گزارش دهد،
مشروط به پیکربندی تنظیمشده در فرمان HCI_Set_Event_Mask. 0x01 : کنترلکننده بلوتوث نباید رویداد HCI Mode_Change را به میزبان گزارش دهد. |
Suppress_Sniff_Subrating_Event |
۱ هشتتایی | 0x00 : کنترلکننده بلوتوث باید رویداد HCI Sniff_Subrating را به میزبان گزارش دهد
مشروط به پیکربندی تنظیمشده در فرمان HCI_Set_Event_Mask. 0x01 : کنترلکننده بلوتوث نباید رویداد HCI Sniff_Subrating را به میزبان گزارش دهد. |
WriteSniffOffloadParameters
OCF: 0x311
| پارامتر فرمان | اندازه | هدف |
|---|---|---|
Connection_Handle |
۲ هشتتایی | دستگیره اتصال ACL BR/EDR ۱۶ بیتی. محدوده: 0x0000 تا 0x0EFF |
Sniff_Max_Interval |
۲ هشتتایی | –محدوده تعریفشده Bluetooth SIG، معمولاً برای ورود به حالت Sniff استفاده میشود. محدوده: 0x0002 تا 0xFFFE؛ فقط مقادیر زوج معتبر است محدوده اجباری: 0x0006 تا 0x0540 زمان = N × 0.625 میلیثانیه محدوده زمان: ۱٫۲۵ میلیثانیه تا ۴۰٫۹ ثانیه – موارد ویژه 0x0000 : برای انتخاب «فشار-فعال» حالت «استشمام-تخلیه» استفاده میشود. 0x0001 : برای انتخاب حالت «ترجیحاً فعال» Sniff-Offload استفاده میشود. |
Sniff_Min_Interval |
۲ هشتتایی | محدوده: 0x0002 تا 0xFFFE؛ فقط مقادیر زوج معتبر هستند محدوده اجباری: 0x0006 تا 0x0540 زمان = N × 0.625 میلیثانیه محدوده زمان: ۱٫۲۵ میلیثانیه تا ۴۰٫۹ ثانیه |
Sniff_Attempts |
۲ هشتتایی | تعداد جایگاههای دریافت «باند پایه» برای تلاش استراق سمع. طول = N × ۱٫۲۵ میلیثانیه محدوده: ۰x0001 تا 0x7FFF محدوده زمان: ۱٫۲۵ میلیثانیه تا ۴۰٫۹ ثانیه محدوده اجباری برای کنترلکننده: ۱ تا T*sniff* ÷ ۲ |
Sniff_Timeout |
۲ هشتتایی | تعداد شکافهای دریافت باند پایه برای زمان استراحت بو کشیدن. طول = N × ۱٫۲۵ میلیثانیه محدوده: 0x0000 تا 0x7FFF محدوده زمانی: ۰ میلیثانیه تا ۴۰٫۹ ثانیه محدوده اجباری برای کنترلکننده: ۰ تا 0x0028 |
Link_Inactivity_Timeout |
۲ هشتتایی | مقدار مهلت زمانی برحسب میلیثانیه. «زمانسنج عدم فعالیت» در هر تراکنش HCI-ACL شروع/بازنشانی میشود. پساز پایان این زمانسنج، کنترلکننده باید ورود به حالت Sniff را آغاز کند. |
Subrating_Max_Latency |
۲ هشتتایی | از پارامتر «بیشینه تأخیر» برای محاسبه بیشینه نرخ فرعی استراق سمعی که دستگاه دور میتواند استفاده کند استفاده میشود. پیشفرض: T*sniff* Latency = N × ۰٫۶۲۵ میلیثانیه (۱ شکاف باند پایه) محدوده: ۰x0002 تا ۰xFFFE محدوده زمان: ۱٫۲۵ میلیثانیه تا ۴۰٫۹ ثانیه |
Subrating_Min_Remote_Timeout |
۲ هشتتایی | حداقل زمان اتمام حالت استراق سمع (T*sniff_mode_timeout*) که دستگاه راه دور میتواند استفاده کند پیشفرض: 0x0000 زمان اتمام = N × 0.625 میلیثانیه (۱ شکاف باند پایه) محدوده: 0x0000 تا 0xFFFE زمان محدوده: ۰ ثانیه تا ۴۰٫۹ ثانیه |
Subrating_Min_Local_Timeout |
۲ هشتتایی | حداقل زمان اتمام حالت استراق سمع (*Tsniff_mode_timeout*) که دستگاه محلی ممکن است استفاده کند. پیشفرض: 0x0000 زمان اتمام = N × 0.625 میلیثانیه (۱ شکاف باند پایه) محدوده: 0x0000 تا 0xFFFE محدوده زمانی: ۰ ثانیه تا ۴۰٫۹ ثانیه |
Allow_Exit_Sniff_On_Rx |
۱ هشتتایی | پرچم برای کنترل خروج از حالت «استراق سمع» در تراکنش HCI-ACL دریافت-جهت. 0x00 : Do not exit sniff on Rx. 0x01 : Exit Sniff on Rx Receive-direction HCI-ACL is defined as ACL packet transmission from controller to host over HCI. |
Allow_Exit_Sniff_On_Tx |
۱ هشتتایی | پرچم برای کنترل خروج از حالت Sniff در تراکنش HCI-ACL جهت ارسال. 0x00 : در انتقال از حالت استراق سمع خارج نشود. 0x01 : Exit Sniff on Tx Transmit-direction HCI-ACL is defined as ACL packet transmission from host to controller over HCI. |