HCI की ज़रूरी शर्तें

होस्ट कंट्रोलर इंटरफ़ेस (एचसीआई) का इस्तेमाल ब्लूटूथ कंट्रोलर से इंटरैक्ट करने के लिए किया जाता है.

इस दस्तावेज़ में ब्लूटूथ (बीटी) और ब्लूटूथ कम ऊर्जा (बीएलई) वाले एचसीआई के लिए तय की गई ज़रूरी शर्तों की सूची दी गई है. इसका मकसद, होस्ट बीटी स्टैक वेंडर और बीटी कंट्रोलर के वेंडर के लिए, प्लैटफ़ॉर्म की इन ज़रूरी शर्तों को पूरा करना है. इन शर्तों को पूरा करने के बाद ही, यहां बताई गई सुविधा के सेट का इस्तेमाल किया जा सकता है.

यह दस्तावेज़, ब्लूटूथ कोर 5.2 स्पेसिफ़िकेशन के बारे में "खास जानकारी" के तौर पर बताता है. ब्लूटूथ Core 5.2 की खास जानकारी, ब्लूटूथ एसआईजी की वेबसाइट पर उपलब्ध है. साथ ही, यह जानकारी स्वीकार किए गए अन्य दस्तावेज़ों पर भी उपलब्ध है.

सामान्य डिज़ाइन से जुड़ी खास जानकारी

चिप की सुविधाएं और कॉन्फ़िगरेशन

Android पर कई तरह के सॉफ़्टवेयर रिलीज़, OEM, वेंडर, और प्लैटफ़ॉर्म और चिप की सुविधाएं उपलब्ध हैं. यह प्लैटफ़ॉर्म सभी के लिए उपलब्ध है.

इस दस्तावेज़ में, अलग-अलग लैंडस्केप को मैनेज करने और माइग्रेशन को मैनेज करने के लिए, ब्लूटूथ कंट्रोलर की सुविधाओं को दिखाने की अनुमति दी गई है. इसके डिज़ाइन में, ब्लूटूथ कोर 5.2 की स्टैंडर्ड सुविधाओं के अलावा दूसरी सुविधाएं भी दी गई हैं. इसके बाद, होस्ट BT स्टैक, इन क्षमताओं का इस्तेमाल करके यह तय कर सकता है कि किन सुविधाओं को चालू करना है.

ओपन स्टैंडर्ड का समर्थन करना

Android का एक मकसद ब्लूटूथ स्पेसिफ़िकेशन में पुष्टि होने के बाद ओपन स्टैंडर्ड का इस्तेमाल करना है. अगर नीचे दी गई कोई सुविधा, आने वाले समय में ब्लूटूथ के लिए स्टैंडर्ड एचसीआई तरीकों में उपलब्ध कराई जाएगी, तो हम उस सुविधा को डिफ़ॉल्ट के तौर पर सेट करेंगे.

वेंडर के हिसाब से मिलने वाली सुविधाएं

वेंडर के लिए निर्देश: LE_Get_Vendor_Capabilities_Command

OpCode कमांड फ़ील्ड (ओसीएफ़): 0x153

कमांड पैरामीटर साइज़ मकसद
NA निर्देश पैरामीटर की सूची में कोई जानकारी नहीं है

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
max_advt_instances
(अब काम नहीं करता)
1 ऑक्टेट समर्थित विज्ञापन इंस्टेंस की संख्या.

v0.98 के बाद रिज़र्व किया गया.
Google की सुविधा के वर्शन v0.98 में, इस पैरामीटर को अब इस्तेमाल नहीं किया गया है. साथ ही, इससे बाद के वर्शन में, LE Extended Advertising की सुविधा दी गई है, जो BT स्पेसिफ़िकेशन के 5.0 और इसके बाद वाले वर्शन में उपलब्ध है.
offloaded_resolution_of_private-address
(अब काम नहीं करता)
1 ऑक्टेट आरपीए की ब्लूटूथ चिप की सुविधा.
अगर चिप काम करता है, तो इसे होस्ट से चालू करना होगा.
0 = उपलब्ध नहीं है
1 = सक्षम

v0.98 के बाद रिज़र्व किया गया.
यह पैरामीटर, Google की सुविधा के वर्शन v0.98 में उपलब्ध नहीं है. इसके बाद के वर्शन में, ब्लूटूथ स्पेसिफ़िकेशन के 4.2 और इसके बाद के वर्शन में मौजूद निजता की सुविधा को ध्यान में रखा गया है.
total_scan_results_storage 2 ऑक्टेट स्कैन के नतीजों को बाइट में सेव करने के लिए स्टोरेज
max_irk_list_sz 1 ऑक्टेट फ़र्मवेयर में इस्तेमाल की जा सकने वाली आईआरके एंट्री की संख्या
filtering_support 1 ऑक्टेट कंट्रोलर में फ़िल्टर करने की सुविधा
0 = काम नहीं करती
1 = काम करती है
max_filter 1 ऑक्टेट इस्तेमाल किए जा सकने वाले फ़िल्टर की संख्या
activity_energy_info_support 1 ऑक्टेट गतिविधि और ऊर्जा की जानकारी के बारे में रिपोर्ट करने की सुविधा मिलती है
0 = उपलब्ध नहीं है
1 = सक्षम
version_supported 2 ऑक्टेट इससे पता चलता है कि Google की कौन-कौनसी सुविधाएं इस्तेमाल की जा सकती हैं
बाइट[0] = बड़ी संख्या
बाइट[1] = छोटी संख्या

v1.04
बाइट[0] = 0x01
बाइट[1] = 0x04
total_num_of_advt_tracked 2 ऑक्टेट विज्ञापन देने वाले ऐसे लोगों की कुल संख्या जिन्हें OnLost/OnFound के लिए ट्रैक किया गया
extended_scan_support 1 ऑक्टेट एक्सटेंडेड स्कैन विंडो और इंटरवल के साथ काम करता है
debug_logging_supported 1 ऑक्टेट कंट्रोलर से बाइनरी डीबग की जानकारी को लॉग करने की सुविधा मिलती है
LE_address_generation_offloading_support
(अब काम नहीं करता)
1 ऑक्टेट 0 = मौजूद नहीं है
1 = इस्तेमाल किया जा सकता है

v0.98 के बाद रिज़र्व किया गया.
यह पैरामीटर, Google की सुविधा के वर्शन v0.98 में उपलब्ध नहीं है. इसके बाद के वर्शन में, ब्लूटूथ स्पेसिफ़िकेशन के 4.2 और इसके बाद के वर्शन में मौजूद निजता की सुविधा को ध्यान में रखा गया है.
A2DP_source_offload_capability_mask 4 अक्टूबर काम करने वाले कोडेक टाइप के लिए बिट मास्क
Bit 0 - SBC
Bit 1 - AAC
Bit 2 - APTX
Bit 3 - APTX HD
बिट 4 - LDAC
बिट 5-31 रिज़र्व हैं
bluetooth_quality_report_support 1 ऑक्टेट ब्लूटूथ की क्वालिटी से जुड़े इवेंट की जानकारी देने की सुविधा काम करती है
0 = सुविधा नहीं है
1 = सुविधा उपलब्ध है
dynamic_audio_buffer_support 4 ऑक्टेट ब्लूटूथ कंट्रोलर में डाइनैमिक ऑडियो बफ़र के साथ काम करता है
कोडेक टाइप के लिए बिट मास्क काम करते हैं
Bit 0 - SBC
Bit 1 - AAC
Bit 2 - APTX
Bit 3 - APTX HD
बिट 4 - LDAC
5-31 रिज़र्व हैं
a2dp_offload_v2_support 1 ऑक्टेट ब्लूटूथ कंट्रोलर में A2dp Offload v2 के निर्देशों के साथ काम करता है (A2DP ऑफ़लोड शुरू करना, A2DP ऑफ़लोड रोकें देखें)
0 = काम नहीं करता
1 = काम करता है

स्कैन के नतीजों को एक साथ प्रोसेस करना

डिज़ाइन का मकसद, ब्लूटूथ LE स्कैन रिस्पॉन्स इवेंट की सूचनाओं को होस्ट तक पहुंचाने के तरीके को बेहतर बनाना है, ताकि होस्ट में पावर की बचत की जा सके.

कंट्रोलर, होस्ट ऐप्लिकेशन प्रोसेसर को नतीजों को स्कैन करने के लिए कितनी बार सूचना देता है, इसे कम करके, होस्ट ऐप्लिकेशन प्रोसेसर कुछ समय के लिए इस्तेमाल में न रह सकता है या ज़्यादा देर तक सो सकता है. इससे होस्ट में बिजली की खपत कम हो जाती है. LE_Get_Vendor_Capabilities_Command का रिटर्न पैरामीटर total_scan_results_storage, स्कैन के नतीजों को सेव करने के लिए चिप की क्षमता के बारे में बताता है.

यह सुविधा, ब्लूटूथ कंट्रोलर में LE स्कैन के नतीजों की स्टोरेज सुविधा को मैनेज और कॉन्फ़िगर करती है. इस स्टोरेज का इस्तेमाल, विज्ञापन के डेटा को कुछ समय के लिए बैच बनाने और उस डेटा और मेटाडेटा को स्कैन करने के लिए किया जाता है जो कंट्रोलर को बाद में होस्ट को डिलीवर करने के लिए मिलता है.

फ़र्मवेयर में दो तरह के बैच बनाने की सुविधा होगी, जिन्हें एक साथ जोड़ा जा सकता है:

  • काटे-छांटे गए. इसमें जानकारी से जुड़े ये एलिमेंट शामिल होते हैं: {MAC, TX Power, आरएसएसI, timestamp}
  • फ़ुल. इसमें जानकारी से जुड़े ये एलिमेंट शामिल होते हैं: {MAC, TX Power, आरएसएसI, timestamp, Adv Data, Scan Response}

LE_Batch_Scan_Command

ओसीएफ़: 0x156

कमांड पैरामीटर साइज़ मकसद
Batch_Scan_opcode 1 ऑक्टेट 0x1 - ग्राहक के लिए खास सुविधा चालू करें
0x2 - बैच स्कैन स्टोरेज पैरामीटर सेट करें
0x3 - बैच स्कैन के पैरामीटर सेट करें
0x4 - बैच स्कैन के नतीजे के पैरामीटर पढ़ें

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा. खास तौर पर ग्राहकों के लिए बनाई गई सुविधा चालू करने से, स्कैन शुरू नहीं होता.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Batch_Scan_opcode 1 ऑक्टेट 0x1 - ग्राहक के लिए खास सुविधा चालू करें
0x2 - बैच स्कैन स्टोरेज पैरामीटर सेट करें
0x3 - बैच स्कैन के पैरामीटर सेट करें
0x4 - बैच स्कैन के नतीजे के पैरामीटर पढ़ें

LE_Batch_Scan_Command: ग्राहक के लिए खास सुविधा चालू करें

सब ओसीएफ़: 0x01

सब-कमांड पैरामीटर साइज़ मकसद
enable_customer_specific_feature_set 1 ऑक्टेट 0x01 - बैच स्कैन की सुविधा चालू करें
0x00 - बैच स्कैन की सुविधा बंद करें

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Batch_Scan_opcode 1 ऑक्टेट 0x1 - ग्राहक के लिए खास सुविधा चालू करें
0x2 - बैच स्कैन स्टोरेज पैरामीटर सेट करें
0x3 - बैच स्कैन के पैरामीटर सेट करें
0x4 - बैच स्कैन के नतीजे के पैरामीटर पढ़ें

LE_Batch_Scan_Command: बैच स्कैन स्टोरेज पैराम सबकमांड सेट करें

सब ओसीएफ़: 0x02

सब-कमांड पैरामीटर साइज़ मकसद
Batch_Scan_Full_Max 1 ऑक्टेट फ़ुल स्टाइल के लिए तय की गई ज़्यादा से ज़्यादा स्टोरेज (% में)
[रेंज: 0-100]
Batch_Scan_Truncated_Max 1 ऑक्टेट छोटी की गई स्टाइल के हिसाब से, ज़्यादा से ज़्यादा स्टोरेज (% में)
[रेंज: 0-100]
Batch_Scan_Notify_Threshold 1 ऑक्टेट निजी स्टोरेज पूल के लिए सूचना का लेवल (% में) सेटअप करें
[Range: 0-100]
अगर सेटिंग को 0 पर सेट किया जाता है, तो सूचना बंद हो जाएगी. वेंडर के लिए खास HCI इवेंट जनरेट हुआ (स्टोरेज थ्रेशोल्ड के उल्लंघन से जुड़ा सबइवेंट)

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Batch_scan_opcode 1 ऑक्टेट 0x02 [बैच स्कैन के पैरामीटर सेट करें]

LE_Batch_Scan_Command: बैच स्कैन पैरामीटर सबकमांड सेट करें

सब ओसीएफ़: 0x03

सब-कमांड पैरामीटर साइज़ मकसद
Batch_Scan_Mode 1 ऑक्टेट 0x00 – बैच स्कैन की सुविधा बंद है
0x01 – काट-छांट करने वाला मोड चालू है
0x02 – पूरा मोड चालू है
0x03 – छोटा किया गया और पूरा मोड चालू है
Duty_cycle_scan_window 4 ऑक्टेट बैच स्कैन स्कैन का समय (# स्लॉट)
Duty_cyle_scan_interval 4 ऑक्टेट बैच स्कैन अंतराल अवधि (# स्लॉट)
own_address_type 1 ऑक्टेट 0x00 - सार्वजनिक डिवाइस का पता
0x01 - किसी भी डिवाइस का पता
Batch_scan_Discard_Rule 1 ऑक्टेट 0 - सबसे पुराना विज्ञापन खारिज करें
1 - सबसे कमज़ोर आरएसएसआई वाले विज्ञापन को खारिज करें

यह सब-कमांड, चालू होने पर बैच स्कैन करना शुरू कर देगा. छोटी की गई स्कैनिंग में, नतीजे छोटे किए गए फ़ॉर्मैट में सेव किए जाते हैं. इसमें काट-छांट की गई स्टाइल = {BD_ADDR, Scan_interval} की यूनीक कुंजी होती है. इसका मतलब है कि हर स्कैन इंटरवल के लिए सिर्फ़ एक BD_ADDR will रिकॉर्ड किया जाएगा. काटे-छांटे गए मोड के लिए इन चीज़ों का रिकॉर्ड रखा जाना चाहिए: {BD_ADDR, Tx Power, आरएसएसI, timestamp}

फ़ुल मोड चालू होने पर, स्कैन करने की सुविधा का इस्तेमाल किया जाएगा. साथ ही, स्कैन किए गए जवाबों को रिकॉर्ड किया जाएगा. पूरी स्टाइल वाली यूनीक कुंजी = {MAC, विज्ञापन पैकेट}, भले ही, स्कैन में कितना समय लिया गया हो. फ़ुल मोड के लिए रिकॉर्ड किया जाने वाला डेटा यह है: {BD_ADDR, Tx Power, आरएसएसI, timestamp, Ad खुदरा, Scan Response}. फ़ुल स्टाइल में, अलग-अलग स्कैन इंटरवल में कई बार देखे जाने पर एक ही विज्ञापन पैकेट को सिर्फ़ एक बार रिकॉर्ड किया जाता है. हालांकि, काटे-छांटे गए मोड में, यह अपनी पसंद के अलग-अलग स्कैन इंटरवल में BA_ADDR को दिखाता है (हर स्कैन इंटरवल में एक बार). आरएसएसआई, एक स्कैन इंटरवल में किसी यूनीक विज्ञापन के सभी डुप्लीकेट की औसत वैल्यू है.

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Batch_scan_opcode 1 ऑक्टेट 0x03 [बैच स्कैन के पैरामीटर सेट करें]

LE_Batch_Scan_Command: बैच स्कैन के नतीजे सब-कमांड पढ़ें

सब ओसीएफ़: 0x04

सब-कमांड पैरामीटर साइज़ मकसद
Batch_Scan_Data_read 1 ऑक्टेट 0x01 – काट-छांट करने वाले मोड का डेटा
0x02 – फ़ुल मोड का डेटा

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा. जब होस्ट यह निर्देश देता है, तो हो सकता है कि कंट्रोलर के सभी नतीजे एक Commandपूरा इवेंट में फ़िट न हों. होस्ट इस निर्देश को तब तक जारी रखेगा, जब तक Command Complete इवेंट में इससे जुड़े नतीजों के रिकॉर्ड में, रिकॉर्ड की संख्या में 0 नहीं दिखता. इससे पता चलता है कि कंट्रोलर के पास होस्ट से संपर्क करने के लिए, कोई और रिकॉर्ड नहीं है. हर Command Complete इवेंट में सिर्फ़ एक ही तरह के डेटा (पूरा या छोटा किया गया) के कई रिकॉर्ड हो सकते हैं.

नियंत्रक और होस्ट समय के संदर्भ सिंक नहीं किए गए हैं. टाइमस्टैंप की यूनिट 50 मि॰से॰ है. टाइमस्टैंप की वैल्यू, होस्ट की ओर से दिए गए Read_Batch_Scan_Results_Sub_cmd के हिसाब से तय होती है. अगर फ़र्मवेयर में, कमांड के पहुंचने का समय T_c है, तो फ़र्मवेयर में टाइमस्टैंप लिए जाने का असल समय T_fw होगा. रिपोर्टिंग का समय: (T_c - T_fw) होगा. T_c और T_fw , फ़र्मवेयर टाइम डोमेन में हैं. इससे होस्ट यह पता लगाता है कि इवेंट कितनी देर पहले हुआ था.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Batch_scan_opcode 1 ऑक्टेट 0x03 [बैच स्कैन के पैरामीटर सेट करें]
Batch_Scan_data_read 1 ऑक्टेट फ़ॉर्मैट (काट-छांट की गई या फ़ुल) की पहचान करता है
num_of_records 1 ऑक्टेट Batch_Scan_data_read के रिकॉर्ड की संख्या
format_of_data बिटरेट के विकल्प Truncated मोड:
पता[0]: 6 octets
noctet:
octets
Address_Type[0]: 1 octet
Tx_Pwr[0]: 1 octet
टाइमस्टैंप[0]: 1 ऑक्टेट
टाइमस्टैंप[0]: ऊपर दिए गए फ़ॉर्मैट के साथ 2 octets
[octet: 2 octets]

[







num_of_recordsnum_of_recordsScan_data_resp

विज्ञापन पैकेट कॉन्टेंट का फ़िल्टर

कंट्रोलर में विज्ञापन पैकेट कॉन्टेंट फ़िल्टर (एपीसीएफ़) को चालू/बंद करने/सेट अप करने के लिए, इसका इस्तेमाल करें. APCF, कंट्रोलर में विज्ञापन की रिपोर्ट फ़िल्टर करता है, लेकिन समय-समय पर दिखने वाले विज्ञापनों को फ़िल्टर नहीं करता.

LE_APCF_कमांड

ओसीएफ़: 0x157

कमांड पैरामीटर साइज़ मकसद
APCF_opcode 1 ऑक्टेट 0x00 - APCF चालू करें
0x01122012 और इस कोड से आने वाले समय के लिए डेटा को फ़िल्टर करने वाले APCF - एफ़पीसी 0112












इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट सामान लौटाने की स्थिति
APCF_opcode 1 ऑक्टेट 0x00 - APCF चालू करें
0x01122012 और इस कोड से आने वाले समय के लिए डेटा को फ़िल्टर करने वाले APCF - एफ़पीसी 0112












LE_APCF_Command: enabled_sub_cmd

सब ओसीएफ़: 0x00

सब-कमांड पैरामीटर साइज़ मकसद
APCF_enable 1 ऑक्टेट 0x01 - APCF सुविधा चालू करें
0x00 - APCF सुविधा बंद करें

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
APCF_opcode 1 ऑक्टेट 0x0 - APCF चालू करें
APCF_Enable 1 ऑक्टेट चालू/बंद करने की सुविधा APCF_enable के ज़रिए सेट की गई है

LE_APCF_Command: set_filtering_parameters_sub_cmd

इस सबकमांड का इस्तेमाल, किसी फ़िल्टर की खास जानकारी जोड़ने, मिटाने या ऑन-चिप फ़िल्टर करने के लिए, फ़िल्टर की सूची को हटाने के लिए किया जाता है.

सब ओसीएफ़: 0x01

सब-कमांड पैरामीटर साइज़ मकसद
APCF_Action 1 ऑक्टेट 0x00 - जोड़ें
0x01 - मिटाएं
0x02 - मिटाएं
मिटाएं से किसी फ़िल्टर को हटा दिया जाएगा. साथ ही, उससे जुड़ी सुविधाओं की एंट्री भी हटा दी जाएंगी.
'हटाएं' चुनने पर, अन्य टेबल में मौजूद सभी फ़िल्टर और उनसे जुड़ी एंट्री हट जाएंगी.
APCF_Filter_Index 1 ऑक्टेट फ़िल्टर इंडेक्स (0, max_filter-1)
APCF_Feature_Selection 2 ऑक्टेट चुनी गई सुविधाओं के लिए बिट मास्क:
बिट 0: ब्रॉडकास्ट अड्रेस फ़िल्टर को चालू करने के लिए सेट करें
बिट 1: सेवा के डेटा में बदलाव करने वाले फ़िल्टर को चालू करने के लिए सेट करें
बिट 2: सेवा के यूयूआईडी बिट चेक को चालू करने के लिए सेट करें
बिट 3: सेवा अनुरोध को चालू करने के लिए सेट करें
बिट 4: लोकल नाम की जांच चालू करने के लिए सेट करें: 7 बिट 5: सेवा के डेटा की जांच करने की सुविधा चालू करने के लिए सेट करें 6 बिट 5: सेवा के डेटा की जांच करने की सुविधा चालू करने के लिए सेट करें
6


APCF_List_Logic_Type 2 ऑक्टेट APCF_Feature_Selection में बताई गई हर सुविधा (हर बिट स्थिति) के लिए लॉजिक ऑपरेशन.
ऑफ़र, सुविधा चालू होने पर ही मान्य होगा.
बिट की पोज़िशन की वैल्यू:
0: या
1: AND
अगर "AND" लॉजिक चुना गया है, तो ADV पैकेट सिर्फ़ तब फ़िल्टर पास करेगा, जब उसमें सूची की सभी एंट्री शामिल होंगी.
अगर "OR" लॉजिक चुना गया है, तो ADV पैकेट, फ़िल्टर को पास कर देता है. हालांकि, ऐसा सिर्फ़ तब होता है, जब सूची में मौजूद कोई भी एंट्री शामिल हो.
APCF_Filter_Logic_Type 1 ऑक्टेट 0x00: या
0x01: AND
ध्यान दें: APCF_Feature_Selection के पहले तीन फ़ील्ड के लिए, लॉजिक का टाइप लागू नहीं है. यह हमेशा "AND" लॉजिक होता है. ये APCF_Feature_Selection के सिर्फ़ (बिट 3 - बिट 6) चार फ़ील्ड के लिए लागू होते हैं.
rssi_high_thresh 1 ऑक्टेट [in dBm]
विज्ञापन देने वाले को सिर्फ़ तब माना जाता है, जब सिग्नल आरएसएसआई के हाई थ्रेशोल्ड से ज़्यादा हो. अगर ऐसा नहीं होता है, तो फ़र्मवेयर को ऐसे काम करना चाहिए जैसे वह कभी देखा ही न हो.
delivery_mode 1 ऑक्टेट 0x00 - immediate
0x01 - on_found
0x02 - batched
onfound_timeout 2 ऑक्टेट यह ऑफ़र सिर्फ़ तब मान्य है, जब delivery_mode, on_found हो.
[मिलीसेकंड में]
फ़र्मवेयर के लिए समय, रिपोर्ट करने से पहले और विज्ञापन इकट्ठा करें.
onfound_timeout_cnt 1 ऑक्टेट यह ऑफ़र सिर्फ़ तब मान्य है, जब delivery_mode, on_found हो.
[count]
अगर onFound में मौजूद कोई विज्ञापन, onfound_timeout की अवधि तक फ़र्मवेयर में बना रहता है, तो उस पर कुछ विज्ञापन इकट्ठा होते हैं और संख्या की जांच की जाती है. अगर संख्या onfound_timeout_cnt से ज़्यादा है, तो इसके तुरंत बाद OnFound रिपोर्ट की जाएगी.
rssi_low_thresh 1 ऑक्टेट यह ऑफ़र सिर्फ़ तब मान्य है, जब delivery_mode, on_found हो.
[dBm में]
अगर मिले हुए पैकेट का आरएसएसआई, आरएसएसआई के कम थ्रेशोल्ड से ज़्यादा नहीं है, तो विज्ञापन देने वाले के पैकेट को नहीं देखा गया माना जाता है.
onlost_timeout 2 ऑक्टेट यह ऑफ़र सिर्फ़ तब मान्य है, जब delivery_mode, on_found हो.
[मिलीसेकंड में]
अगर कोई विज्ञापन मिलने के बाद, lost_timeout की अवधि के दौरान उसे लगातार नहीं देखा जाता है, तो उसके खोने की शिकायत तुरंत कर दी जाएगी.
num_of_tracking_entries 2 ऑक्टेट यह ऑफ़र सिर्फ़ तब मान्य है, जब delivery_mode, on_found हो.
[count]
हर फ़िल्टर के हिसाब से, विज्ञापन देने वाले लोगों या कंपनियों की ट्रैक की जाने वाली कुल संख्या.

नेगेटिव वैल्यू दिखाने के लिए, आरएसएसआई वैल्यू में 2 के पूरक का इस्तेमाल करना ज़रूरी है.

होस्ट, ऐसे कई फ़िल्टर कॉन्फ़िगर कर सकता है जिनमें APCF_Application_Address_type को 0x02 (सभी ब्रॉडकास्टर पतों के लिए) पर सेट किया गया हो. ऐसा करके, अलग-अलग फ़िल्टर के कॉम्बिनेशन को मैनेज किया जा सकेगा.

फ़िल्टर करना, बैच बनाना, और रिपोर्टिंग एक-दूसरे से जुड़े सिद्धांत हैं. हर विज्ञापन और उससे जुड़े स्कैन के लिए, एक के बाद एक सभी फ़िल्टर इस्तेमाल करने होंगे. इसलिए, नतीजे देने वाली कार्रवाइयां (delivery_mode), फ़िल्टर करने से जुड़ी होती हैं. ये डिलीवरी मोड हैं: report_immediately, batch, और onFound. OnLost की वैल्यू, OnFound से जुड़ी होती है. यह इसलिए माना जाता है, क्योंकि OnFound के खोने पर, यह वैल्यू डाल दी जाती है.

यह प्रोसेसिंग फ़्लो, कॉन्सेप्चुअल मॉडल दिखाता है:

जब कोई विज्ञापन (या स्कैन रिस्पॉन्स) फ़्रेम मिलता है, तो उसे सीरियल ऑर्डर में मौजूद सभी फ़िल्टर पर लागू कर दिया जाता है. ऐसा हो सकता है कि किसी विज्ञापन में, किसी फ़िल्टर के आधार पर, तुरंत रिपोर्टिंग की गई हो और किसी दूसरी फ़िल्टर ऐक्शन की वजह से उसी के बैच को चुना गया हो.

आरएसएसआई लेवल के थ्रेशोल्ड (ज़्यादा और कम) से यह कंट्रोल किया जा सकता है कि फ़िल्टर प्रोसेस करने के लिए, फ़्रेम कब दिखेगा. ऐसा तब भी होता है, जब कंट्रोलर को मान्य पैकेट मिला हो. अगर डिलीवरी मोड को तुरंत या बैच में सेट किया जाता है, तो फ़्रेम के आरएसएसआई को आगे की कंट्रोलर प्रोसेस के लिए इस्तेमाल किया जाता है. अलग-अलग ऐप्लिकेशन के लिए, अलग-अलग रिपोर्टिंग और एक साथ कई काम करने की ज़रूरत होती है. इससे एक साथ कई ऐप्लिकेशन को सीधे तौर पर रिपोर्टिंग और/या नतीजों के बैच को फ़र्मवेयर में शामिल करने की सुविधा मिलती है. उदाहरण के लिए, ऐसा तब होता है, जब किसी एक ऐप्लिकेशन से बैच स्कैन करने की सुविधा चालू होती है और बाद में कोई दूसरा ऐप्लिकेशन, बैच स्कैन जारी करता है. बैच स्कैन जारी करने से पहले, फ़्रेमवर्क/ऐप्लिकेशन सही फ़िल्टर सेट करता है. बाद में, जब दूसरा ऐप्लिकेशन नियमित रूप से स्कैन करने की प्रक्रिया जारी रखता है, तो पहले बैच में भेजे जाने की प्रोसेस जारी रहती है. हालांकि, नियमित तौर पर किए जाने वाले स्कैन की वजह से, यह सैद्धांतिक तौर पर LE स्कैन वाले निर्देश के साथ-साथ सभी मौजूदा फ़िल्टर के साथ एक शून्य फ़िल्टर जोड़ने जैसा है. चालू होने पर, LE स्कैन वाले कमांड पैरामीटर को प्राथमिकता दी जाती है. सामान्य LE स्कैन के बंद होने पर, कंट्रोलर पहले बैच स्कैन मौजूद होने पर वापस उस पर वापस चला जाएगा.

OnFound डिलीवरी मोड, कॉन्फ़िगर किए गए फ़िल्टर पर आधारित होता है. ऐसा कॉम्बिनेशन जो कामयाब होने के लिए किसी फ़िल्टर की कार्रवाई को ट्रिगर करता है उसे onLost के लिए ट्रैक करने वाली इकाई माना जाता है. यह इवेंट, LE Advt ट्रैकिंग सब-इवेंट है.

किसी फ़िल्टर के लिए OnFound/OnLost ट्रांज़िशन (चालू होने पर) ऐसा दिखेगा:

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
APCF_opcode 1 ऑक्टेट 0x01 - APCF सेट फ़िल्टर करने के पैरामीटर
APCF_Action 1 ऑक्टेट इको बैक कमांड का APCF_Action
APCF_AvailableSpaces 1 ऑक्टेट फ़िल्टर टेबल में उपलब्ध एंट्री की संख्या

LE_APCF_Command: network_address_sub_cmd

इस सबकमांड का इस्तेमाल, विज्ञापन देने वाले किसी व्यक्ति या कंपनी के पते को जोड़ने या मिटाने के लिए किया जाता है. इसके अलावा, ऑन-चिप फ़िल्टर करने के लिए, विज्ञापन देने वाले के पते की सूची को हटाने के लिए भी इसका इस्तेमाल किया जाता है.

सब ओसीएफ़: 0x02

सब-कमांड पैरामीटर साइज़ मकसद
APCF_Action 1 ऑक्टेट 0x00 - जोड़ें
0x01 - मिटाएं
0x02 - मिटाएं
मिटाएं, चुने गए फ़िल्टर में तय किया गया ब्रॉडकास्टर पता मिटा देगा.
'हटाएं' चुने गए फ़िल्टर से, ब्रॉडकास्टर के सभी पते हटा दिए जाएंगे.
APCF_Filter_Index 1 ऑक्टेट फ़िल्टर इंडेक्स (0, max_filter-1)
APCF_Broadcaster_Address 6 ऑक्टेट ब्रॉडकास्टर के पते की सूची में जोड़ने या उससे मिटाने के लिए, 6-बाइट वाला डिवाइस पता
APCF_Application_Address_type 1 ऑक्टेट 0x00: सार्वजनिक
0x01: रैंडम
0x02: NA (पते के टाइप को अनदेखा करें)
पहचान के पते के टाइप (0x02, 0x03) के हिसाब से विज्ञापन रिपोर्ट फ़िल्टर करने के लिए. पते के टाइप 0x02 और 0x03 वाली विज्ञापन रिपोर्ट पाने के लिए, इस फ़ील्ड को 0x02: NA पर सेट करें. पते के टाइप को अनदेखा करें.

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
APCF_opcode 1 ऑक्टेट 0x02 - APCF ब्रॉडकास्टर पता
APCF_Action 1 ऑक्टेट इको बैक कमांड का APCF_Action
APCF_AvailableSpaces 1 ऑक्टेट ब्रॉडकास्ट ऐड्रेस टेबल में अब भी मुफ़्त एंट्री की संख्या

LE_APCF_Command: service_uuid_sub_cmd

इस सबकमांड का इस्तेमाल, किसी सेवा के यूयूआईडी को जोड़ने या मिटाने के लिए किया जाता है. इसके अलावा, इसका इस्तेमाल ऑन-चिप फ़िल्टर करने के लिए, सेवा की यूयूआईडी सूची को मिटाने के लिए भी किया जाता है.

सब ओसीएफ़: 0x03

सब-कमांड पैरामीटर साइज़ मकसद
APCF_Action 1 ऑक्टेट 0x00 - जोड़ें
0x01 - मिटाएं
0x02 - मिटाएं
मिटाएं, चुने गए फ़िल्टर में तय सेवा यूयूआईडी पता मिटा देगा.
'हटाएं' चुने गए फ़िल्टर में मौजूद सभी सेवा यूयूआईडी को हटा देगा.
APCF_Filter_Index 1 ऑक्टेट फ़िल्टर इंडेक्स (0, max_filter-1)
APCF_UUID 2,4,16 ऑक्टेट सूची में जोड़ने या उससे मिटाने के लिए, सेवा UUID (16-बिट, 32-बिट या 128-बिट).
APCF_UUID_MASK 2,4,16 ऑक्टेट सूची में जोड़ने के लिए सेवा UUID मास्क (16-बिट, 32-बिट या 128-बिट). इसकी लंबाई APCF_UUID. के बराबर होनी चाहिए

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
APCF_opcode 1 ऑक्टेट 0x03 - एपीसीएफ़ सेवा यूयूआईडी
APCF_Action 1 ऑक्टेट इको बैक कमांड का APCF_Action
APCF_AvailableSpaces 1 ऑक्टेट सेवा यूयूआईडी टेबल में अब भी उपलब्ध मुफ़्त एंट्री की संख्या

LE_APCF_Command: ज़ैन_uuid_sub_cmd

इस सबकमांड का इस्तेमाल, अनुरोध करने के लिए इस्तेमाल होने वाले यूयूआईडी को जोड़ने या मिटाने के लिए किया जाता है. इसके अलावा, ऑन-चिप फ़िल्टर के लिए, किसी यूयूआईडी सूची को हटाने के लिए भी इसका इस्तेमाल किया जाता है.

सब ओसीएफ़: 0x04

सब-कमांड पैरामीटर साइज़ मकसद
APCF_Action 1 ऑक्टेट 0x00 - जोड़ें
0x01 - मिटाएं
0x02 - मिटाएं
मिटाएं, असाइन किए गए फ़िल्टर में मौजूद यूयूआईडी पता मिटा दिया जाएगा.
दिए गए फ़िल्टर में, दिए गए सभी यूयूआईडी को हटा दिया जाएगा.
APCF_Filter_Index 1 ऑक्टेट फ़िल्टर इंडेक्स (0, max_filter-1)
APCF_UUID 2,4,16 ऑक्टेट सूची में जोड़ने या मिटाने के लिए सॉलिटेशन यूयूआईडी (16-बिट, 32-बिट या 128-बिट).
APCF_UUID_MASK 2,4,16 ऑक्टेट सूची में जोड़ने के लिए सॉलिटेशन यूयूआईडी मास्क (16-बिट, 32-बिट या 128-बिट). इसकी लंबाई APCF_UUID के बराबर होनी चाहिए.

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
APCF_opcode 1 ऑक्टेट 0x04 - एपीसीएफ़ अनुरोध यूयूआईडी
APCF_Action 1 ऑक्टेट इको बैक कमांड का APCF_Action
APCF_AvailableSpaces 1 ऑक्टेट उन मुफ़्त एंट्री की संख्या जो अब भी अनुरोध की गई यूयूआईडी टेबल में उपलब्ध हैं

LE_APCF_Command: local_name_sub_cmd

इस सब-कमांड का इस्तेमाल, किसी स्थानीय नाम वाली स्ट्रिंग को जोड़ने या मिटाने के लिए किया जाता है. इसके अलावा, इसका इस्तेमाल ऑन-चिप फ़िल्टर करने के लिए, स्थानीय नाम वाली स्ट्रिंग की सूची को मिटाने के लिए भी किया जाता है.

सब ओसीएफ़: 0x05

सब-कमांड पैरामीटर साइज़ मकसद
APCF_Action 1 ऑक्टेट 0x00 - जोड़ें
0x01 - मिटाएं
0x02 - मिटाएं
मिटाएं, बताए गए फ़िल्टर में दिए गए लोकल नाम वाली स्ट्रिंग को मिटा देगा.
'हटाएं' तय किए गए फ़िल्टर में, लोकल नाम वाली सभी स्ट्रिंग को हटा देगा.
APCF_Filter_Index 1 ऑक्टेट फ़िल्टर इंडेक्स (0, max_filter-1)
APCF_LocName_Mandata_or_SerData वैरिएबल साइज़ स्थानीय नाम के लिए वर्ण स्ट्रिंग.

ध्यान दें:
  • फ़िलहाल, किसी स्थानीय नाम वाली स्ट्रिंग में ज़्यादा से ज़्यादा 29 वर्ण हो सकते हैं
  • जब कार्रवाई "हटाएं" (0x2) हो, तब लागू नहीं होता

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
APCF_opcode 1 ऑक्टेट 0x05 - APCF स्थानीय नाम
APCF_Action 1 ऑक्टेट इको बैक कमांड का APCF_Action
APCF_AvailableSpaces 1 ऑक्टेट स्थानीय नाम वाली टेबल में अब भी मुफ़्त एंट्री की संख्या

LE_APCF_Command: manf_data_sub_cmd

इस सबकमांड का इस्तेमाल, मैन्युफ़ैक्चरर की डेटा स्ट्रिंग जोड़ने या मिटाने के लिए किया जाता है. इसके अलावा, चिप पर फ़िल्टर करने की सुविधा के लिए, मैन्युफ़ैक्चरर की डेटा स्ट्रिंग की सूची को हटाने के लिए भी इस सब-कमांड का इस्तेमाल किया जाता है.

सब ओसीएफ़: 0x06

सब-कमांड पैरामीटर साइज़ मकसद
APCF_Action 1 ऑक्टेट 0x00 - जोड़ें
0x01 - मिटाएं
0x02 - मिटाएं
मिटाएं, सेट किए गए फ़िल्टर में मैन्युफ़ैक्चरर की तय की गई डेटा स्ट्रिंग को मिटा देगा.
'हटाएं' चुने गए फ़िल्टर में, मैन्युफ़ैक्चरर की सभी डेटा स्ट्रिंग को मिटा दिया जाएगा.
APCF_Filter_Index 1 ऑक्टेट फ़िल्टर इंडेक्स (0, max_filter-1)
APCF_LocName_Mandata_or_SerData वैरिएबल साइज़ मैन्युफ़ैक्चरर के डेटा के लिए वर्ण स्ट्रिंग.

ध्यान दें:
  • फ़िलहाल, किसी स्थानीय नाम वाली स्ट्रिंग में ज़्यादा से ज़्यादा 29 वर्ण हो सकते हैं
  • जब कार्रवाई "हटाएं" (0x2) हो, तब लागू नहीं होता
APCF_ManData_Mask वैरिएबल साइज़ सूची में जोड़ने के लिए मैन्युफ़ैक्चरर डेटा मास्क. इसकी लंबाई APCF_LocName_or_ManData_or_SerData के बराबर होनी चाहिए.

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
APCF_opcode 1 ऑक्टेट 0x06 - APCF मैन्युफ़ैक्चरर का डेटा
APCF_Action 1 ऑक्टेट इको बैक कमांड का APCF_Action
APCF_AvailableSpaces 1 ऑक्टेट मैन्युफ़ैक्चरर के डेटा की टेबल में मौजूद मुफ़्त एंट्री की संख्या

LE_APCF_Command: service_data_sub_cmd

इस सबकमांड का इस्तेमाल किसी सेवा की डेटा स्ट्रिंग को जोड़ने या मिटाने के लिए किया जाता है. इसके अलावा, ऑन-चिप फ़िल्टर करने के लिए, सेवा से जुड़े डेटा की स्ट्रिंग की सूची को मिटाने के लिए भी इसका इस्तेमाल किया जाता है.

सब ओसीएफ़: 0x07

सब-कमांड पैरामीटर साइज़ मकसद
APCF_Action 1 ऑक्टेट 0x00 - जोड़ें
0x01 - मिटाएं
0x02 - मिटाएं
मिटाएं, तय किए गए फ़िल्टर में सेवा से जुड़े डेटा की स्ट्रिंग को मिटा देगा.
'हटाएं' चुने गए फ़िल्टर में मौजूद सेवा से जुड़े डेटा की सभी स्ट्रिंग को हटा देगा.
APCF_Filter_Index 1 ऑक्टेट फ़िल्टर इंडेक्स (0, max_filter-1)
APCF_LocName_Mandata_or_SerData वैरिएबल साइज़ सेवा से जुड़े डेटा के लिए वर्ण स्ट्रिंग.

ध्यान दें:
  • फ़िलहाल, किसी स्थानीय नाम वाली स्ट्रिंग में ज़्यादा से ज़्यादा 29 वर्ण हो सकते हैं
  • जब कार्रवाई "हटाएं" (0x2) हो, तब लागू नहीं होता
APCF_LocName_Mandata_or_SerData_Mask वैरिएबल साइज़ सूची में जोड़ने के लिए सेवा का डेटा मास्क. इसकी लंबाई APCF_LocName_or_ManData_or_SerData. के बराबर होनी चाहिए

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
APCF_opcode 1 ऑक्टेट 0x07 - APCF सेवा डेटा
APCF_Action 1 ऑक्टेट इको बैक कमांड का APCF_Action
APCF_AvailableSpaces 1 ऑक्टेट सेवा से जुड़े डेटा की टेबल के लिए, अब भी मुफ़्त एंट्री की संख्या

LE_APCF_Command: ad_type_sub_cmd

इस सबकमांड का इस्तेमाल, विज्ञापन के किसी टाइप को जोड़ने या मिटाने के लिए किया जाता है. साथ ही, इसका इस्तेमाल चिप पर फ़िल्टर करने के लिए, 'विज्ञापन के टाइप' की सूची को मिटाने के लिए भी किया जाता है. read_extended_features_sub_cmd का इस्तेमाल करके देखें कि यह निर्देश काम करता है या नहीं.
जब APCF_AD_DATA_Length की वैल्यू 0 हो, तो विज्ञापन के डेटा और विज्ञापन के डेटा मास्क की तुलना किए बिना, APCF_AD_TYPE को फ़िल्टर करें. अगर मिले ADV पैकेट के डेटा की लंबाई AD_DATA_LENGTH से ज़्यादा है, तो विज्ञापन डेटा के सिर्फ़ पहले AD_DATA_LENGTH बाइट की तुलना करें और बाकी डेटा को अनदेखा करें.

सब ओसीएफ़: 0x09

सब-कमांड पैरामीटर साइज़ मकसद
APCF_Action 1 ऑक्टेट 0x00 - जोड़ें
0x01 - मिटाएं
0x02 - मिटाएं
मिटाएं, तय किए गए फ़िल्टर में तय किया गया AD टाइप मिटा देगा.
'हटाएं' चुने गए फ़िल्टर में मौजूद सभी विज्ञापन टाइप को हटा देगा.
APCF_Filter_Index 1 ऑक्टेट फ़िल्टर इंडेक्स (0, max_filter-1)
APCF_AD_TYPE 1 ऑक्टेट सूची में जोड़ने या हटाने के लिए, विज्ञापन टाइप. जब APCF_Action 0x02 हो, तब अनदेखा करें (हटाएं)
APCF_AD_DATA_Length 1 ऑक्टेट 0x00 - इसका मतलब है कि डेटा कॉन्टेंट को फ़िल्टर न करें
APCF_Action के 0x02 होने पर अनदेखा करें (मिटाएं)
APCF_AD_DATA वैरिएबल साइज़ APCF_AD_DATA_Length के आधार पर वैरिएबल का साइज़
APCF_Action के 0x02 होने पर अनदेखा करें (हटाएं)
APCF_AD_DATA_MASK वैरिएबल साइज़ APCF_AD_DATA_Length के आधार पर वैरिएबल का साइज़
APCF_Action के 0x02 होने पर अनदेखा करें (हटाएं)
इसकी लंबाई APCF_AD_DATA के बराबर होनी चाहिए.

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
APCF_opcode 1 ऑक्टेट 0x09 - एपीसीएफ़ विज्ञापन का टाइप
APCF_Action 1 ऑक्टेट इको बैक कमांड का APCF_Action
APCF_AvailableSpaces 1 ऑक्टेट एडी टाइप टेबल में मौजूद मुफ़्त एंट्री की संख्या

LE_APCF_Command: read_extended_features_sub_cmd

इस सबकमांड का इस्तेमाल, APCF की एक्सटेंडेड सुविधाओं को पढ़ने के लिए किया जाता है.

सब ओसीएफ़: 0xFF

सब-कमांड पैरामीटर साइज़ मकसद
लागू नहीं कोई निर्देश पैरामीटर नहीं है.

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
APCF_opcode 1 ऑक्टेट 0xFF - APCF_Read_Extended_Features
APCF_extended_features 2 ऑक्टेट

ज़्यादा सुविधाओं के लिए बिट मास्क:

  • बिट 0: ट्रांसपोर्ट डिस्कवरी सर्विस के साथ काम करने वाला फ़िल्टर
  • बिट 1: विज्ञापन टाइप के साथ काम करने वाला फ़िल्टर
  • बिट 2 ~15: आने वाले समय में इस्तेमाल के लिए रिज़र्व रखा गया है

बिट की वैल्यू

  • 0 = इस्तेमाल नहीं किया जा सकता
  • 1 = इस्तेमाल किया जा सकता है

नियंत्रक गतिविधि और ऊर्जा की जानकारी का निर्देश

इस जानकारी का मकसद, ऐप्लिकेशन और फ़्रेमवर्क में हो रही गतिविधियों के साथ, बीटी कंट्रोलर और उसकी मैक्रो स्थिति के साथ-साथ सभी कॉम्पोनेंट की कुल गतिविधियों का विश्लेषण करना है. ऐसा करने के लिए, ब्लूटूथ स्टैक और कंट्रोलर से यह जानकारी पाना ज़रूरी है:

  • ब्लूटूथ स्टैक: कंट्रोलर की मौजूदा मैक्रो-ऑपरेशनल स्थिति की रिपोर्ट करना
  • फ़र्मवेयर: गतिविधि और ऊर्जा की पूरी जानकारी की रिपोर्टिंग

उपयोगकर्ता के लेवल पर तय किए गए बीटी होस्ट स्टैक मैक्रो स्टेटस:

  • प्रयोग में नहीं: [पेज स्कैन, LE advt, पूछताछ स्कैन, LE बारे में]
  • स्कैन: [पेजिंग/पूछताछ/कनेक्ट करने की कोशिश की जा रही है]
  • चालू है: [एसीएल लिंक चालू है, एससीओ लिंक जारी है, स्निफ़ मोड]

कंट्रोलर अपनी ज़िंदगी के दौरान इन गतिविधियों पर नज़र रखता है: Tx समय, Rx समय, इस्तेमाल न होने पर बिताया गया समय, और ऊर्जा की कुल खपत. होस्ट से पढ़े जाने पर, इन्हें मिटा दिया जाता है.

LE_Get_Controller_Activity_Energy_Info

यह निर्देश, वेंडर के हिसाब से दिया गया है.

ओसीएफ़: 0x159

सब-कमांड पैरामीटर साइज़ मकसद
NA कमांड पैरामीटर खाली हैं

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
total_tx_time_ms 4 ऑक्टेट Tx के प्रदर्शन में बिताया गया कुल समय
total_rx_time_ms 4 ऑक्टेट Rx के प्रदर्शन में बिताया गया कुल समय
total_idle_time_ms 4 ऑक्टेट डिवाइस कुछ समय से इस्तेमाल में न रहने में कुल समय (नींद न होने की कम पावर की स्थितियां)
total_energy_used 4 ऑक्टेट इस्तेमाल की गई कुल ऊर्जा [करंट (mA), वोल्टेज (V) और समय (मि॰से॰) का प्रॉडक्ट]

LE एक्सटेंडेड सेट स्कैन पैरामीटर कमांड

इस निर्देश का इस्तेमाल, कंट्रोलर में बड़ी स्कैन विंडो और इंटरवल को चालू करने के लिए किया जा सकता है. BT Core 5.2 के स्पेसिफ़िकेशन के मुताबिक, स्कैन विंडो और इंटरवल की ऊपरी सीमा 10.24 सेकंड होती है. इस वजह से, ऐप्लिकेशन के स्कैन करने की अवधि, 10.24 सेकंड से ज़्यादा हो जाती है.

बेस रेफ़रंस: बीटी कोर 5.2 स्पेसिफ़िकेशन, पेज 2493 (LE सेट स्कैन पैरामीटर से जुड़ा कमांड)

ओसीएफ़: 0x15A

निर्देश पैरामीटर साइज़ मकसद
LE_Ex_Scan_Type 1 ऑक्टेट 0x00 - पैसिव स्कैनिंग. कोई भी SCAN_REQ पैकेट नहीं भेजा जाएगा (डिफ़ॉल्ट).
0x01 - चालू स्कैनिंग. SCAN_REQ पैकेट भेजे जा सकते हैं.
LE_Ex_Scan_Interval 4 ऑक्टेट इसे कंट्रोलर के आखिरी LE स्कैन शुरू करने से लेकर, अगले LE स्कैन शुरू करने तक के समय के अंतराल के तौर पर तय किया जाता है.
सीमा: 0x0004 से 0x00FFFFFF
डिफ़ॉल्ट: 0x0010 (10 मि॰से॰)
समय = N * 0.625 मि॰से॰
समयसीमा: 2.5 मि॰से॰ से 10442.25 सेकंड
LE_Ex_Scan_Window 4 ऑक्टेट LE स्कैन की अवधि. LE_Scan_Window का मान, LE_Scan_Interval से कम या इसके बराबर होना चाहिए.
सीमा: 0x0004 से 0xFFFF
डिफ़ॉल्ट: 0x0010 (10 मि॰से॰)
समय = N * 0.625 मि॰से॰
समयसीमा: 2.5 मि॰से॰ से 40.95 सेकंड
Own_Address_Type 1 ऑक्टेट 0x00 - डिवाइस का सार्वजनिक पता (डिफ़ॉल्ट)
0x01 - किसी भी डिवाइस का पता
LE_Ex_Scan_Filter_Policy 0x00 - सभी विज्ञापन पैकेट स्वीकार किए जाते हैं (डिफ़ॉल्ट). निर्देशों वाले उन विज्ञापन पैकेट को अनदेखा कर दिया जाएगा जो इस डिवाइस के लिए नहीं बताए गए हैं.
0x01 - उन डिवाइसों के विज्ञापन पैकेट को अनदेखा करें जो सिर्फ़ व्हाइट लिस्ट में शामिल नहीं हैं. निर्देशों वाले उन विज्ञापन पैकेट को अनदेखा कर दिया जाएगा जो इस डिवाइस के लिए नहीं बताए गए हैं.

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति

नियंत्रक डीबग जानकारी आदेश पाएं

इस जानकारी एलिमेंट का मकसद, पोस्ट-प्रोसेसिंग और विश्लेषण के लिए होस्ट से बाइनरी रूप में, कंट्रोलर डीबग जानकारी पाना है. इससे, फ़ील्ड में चल रही समस्याओं को डीबग करने में मदद मिलती है. साथ ही, इंजीनियर को एक टूलकिट मिलता है, ताकि वे विश्लेषण के लिए जानकारी लॉग कर सकें. इवेंट (कंट्रोलर डीबग की जानकारी वाले सब-इवेंट) के ज़रिए, होस्ट के अनुरोध करने पर कंट्रोलर, जानकारी दे सकता है. इसके अलावा, नियंत्रक जब चाहे, तब अपने-आप जानकारी दे सकता है. इस्तेमाल के उदाहरण, फ़र्मवेयर की स्थिति की जानकारी, क्रैश डंप की जानकारी, लॉगिंग जानकारी वगैरह को रिपोर्ट करना हो सकता है.

ओसीएफ़: 0x15B

कमांड पैरामीटर साइज़ मकसद
लागू नहीं कमांड पैरामीटर की कोई सूची खाली है

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति

A2DP हार्डवेयर ऑफ़लोड सपोर्ट

A2DP ऑफ़लोड सुविधा, ब्लूटूथ कंट्रोलर से अटैच किए गए ऑडियो प्रोसेसर पर, A2DP ऑडियो एन्कोडिंग प्रोसेस के ऑफ़लोड के साथ काम करती है. कोड में बदली गई ऑडियो डेटा स्ट्रीम, बीटी होस्ट के जुड़े हुए बिना सीधे ऑडियो प्रोसेसर से ब्लूटूथ कंट्रोलर को भेजी जाती है. अब भी BT होस्ट, A2DP सेशन के कॉन्फ़िगरेशन और कंट्रोल के लिए ज़िम्मेदार है. निर्देशों के दो वर्शन उपलब्ध हैं. Sub OCF 0x01-0x02 वाले लेगसी निर्देश, सिर्फ़ ओपन-सोर्स कोडेक के साथ काम करते हैं. Sub-OCF 0x02-0x03 वाले वर्शन, कॉन्फ़िगर किए गए कोडेक के लिए संतुलित नहीं होते हैं.

ओसीएफ़: 0x15डी

A2DP ऑफ़लोड (लेगसी) शुरू करें

सब ओसीएफ़: 0x01

A2DP ऑफ़लोड प्रोसेस को कॉन्फ़िगर करने और A2DP स्ट्रीम शुरू करने, दोनों के लिए इस निर्देश का इस्तेमाल करें.

कमांड पैरामीटर साइज़ मकसद
Codec 4 ऑक्टेट इससे पता चलता है कि कोडेक किस तरह का है
0x01 - SBC
0x02 - AAC
0x04 - APTX
0x08 - APTX HD
0x10 - LDAC
Max_Latency 2 ऑक्टेट ज़्यादा से ज़्यादा इंतज़ार के समय की अनुमति है (मि॰से॰ में). शून्य का मान फ़्लश को बंद कर देता है.
SCMS-T_Enable 2 ऑक्टेट 0 अक्टूबर: ऐसा फ़्लैग जो SCMS-T हेडर को जोड़ने की सुविधा चालू करता है.
  • 0x00 - SCMS-T हेडर शामिल नहीं है.
  • 0x01 - SCMS-T हेडर शामिल है.

1 अक्टूबर: चालू होने पर SCMS-T हेडर की वैल्यू.

Sampling_Frequency 4 ऑक्टेट 0x01 - 44100 हर्ट्ज़
0x02 - 48000 हर्ट्ज़
0x04 - 88200 हर्ट्ज़
0x08 - 96000 हर्ट्ज़
Bits_Per_Sample 1 ऑक्टेट 0x01 - हर सैंपल के लिए 16 बिट
हर सैंपल के लिए 0x02 - 24 बिट
0x04 - हर सैंपल के लिए 32 बिट
Channel_Mode 1 ऑक्टेट 0x01 - मोनो
0x02 - स्टीरियो
Encoded_Audio_Bitrate 4 ऑक्टेट कोड में बदला गया ऑडियो बिटरेट, बिट प्रति सेकंड के हिसाब से.
0x00000000 - ऑडियो बिटरेट के बारे में नहीं बताया गया है / इस्तेमाल नहीं किया गया है.
0x00000001 - 0x00FFFFFF - बिट प्रति सेकंड में एन्कोड किया गया ऑडियो बिटरेट.
0x01000000 - 0xFFFFFFFF - रिज़र्व किया गया.
Connection_Handle 2 ऑक्टेट A2DP कनेक्शन का कनेक्शन हैंडल कॉन्फ़िगर किया जा रहा है
L2CAP_Channel_ID 2 ऑक्टेट इस A2DP कनेक्शन के लिए इस्तेमाल किया जाने वाला L2CAP चैनल आईडी
L2CAP_MTU_Size 2 ऑक्टेट कोड में बदले गए ऑडियो पैकेट वाले L2CAP MTU का ज़्यादा से ज़्यादा साइज़
Codec_Information 32 ऑक्टेट कोडेक से जुड़ी जानकारी.

एसबीसी कोडेक:

A2DP v1.3 में, जानकारी देने वाले SBC कोडेक के खास एलिमेंट देखें.
अक्टूबर 0: ब्लॉक की लंबाई | सबबैंड | ऐलोकेशन का तरीका
अक्टूबर 1: कम से कम बिटपूल वैल्यू
अक्टूबर 2: बिटपूल की ज़्यादा से ज़्यादा वैल्यू
अक्टूबर 3: सैंपलिंग की फ़्रीक्वेंसी | चैनल मोड
4-31 अक्टूबर: रिज़र्व किया गया

AAC कोडेक:

A2DP v1.3 में, AAC कोडेक से जुड़ी खास जानकारी वाले एलिमेंट देखें
अक्टूबर 0: ऑब्जेक्ट टाइप
अक्टूबर 1; b7: VBR
अक्टूबर 2-31: रिज़र्व किया गया

LDAC कोडेक:

0 से 3 अक्टूबर: वेंडर आईडी
0x0000012D

4-5 अक्टूबर: कोडेक आईडी
0x00AA - LDAC
दूसरी सभी वैल्यू रिज़र्व हैं

6 अक्टूबर: बिटरेट इंडेक्स:
0x00 - ज़्यादा
0x01 - मध्य
0x02 - कम
0x03 - 0x7E - रिज़र्व
0x7F - ABR (अडैप्टिव बिट रेट)
0x80 - 0xFF - रिज़र्व किया गया

7 अक्टूबर: LDAC चैनल मोड
0x01 - स्टीरियो
0x02 - ड्यूअल
0x04 - मोनो
अन्य ऐप्लिकेशन रिज़र्व हैं

8 से 31 अक्टूबर: बुक किया गया

अन्य सभी कोडेक:

0 से 31 अक्टूबर: बुक किया गया

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Sub_Opcode 1 ऑक्टेट 0x01 - A2DP ऑफ़लोड शुरू करें

A2DP ऑफ़लोड शुरू करें

सब ओसीएफ़: 0x03

A2DP ऑफ़लोड प्रोसेस को कॉन्फ़िगर करने और A2DP स्ट्रीम शुरू करने, दोनों के लिए इस निर्देश का इस्तेमाल करें.

कमांड पैरामीटर साइज़ मकसद
Connection Handle 2 ऑक्टेट चालू एचसीआई कनेक्शन को हैंडल करें
L2CAP_Channel_ID 2 ऑक्टेट A2DP स्ट्रीमिंग के लिए, L2CAP चैनल के आइडेंटिफ़ायर को खोला गया
Data_Path_Direction 1 ऑक्टेट 0x00 - आउटपुट (एवीडीटीपी सोर्स/मर्ज)
0x01 - इनपुट (एवीडीटीपी सिंक/स्प्लिट)
Peer_MTU 2 ऑक्टेट हम L2CAP पैकेट का साइज़ अपने हिसाब से तय कर सकते हैं.
CP_Enable_SCMS_T 1 ऑक्टेट 0x00 - SCMS-T कॉन्टेंट की सुरक्षा से जुड़ा हेडर बंद करें
0x01 - SCMS-T कॉन्टेंट की सुरक्षा से जुड़ा हेडर चालू करें
CP_Header_SCMS_T 1 ऑक्टेट जब SCMS-T कॉन्टेंट की सुरक्षा से जुड़े हेडर को चालू किया जाता है (CP_SCMS_T_Enable 0x01 पर सेट होता है), तो ब्लूटूथ असाइन किए गए नंबर के सेक्शन 6.3.2 के मुताबिक, ऑडियो कॉन्टेंट से पहले दिखने वाली हेडर वैल्यू (A2DP, सेक्शन 3.2.1-2) के बारे में जानकारी देता है.
एससीएमएस-टी कॉन्टेंट की सुरक्षा चालू न होने पर अनदेखा किया जाता है.
Vendor_Specific_Parameters_Length 1 ऑक्टेट वेंडर के लिए खास पैरामीटर की लंबाई 0 से 128 के बीच होती है.
वैल्यू 0 का इस्तेमाल तब किया जाता है, जब कोई दूसरा पैरामीटर न दिया गया हो.
Vendor_Specific_Parameters 0-128 ऑक्टेट ब्लूटूथ ऑडियो एचएएल, CodecParameters.vendorSpecificParameters[] से मिले वेंडर के लिए खास पैरामीटर.

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Sub_Opcode 1 ऑक्टेट 0x03 - A2DP ऑफ़लोड शुरू करें

A2DP ऑफ़लोड (लेगसी) को रोकें

सब ओसीएफ़: 0x02

इस निर्देश का इस्तेमाल A2DP ऑफ़लोड स्ट्रीम को रोकने के लिए किया जाता है.

कमांड पैरामीटर साइज़ मकसद
लागू नहीं कमांड पैरामीटर की सूची खाली है.

इस निर्देश के लिए कोई पैरामीटर तय नहीं किया गया है.

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Sub_Opcode 1 ऑक्टेट 0x02 - A2DP ऑफ़लोड रोकें

A2DP ऑफ़लोड बंद करें

सब ओसीएफ़: 0x04

इस निर्देश का इस्तेमाल A2DP ऑफ़लोड स्ट्रीम को रोकने के लिए किया जाता है.

कमांड पैरामीटर साइज़ मकसद
Connection Handle 2 ऑक्टेट चालू एचसीआई कनेक्शन को हैंडल करें
L2CAP_Channel_ID 2 ऑक्टेट A2DP स्ट्रीमिंग के लिए, L2CAP चैनल के आइडेंटिफ़ायर को खोला गया
Data_Path_Direction 1 ऑक्टेट 0x00 - आउटपुट (एवीडीटीपी सोर्स/मर्ज)
0x01 - इनपुट (एवीडीटीपी सिंक/स्प्लिट)

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Sub_Opcode 1 ऑक्टेट 0x04 - A2DP ऑफ़लोड रोकें

ब्लूटूथ क्वालिटी रिपोर्ट का निर्देश

BT Quality Report कमांड, ब्लूटूथ कंट्रोलर में होस्ट को ब्लूटूथ क्वालिटी से जुड़े इवेंट की जानकारी देने का तरीका शुरू करती है. इन चार विकल्पों को चालू किया जा सकता है:

  • क्वालिटी मॉनिटरिंग मोड: कंट्रोलर समय-समय पर होस्ट को लिंक की क्वालिटी से जुड़ा BQR सब-इवेंट भेजता है.
  • LSTO के पहले: अगर कनेक्ट किए गए BT डिवाइस से लिंक निगरानी टाइमआउट (LSTO) मान के आधे से ज़्यादा समय तक कोई पैकेट नहीं मिलता है, तो नियंत्रक, होस्ट को एक आने वाले LSTO इवेंट की रिपोर्ट करता है.
  • A2DP ऑडियो रुक-रुककर चलता है: जब कंट्रोलर को ऐसे फ़ैक्टर का पता चलता है जिनकी वजह से ऑडियो रुक-रुककर चल रहा है, तो कंट्रोलर, होस्ट को A2DP ऑडियो रुक-रुककर चलने वाले इवेंट की रिपोर्ट देता है.
  • (e)SCO वॉइस चॉपी: जब कंट्रोलर को रुक-रुककर चलने वाली आवाज़ की वजहों का पता चलता है, तो कंट्रोलर, होस्ट को (e)SCO वॉइस रुकी हुई आवाज़ की सूचना देता है.
  • रूट इनफ़्लेमेशन: इस इवेंट को कंट्रोलर से स्टैक में तब भेजा जाता है, जब एचएएल या कंट्रोलर में कोई गंभीर गड़बड़ी होती है और उसे ब्लूटूथ को रीस्टार्ट करना पड़ता है.
  • LMP/LL मैसेज ट्रेस: कंट्रोलर, रिमोट डिवाइस से होस्ट को LMP/LL मैसेज हैंडशेक करता है.
  • ब्लूटूथ मल्टी-प्रोफ़ाइल/Coex का शेड्यूल ट्रेस करने की सुविधा: कंट्रोलर, 2.4 गीगाहर्ट्ज़ बैंड में एक से ज़्यादा ब्लूटूथ प्रोफ़ाइल और वायरलेस साथ के साथ काम करने के बारे में, होस्ट को शेड्यूल की जानकारी भेजता है.
  • नियंत्रक डीबग जानकारी प्रणाली: इसके चालू होने पर, नियंत्रक डीबग जानकारी उप-इवेंट के ज़रिए होस्ट को अपने आप डीबग लॉग करने की जानकारी रिपोर्ट कर सकता है.
  • LE Audio चॉपी: जब कंट्रोलर को यह पता चलता है कि ऑडियो रुक-रुककर चल रहा है, तो कंट्रोलर, होस्ट को LE Audio के रुक-रुककर चलने वाले इवेंट की रिपोर्ट देता है.
  • ऐडवांस आरएफ़ आंकड़े वाला मोड: कंट्रोलर, होस्ट को आरएफ़ से जुड़े आंकड़ों की जानकारी देता है. इसमें रिपोर्ट को इस्तेमाल करने के दो मामले शामिल हैं:
    • समय-समय पर भेजी जाने वाली रिपोर्ट
    • इवेंट ट्रिगर (स्ट्रीम शुरू/बंद करें और लिंक क्वालिटी इवेंट ट्रिगर).
  • ब्लूटूथ क्वालिटी रिपोर्ट निर्देश का BQR_report_Action: होस्ट इस HCI निर्देश का इस्तेमाल क्वालिटी मॉनिटरिंग मोड, एनर्जी मॉनिटर मोड या ऐडवांस आरएफ़ स्टैटिस्टिक्स मोड के लिए एक बार की क्वेरी पाने के लिए कर सकता है.

ओसीएफ़: 0x15E

कमांड पैरामीटर साइज़ मकसद
BQR_Report_Action 1 ऑक्टेट BQR_ Quality_Event_Mask पैरामीटर में सेट किए गए क्वालिटी इवेंट की रिपोर्टिंग जोड़ने / मिटाने की कार्रवाई या सभी को हटाने की कार्रवाई.

0x00 - जोड़ें
0x01 - मिटाएं
0x02 - हटाएं
0x03 - एक बार इस्तेमाल होने वाली क्वेरी

मिटाने से, क्वालिटी वाले इवेंट की रिपोर्ट मिट जाएगी.
'साफ़ करें' पर क्लिक करने से, क्वालिटी वाले सभी इवेंट की रिपोर्टिंग मिट जाएगी (BQR_ Quality_Event_Mask पैरामीटर को अनदेखा किया जा सकता है).

BQR_Quality_Event_Mask 4 ऑक्टेट चुने गए क्वालिटी इवेंट की रिपोर्टिंग के लिए बिट मास्क.

बिट 0: क्वालिटी मॉनिटरिंग मोड चालू करने के लिए सेट करें.
बिट 1: ACL/(e)SCO/ISO के लिए, आने वाले LSTO इवेंट को चालू करने के लिए सेट करें.
बिट 2: A2DP ऑडियो चॉपी इवेंट को चालू करने के लिए सेट करें.
बिट 3: (e)SCO वॉइस चॉपी इवेंट चालू करने के लिए सेट किया गया है.
बिट 4: रूट इन्फ़्लेमेशन इवेंट को चालू करने के लिए सेट करें.
बिट 5: ऊर्जा की निगरानी करने वाले मोड को चालू करने के लिए सेट करें.
बिट 6: LE audio choppy इवेंट को चालू करने के लिए सेट करें.
बिट 7: कनेक्ट फ़ेल इवेंट को चालू करने के लिए सेट करें.
बिट 8: ऐडवांस आरएफ़ आंकड़े मोड इवेंट ट्रिगर को चालू करने के लिए सेट करें.
बिट 9: ऐडवांस आरएफ़ आंकड़ों की समय-समय पर रिपोर्ट पाने की सुविधा चालू करने के लिए सेट करें.
बिट 10 ~ 14: रिज़र्व.
बिट 15: वेंडर के हिसाब से क्वालिटी इवेंट चालू करने के लिए सेट करें.
बिट 16: LMP/LL मैसेज ट्रेस को चालू करने के लिए सेट करें.
बिट 17: ब्लूटूथ मल्टी-लिंक/Coex शेड्यूलिंग ट्रेस को चालू करने के लिए सेट करें.
बिट 18: 'कंट्रोलर डीबग इन्फ़ॉर्मेशन मैकेनिज़्म' को चालू करने के लिए सेट करें.
बिट 19 ~ 30: रिज़र्व.
बिट 31: वेंडर के हिसाब से ट्रेस चालू करने के लिए सेट करें.

BQR_Minimum_Report_Interval 2 ऑक्टेट चुने गए क्वालिटी इवेंट के लिए, क्वालिटी इवेंट रिपोर्टिंग के लिए कम से कम टाइम इंटरवल तय करें. कंट्रोलर फ़र्मवेयर को तय किए गए समय अंतराल में अगले इवेंट की रिपोर्ट नहीं देनी चाहिए. अंतराल सेटिंग, जोड़े जा रहे क्वालिटी इवेंट से जुड़ी होगी और सिर्फ़ उन ही इवेंट के लिए तय होगी.

यूनिट: मि॰से॰
डिफ़ॉल्ट: 0 (इंटरवल के लिए कोई सीमा नहीं.)
रेंज: 0 ~ 65535 मि॰से॰

BQR_Vendor_Specific_Quality_Event_Mask 4 ऑक्टेट चुनिंदा वेंडर के लिए क्वालिटी इवेंट की रिपोर्टिंग के लिए बिट मास्क.
यह पैरामीटर सिर्फ़ तब मान्य होता है, जब BQR_Quality_Event_Mask की बिट 15 सेट हो.

बिट 0 ~ 31: रिज़र्व.

BQR_Vendor_Specific_Trace_Mask 4 ऑक्टेट चुनिंदा वेंडर से जुड़ी ट्रेस रिपोर्टिंग के लिए बिट मास्क.
यह पैरामीटर सिर्फ़ तब मान्य होता है, जब BQR_Quality_Event_Mask की बिट 31 सेट हो.

बिट 0 ~ 31: रिज़र्व.

Report_interval_multiple 4 ऑक्टेट BQR_Minimum_Report_Interval के लिए मल्टीप्लायर. जब यह वैल्यू >= 1 होती है, तो BQR रिपोर्ट इंटरवल इस फ़ॉर्मैट के मुताबिक होता है:
BQR रिपोर्ट इंटरवल = BQR_Minimum_रिपोर्ट_Interval x Report_interval_multiple.
कंट्रोलर फ़र्मवेयर को तय किए गए समय अंतराल में अगले इवेंट की रिपोर्ट नहीं देनी चाहिए. इंटरवल सेटिंग, खास तौर पर जोड़े गए क्वालिटी इवेंट के लिए है.

यूनिट: मि॰से॰
डिफ़ॉल्ट: 1
रेंज: 0 ~ 4294967295 (0: 1 पर सेट है)

ध्यान दें: अगर BQR_Report_Interval की सेटिंग, कंट्रोलर की क्षमता से ज़्यादा है, तो कंट्रोलर को निर्देश पूरा होने के बाद, ज़्यादा से ज़्यादा BQR_Report_Interval समय दिखाना चाहिए.

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Current_Quality_Event_Mask 4 ऑक्टेट मौजूदा बिट मास्क सेटिंग को दिखाता है.
बिट 0: क्वालिटी मॉनिटरिंग मोड चालू है.
बिट 1: LSTO इवेंट की रिपोर्टिंग जल्द ही होने वाली है.
बिट 2: A2DP ऑडियो रुक-रुककर चलने वाले इवेंट की रिपोर्टिंग चालू है.
बिट 3: (e)SCO Voice के रुक-रुककर चलने वाले इवेंट की रिपोर्टिंग चालू है.
बिट 4: रूट इन्फ़्लेमेशन इवेंट की रिपोर्टिंग चालू है.
बिट 5: एनर्जी मॉनिटरिंग मोड चालू है.
बिट 6: LE Audio के रुकी हुए इवेंट की रिपोर्टिंग चालू है.
बिट 7: कनेक्ट नहीं हो पाने से जुड़ा इवेंट.
बिट 8: ऐडवांस आरएफ़ आंकड़े मोड इवेंट ट्रिगर को चालू करने के लिए सेट करें.
बिट 9: समय-समय पर ऐडवांस आरएफ़ आंकड़ों की रिपोर्ट पाने की सुविधा चालू करने के लिए सेट करें.
बिट 10 ~ 14: रिज़र्व.
बिट 15: वेंडर के हिसाब से क्वालिटी इवेंट की रिपोर्टिंग चालू है.
बिट 16: LMP/LL मैसेज ट्रेस की सुविधा चालू है.
बिट 17: ब्लूटूथ मल्टी-लिंक/Coex शेड्यूलिंग ट्रेस चालू है.
बिट 18: कंट्रोलर डीबग इन्फ़ॉर्मेशन मैकेनिज़्म चालू है.
बिट 19 ~ 30: रिज़र्व.
बिट 31: वेंडर से जुड़ा ट्रेस चालू है.
Current_Vendor_Specific_Quality_Event_Mask 4 ऑक्टेट मौजूदा बिट मास्क सेटिंग को दिखाता है.
Current_Vendor_Specific_Trace_Mask 4 ऑक्टेट मौजूदा बिट मास्क सेटिंग को दिखाता है.
BQR_Report_interval 4 ऑक्टेट मौजूदा बिट मास्क सेटिंग को दिखाता है.
Current_Vendor_Specific_Trace_Mask 4 ऑक्टेट BQR_Report_interval की सेटिंग. यह BQR_Minimum_report_Interval * Report_interval_multiple या कंट्रोलर के ज़्यादा से ज़्यादा सपोर्ट इंटरवल के बीच की कम से कम वैल्यू होनी चाहिए.

डाइनैमिक ऑडियो बफ़र का निर्देश

डाइनैमिक ऑडियो बफ़र, कई स्थितियों के हिसाब से ब्लूटूथ कंट्रोलर में ऑडियो बफ़र के साइज़ को बदलकर, ऑडियो ग्लिच को कम करता है.

OCF: 0x15F

ऑडियो बफ़र टाइम की सुविधा पाएं

सब ओसीएफ़: 0x01

ब्लूटूथ कंट्रोलर से ऑडियो बफ़र टाइम की क्षमता का पता लगाने के लिए, इस निर्देश का इस्तेमाल करें.

कमांड पैरामीटर साइज़ मकसद
लागू नहीं निर्देश पैरामीटर की सूची में कोई जानकारी नहीं है

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Dynamic_Audio_Buffer_opcode 1 ऑक्टेट 0x01 - ऑडियो बफ़र टाइम की सुविधा पाएं
Audio_Codec_Type_Supported 4 ऑक्टेट काम करने वाले कोडेक टाइप के लिए बिट मास्क
Bit 0 - SBC
Bit 1 - AAC
बिट 2 - APTX
Bit 3 - APTX HD
बिट 4 - LDAC
बिट 5-31 रिज़र्व हैं
Audio_Codec_Buffer_Default_Time_For_Bit_0 2 ऑक्टेट Audio_Codec_Type_Supported में दिए गए, Bit 0 कोडेक टाइप का डिफ़ॉल्ट बफ़र टाइम.
अगर बिट 0 कोडेक टाइप काम नहीं करता है, तो यह वैल्यू 0 होगी.
यूनिट: मि॰से॰
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 2 ऑक्टेट Audio_Codec_Type_Supported में दिए गए, Bit 0 कोडेक टाइप का ज़्यादा से ज़्यादा बफ़र टाइम.
अगर बिट 0 कोडेक टाइप काम नहीं करता है, तो यह वैल्यू 0 होगी.
यूनिट: मि॰से॰
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 2 ऑक्टेट Audio_Codec_Type_supported में दिए गए बिट 0 कोडेक टाइप का कम से कम बफ़र टाइम.
अगर बिट 0 कोडेक टाइप काम नहीं करता है, तो यह वैल्यू 0 होगी.
यूनिट: मि॰से॰
Audio_Codec_Buffer_Default_Time_For_Bit_1 2 ऑक्टेट Audio_Codec_Type_Supported में दिए गए बिट 1 कोडेक टाइप का डिफ़ॉल्ट बफ़र टाइम.
अगर बिट 1 कोडेक टाइप काम नहीं करता है, तो यह वैल्यू 0 होगी.
यूनिट: मि॰से॰
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 2 ऑक्टेट Audio_Codec_Type_Supported में दिए गए बिट 1 कोडेक टाइप का ज़्यादा से ज़्यादा बफ़र टाइम.
अगर बिट 1 कोडेक टाइप काम नहीं करता है, तो यह वैल्यू 0 होगी.
यूनिट: मि॰से॰
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 2 ऑक्टेट Audio_Codec_Type_Supported में दिए गए बिट 1 कोडेक टाइप का कम से कम बफ़र टाइम.
अगर बिट 1 कोडेक टाइप काम नहीं करता है, तो यह वैल्यू 0 होगी.
यूनिट: मि॰से॰
....... ....... .......
Audio_Codec_Buffer_Default_Time_For_Bit_31 2 ऑक्टेट Audio_Codec_Type_supported में बिट 31 कोडेक टाइप का डिफ़ॉल्ट बफ़र टाइम तय किया गया है.
अगर बिट 31 कोडेक टाइप काम नहीं करता है, तो यह वैल्यू 0 होगी.
यूनिट: मि॰से॰
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 2 ऑक्टेट Audio_Codec_Type_Supported में दिए गए बिट 31 कोडेक टाइप का ज़्यादा से ज़्यादा बफ़र टाइम.
अगर बिट 31 कोडेक टाइप काम नहीं करता है, तो यह वैल्यू 0 होगी.
यूनिट: मि॰से॰
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 2 ऑक्टेट Audio_Codec_Type_Supported में दिए गए बिट 31 कोडेक टाइप का कम से कम बफ़र टाइम.
अगर बिट 31 कोडेक टाइप काम नहीं करता है, तो यह वैल्यू 0 होगी.
यूनिट: मि॰से॰

ऑडियो बफ़र टाइम सेट करें

सब ओसीएफ़: 0x02

ब्लूटूथ कंट्रोलर के लिए ऑडियो बफ़र टाइम सेट करने के लिए, इस निर्देश का इस्तेमाल करें.

कमांड पैरामीटर साइज़ मकसद
Audio_Codec_Buffer_Time 2 ऑक्टेट इस्तेमाल किए गए मौजूदा कोडेक के लिए ऑडियो बफ़र टाइम का अनुरोध किया गया.
इकाई: मि॰से॰

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Dynamic_Audio_Buffer_opcode 1 ऑक्टेट 0x02 - ऑडियो बफ़र टाइम सेट करें
Audio_Codec_Buffer_Time 2 ऑक्टेट ब्लूटूथ कंट्रोलर में ऑडियो बफ़र का मौजूदा समय.
यूनिट: मि॰से॰

HCI इवेंट (वेंडर के हिसाब से)

कुछ मामलों में, वेंडर के हिसाब से HCI इवेंट ज़रूरी होते हैं. बीटी कोर 5.2 स्पेसिफ़िकेशन के पेज 1897 पर इमेज 5.4 देखें. इवेंट पैरामीटर 0 में हमेशा पहला सब-इवेंट कोड होगा. इसके आधार पर, बाकी HCI इवेंट को डिकोड किया जाता है.

इवेंट पैरामीटर साइज़ मकसद
HCI_vendor_specific_event_code 1 ऑक्टेट 0एक्सएफ़एफ़
sub_event_code 1 ऑक्टेट सब-इवेंट कोड का साइज़ एक ऑक्टेट होगा. यह बाइट HCI इवेंट पैकेट में पैरामीटर लंबाई के ठीक बाद वाला बाइट होगा.

स्टोरेज थ्रेशोल्ड के उल्लंघन का सब-इवेंट

इस इवेंट से पता चलता है कि स्टोरेज की सीमा का उल्लंघन हुआ है.

सब-इवेंट कोड = 0x54

सब-इवेंट पैरामीटर साइज़ मकसद
कोई नहीं

एलई में मल्टी-ऐडवर्टाइज़िंग स्टेट चेंज सब-इवेंट

इस इवेंट से पता चलता है कि किसी विज्ञापन इंस्टेंस की स्थिति बदल गई है. फ़िलहाल, इस इवेंट का इस्तेमाल सिर्फ़ यह बताने के लिए किया जाता है कि कनेक्शन की वजह से किस विज्ञापन इंस्टेंस को रोका गया है.

सब-इवेंट कोड = 0x55

सब-इवेंट पैरामीटर साइज़ मकसद
Advertising_instance 1 ऑक्टेट किसी खास विज्ञापन इंस्टेंस की पहचान करता है
मान्य वैल्यू 0 से max_advt_instances-1 तक हैं
State_Change_Reason 1 ऑक्टेट 0x00: कनेक्शन मिला
Connection_handle 2 ऑक्टेट उस कनेक्शन की पहचान करता है जिसकी वजह से advt इंस्टेंस बंद हुआ (अमान्य होने पर 0xFFFF)

LE विज्ञापन ट्रैकिंग सब-इवेंट

इस इवेंट से पता चलता है कि विज्ञापन देने वाले किसी व्यक्ति या कंपनी को कब ढूंढा या खो गया.

सब इवेंट कोड = 0x56

सब-इवेंट पैरामीटर साइज़ मकसद
APCF_Filter_Index 1 ऑक्टेट फ़िल्टर इंडेक्स (0, max_filter-1)
Advertiser_State 1 ऑक्टेट 0x00: विज्ञापन देने वाले व्यक्ति या कंपनी को मिला
0x01: विज्ञापन देने वाला खो गया
Advt_Info_Present 1 ऑक्टेट 0x00: विज्ञापन देने वाले की जानकारी (Advt_Info) मौजूद है
0x01: विज्ञापन देने वाले की जानकारी (Advt_Info) मौजूद नहीं है
Advertiser_Address 6 ऑक्टेट सार्वजनिक या रैंडम पता
Advertiser_Address_Type 1 ऑक्टेट 0x00: सार्वजनिक पता
0x01: कोई भी पता
Advt_Info Tx_Pwr[0]: 1 ऑक्टेट
RSSI[0]: 1 ऑक्टेट
Timestamp[0]: 2 ऑक्टेट
Adv packet_len[0]: 1 ऑक्टेट
Adv_packet[0]: Adv_packet_len ऑक्टेट
Scan_data_resp_len[0]: 1 ऑक्टेट
Scan_data_resp[0]: Scan_data_resp ऑक्टेट

नियंत्रक डीबग जानकारी सब-इवेंट

इस इवेंट का इस्तेमाल नियंत्रक, होस्ट को बाइनरी डीबग जानकारी देने के लिए करता है.

सब-इवेंट कोड = 0x57

सब-इवेंट पैरामीटर साइज़ मकसद
debug_block_byte_offset_start 2 ऑक्टेट शुरुआत से डीबग ब्लॉक बाइट ऑफ़सेट को डीबग करें
last_block 1 ऑक्टेट 0x00: ज़्यादा डीबग डेटा मौजूद है
0x01: आखिरी बाइनरी ब्लॉक; और कोई डीबग डेटा नहीं
cur_pay_load_sz 2 ऑक्टेट मौजूदा इवेंट में बाइनरी ब्लॉक का साइज़
Debug_Data बिटरेट के विकल्प cur_payload_sz का डीबग डेटा

ब्लूटूथ क्वालिटी रिपोर्ट सब-इवेंट

यह इवेंट, इनमें से किसी एक के बारे में बताता है: ब्लूटूथ क्वालिटी से जुड़ा कोई इवेंट हुआ, कंट्रोलर ने LMP/LL मैसेज ट्रेस अपलोड किया और ब्लूटूथ मल्टी-लिंक/Coex शेड्यूलिंग ट्रेस अपलोड की या कंट्रोलर ने डीबग की जानकारी का डंप किया.

सब-इवेंट पैरामीटर साइज़ मकसद
Quality_Report_Id 1 ऑक्टेट 0x01: मॉनिटरिंग मोड पर क्वालिटी रिपोर्टिंग.
0x02: LSTO आने वाला है.
0x03: A2DP ऑडियो चॉपी.
0x04: (e)SCO वॉइस चॉपी.
0x05 ~ 0x06: रिज़र्व किया गया.
0x07: LE Audio चॉपी.
0x08: कनेक्ट नहीं हो सका.
0x09 ~ 0xFF: रिज़र्व किया गया.
Packet_Types 1 ऑक्टेट 0x01: आईडी
0x02: बिलिंग
0x03: POLL
0x04: FHS
0x05: HV1
0x06: HV2
0x07: HV3
0x08: DV
0x09: EV3: EV1 0x0:




















Connection_Handle 2 ऑक्टेट ACL/(e)SCO/ISO कनेक्शन हैंडल.
Connection_Role 1 ऑक्टेट कनेक्शन के लिए भूमिका चुनी जा रही है.
0x00: सेंट्रल
0x01: सहायक डिवाइस
0x02 ~ 0xFF: रिज़र्व किया गया.
TX_Power_Level 1 ऑक्टेट बताए गए Connection_Handle के लिए मौजूदा ट्रांसमिट पावर लेवल.

यह वैल्यू वही होनी चाहिए जो नियंत्रक HCI_Read_Transmit_Power_Level HCI निर्देश के लिए जवाब दे रहा है.

RSSI 1 ऑक्टेट [dBm में]

बताए गए Connection_Handle के लिए सिग्नल स्ट्रेंथ इंडिकेशन (आरएसएसआई) की वैल्यू मिली.
यह वैल्यू, रिसीवर के सिग्नल की क्षमता के लिए पूरी वैल्यू होगी.
रेंज: -127 से +20

SNR 1 ऑक्टेट [dB में]

बताए गए Connection_Handle के लिए, सिग्नल-से-शोर के अनुपात (एसएनआर) की वैल्यू.
लिंक से इस्तेमाल किए गए सभी चैनलों का औसत एसएनआर, कंट्रोलर दिखेगा.

Unused_AFH_Channel_Count 1 ऑक्टेट AFH_channel_map में, इस्तेमाल न हो रहे चैनलों की संख्या दिखाता है.
0x4F ~ 0xFF: रिज़र्व किया गया.
AFH_Select_Unideal_Channel_Count 1 ऑक्टेट इससे उन चैनलों की संख्या का पता चलता है जिनकी क्वालिटी खराब है और रुकावट आई है. हालांकि, उन्हें अब भी एएफ़एच के लिए चुना गया है.
ब्लूटूथ स्पेसिफ़िकेशन के मुताबिक, कम से कम 20 चैनलों को शामिल करने की अनुमति है. अगर सभी 79 चैनलों में रुकावट आ रही है और उनकी क्वालिटी खराब है, तब भी कंट्रोलर को AFH के लिए कम से कम 20 चैनल चुनने होंगे.
LSTO 2 ऑक्टेट लिंक की निगरानी के लिए टाइम आउट की मौजूदा सेटिंग.
समय = N * 0.625 मि॰से॰
समयसीमा: 0.625 मि॰से॰ से 40.9 सेकंड
Connection_Piconet_Clock 4 ऑक्टेट बताए गए Connection_Handle के लिए पीकोनेट घड़ी.
यह वैल्यू वही होनी चाहिए जो नियंत्रक HCI_Read_Clock HCI कमांड का जवाब 0x01 के "That_Clock" पैरामीटर के साथ दे रहा है (Piconet Clock).
यूनिट: N * 0.3125 ms (1 ब्लूटूथ घड़ी)
Retransmission_Count 4 ऑक्टेट पिछले इवेंट के बाद से, फिर से ट्रांसमिशन की संख्या.
होस्ट को रिपोर्ट करने के बाद, यह संख्या रीसेट हो जाएगी.
No_RX_Count 4 ऑक्टेट पिछले इवेंट के बाद से कोई RX संख्या नहीं.
शेड्यूल किए गए टाइम स्लॉट पर कोई पैकेट नहीं मिलने या मिला पैकेट खराब होने पर संख्या बढ़ जाती है.
होस्ट को रिपोर्ट करने के बाद, यह संख्या रीसेट हो जाएगी.
NAK_Count 4 ऑक्टेट पिछले इवेंट के बाद से NAK (नेगेटिव स्वीकार) की गिनती.
होस्ट को रिपोर्ट करने के बाद, यह संख्या रीसेट हो जाएगी.
Last_TX_ACK_Timestamp 4 ऑक्टेट पिछले TX ACK का टाइमस्टैंप. यह पिकोनेट सेंट्रल (CLK) की ब्लूटूथ घड़ी (CLK) पर आधारित है.
यूनिट: N * 0.3125 ms (1 ब्लूटूथ घड़ी)
Flow_Off_Count 4 ऑक्टेट पिछले इवेंट के बाद से, कंट्रोलर को फ़्लो-ऑफ़ (STOP) मिलने की संख्या.
होस्ट को रिपोर्ट करने के बाद, यह संख्या रीसेट हो जाएगी.
Last_Flow_On_Timestamp 4 ऑक्टेट आखिरी फ़्लो-ऑन (GO) का टाइमस्टैंप. यह पिकोनेट सेंट्रल (CLK) की ब्लूटूथ घड़ी (CLK) पर आधारित है.
यूनिट: N * 0.3125 ms (1 ब्लूटूथ घड़ी)
Buffer_Overflow_Bytes 4 ऑक्टेट [बाइट में]

आखिरी इवेंट के बाद से बफ़र ओवरफ़्लो की संख्या.
कंट्रोलर यह गिनता है कि कितने बाइट डेटा छूट गया है.
होस्ट को रिपोर्ट करने के बाद, यह संख्या रीसेट हो जाएगी.

Buffer_Underflow_Bytes 4 ऑक्टेट [बाइट में]

पिछले इवेंट के बाद से बफ़र अंडरफ़्लो की संख्या.
होस्ट को रिपोर्ट करने के बाद, यह संख्या रीसेट हो जाएगी.

bdaddr 6 ऑक्टेट रिमोट डिवाइस का पता
cal_failed_item_count 1 ऑक्टेट कैलिब्रेशन में शामिल न हो पाने वाले आइटम की संख्या
TX_Total_Packets 4 ऑक्टेट भेजे गए पैकेट की संख्या.
TX_UnAcked_Packets 4 ऑक्टेट उन पैकेट की संख्या जिन्हें स्वीकार नहीं किया जा सकता.
होस्ट को रिपोर्ट करने के बाद, यह संख्या रीसेट हो जाती है.
TX_Flushed_Packets 4 ऑक्टेट ऐसे पैकेट की संख्या जिन्हें उसके फ़्लश पॉइंट की मदद से बाहर नहीं भेजा जा सकता.
होस्ट को रिपोर्ट करने के बाद, यह संख्या रीसेट हो जाती है.
TX_Last_Subevent_Packets 4 ऑक्टेट यह ऐसे पैकेट की संख्या है जो लिंक लेयर, सीआईएस इवेंट के आखिरी सब-इवेंट में, सीआईएस डेटा पीडीयू को ट्रांसमिट करता है.
होस्ट को रिपोर्ट करने के बाद, यह संख्या रीसेट हो जाती है.
अगर लिंक के लिए कोई मान्य वैल्यू नहीं है, तो वैल्यू शून्य होती है.
CRC_Error_Packets 4 ऑक्टेट पिछले इवेंट के बाद से सीआरसी गड़बड़ी वाले मिले पैकेज की संख्या.
होस्ट को रिपोर्ट करने के बाद, यह संख्या रीसेट हो जाती है.
RX_Duplicate_Packets 4 ऑक्टेट पिछले इवेंट के बाद से अब तक मिले डुप्लीकेट (रीट्रांसमिशन) पैकेज की संख्या.
होस्ट को रिपोर्ट करने के बाद, यह संख्या रीसेट हो जाती है.
RX_Unreceived_Packets 4 ऑक्टेट जिन पैकेट को डिलीवर नहीं किया गया है उनकी संख्या, LE READ ISO लिंक क्वालिटी कमांड के पैरामीटर के बराबर है. (ब्लूटूथ कोर स्पेसिफ़िकेशन वर्शन 5.4 देखें). इससे जुड़ी स्ट्रीम, सीआईएस और बीआईएस हैं.
इस वैल्यू को बढ़ाने पर, लिंक लेयर को उसके फ़्लश पॉइंट (सीआईएस पर) या इवेंट के आखिर में (बीआईएस पर) के हिसाब से कोई पेलोड नहीं मिलता है. ब्लूटूथ कोर स्पेसिफ़िकेशन वर्शन 5.4 Vol 6 पार्ट B, सेक्शन 4.4.6.6 देखें).
Coex_Info_Mask 2 ऑक्टेट बिट 0 - साथ मिलकर काम करना: यह बताने के लिए सेट करें कि इस रिपोर्ट के जनरेट होने पर, साथ मिलकर काम करने की गतिविधि में शामिल होने की आशंका है. उदाहरण के लिए, A2DP चॉप्स और एलएसटीओ के आस-पास होने वाले इवेंट.
बिट 1 - WL 2G रेडियो चालू: यह बताने के लिए सेट करें कि WLAN 2G रेडियो चालू है या नहीं.
बिट 2 - WL 2G कनेक्ट है: यह बताने के लिए सेट करें कि WLAN 2G रेडियो चालू है और कनेक्ट है.
बिट 3 - WL 5G/6G रेडियो ऐक्टिव: यह दिखाने के लिए सेट करें कि WLAN 5G/6G रेडियो चालू है.
बिट 4-15 - रिज़र्व किया गया
वेंडर के लिए खास पैरामीटर (पैरामीटर की कुल लंबाई - अभी तय नहीं है) * ऑक्टेट कंट्रोलर वेंडर के लिए, वेंडर के हिसाब से ज़्यादा पैरामीटर पाने के लिए.

सब-इवेंट कोड = 0x58 [ Quality_report_Id = 0x05, रूट इनफ़्लेमेशन इवेंट]

इस इवेंट से पता चलता है कि ब्लूटूथ HAL या कंट्रोलर में गंभीर गड़बड़ी हुई है. इसे रिकॉर्ड करने और रीस्टार्ट करने के लिए, ब्लूटूथ स्टैक की ज़रूरत होती है. किसी भी मामले में, डीबग की जानकारी वाले इवेंट का पहला फ़्रैगमेंट भेजने से पहले, कंट्रोलर को ब्लूटूथ स्टैक पर Root_Inflammation_Event भेजना होगा.

error_Code पैरामीटर में, HAL/Controller से रिपोर्ट किया गया गड़बड़ी कोड 0 होता है. अगर यह चिपसेट वेंडर से जुड़ी गड़बड़ी है. Vendor_specific_Error_Code में HAL/Controller से आया एक चिपसेट वेंडर खास गड़बड़ी कोड शामिल होता है. अगर error_Code पैरामीटर की वैल्यू 0 नहीं है, तो इसे 0 के तौर पर सेट किया जाना चाहिए. पैरामीटर error_Code और Vendor_specific_Error_Code, दोनों की वैल्यू 0 नहीं होनी चाहिए.

सब-इवेंट पैरामीटर साइज़ मकसद
Quality_Report_Id 1 ऑक्टेट 0x00 ~ 0x04: रिज़र्व किया गया.
0x05: जड़ की सूजन.
0x06 ~ 0xFF: रिज़र्व किया गया.
Error_Code 1 ऑक्टेट 0x00: चिपसेट वेंडर से जुड़ा गड़बड़ी कोड शामिल है.
0x01 ~ 0xFF: नियंत्रक काम नहीं कर रहा है. गड़बड़ी कोड और ब्यौरे की सूची के लिए, ब्लूटूथ स्पेसिफ़िकेशन [Vol 2] पार्ट D, गड़बड़ी कोड देखें.
Vendor_Specific_Error_Code 1 ऑक्टेट 0x00: कोई चिपसेट वेंडर खास गड़बड़ी कोड शामिल नहीं किया गया है.
0x01 ~ 0xFF: चिपसेट वेंडर से जुड़ी गड़बड़ी का कोड.
वेंडर के लिए खास पैरामीटर (पैरामीटर की कुल लंबाई - 4) * ऑक्टेट कंट्रोलर वेंडर के लिए, वेंडर के हिसाब से ज़्यादा पैरामीटर पाने के लिए.
सब-इवेंट पैरामीटर साइज़ मकसद
Quality_Report_Id 1 ऑक्टेट 0x00 ~ 0x10: रिज़र्व किया गया.
0x11: LMP/LL मैसेज ट्रेस.
0x12: ब्लूटूथ मल्टी-लिंक/Coex शेड्यूलिंग ट्रेस.
0x13: कंट्रोलर डीबग की जानकारी का डेटा डंप.
0x14 ~ 0xFF: रिज़र्व किया गया.
Connection_Handle 2 ऑक्टेट कनेक्शन हैंडल.
वेंडर के लिए खास पैरामीटर (पैरामीटर की कुल लंबाई - 4) * ऑक्टेट एलएमपी मैसेज ट्रेस का वेंडर के लिए खास फ़ॉर्मैट, ब्लूटूथ मल्टी-लिंक/Coex शेड्यूल करने का ट्रेस, और कंट्रोलर डीबग की जानकारी का डेटा डंप.

मल्टी-विज्ञापन देने वाले के लिए सहायता

मल्टी-ऐडवर्टाइज़र सहायता के मकसद ये हैं:

  • एक से ज़्यादा विज्ञापन दिखाने की सुविधा (max_advt_instances)
  • अलग-अलग रेंज में, पावर का अलग-अलग ट्रांसमिशन
  • विज्ञापन का अलग-अलग कॉन्टेंट
  • हर विज्ञापन देने वाले के लिए अलग-अलग जवाब
  • हर विज्ञापन देने वाले के लिए निजता (ट्रैक नहीं की जा सकने वाली)
  • कनेक्ट किया जा सकता है

इस खास जानकारी को मौजूदा मानकों के करीब रखने के लिए, वेंडर के हिसाब से ये निर्देश दिए गए हैं. इन्हें ब्लूटूथ Core 4.1 स्पेसिफ़िकेशन से लिया जाता है.

LE_Multi_Advt_Command

ओसीएफ़: 0x154

कमांड पैरामीटर साइज़ मकसद
Multi_advt_opcode 1 ऑक्टेट 0x01 - Set_Advt_Param_Multi_Sub_Cmd
0x02 - Set_Advt_Data_Multi_Sub_Cmd
0x03 - Set_Scan_Resp_Data_Multi_Sub_Cmd
0x04 - Set_Random_Addr_Multi_Sub_Cmd
0x05 - Set_Advt_Enable_Multi_Sub_Cmd

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Multi_advt_opcode 1 ऑक्टेट 0x01 - Set_Advt_Param_Multi_Command
0x02 - Set_Advt_Data_Multi_Command
0x03 - Set_Scan_Resp_Data_Multi_Command
0x04 - Set_Random_Addr_Multi_Command
0x05 - Set_Advt_Enable_Multi_Command

LE_Multi_Advt_Command: Set_Advt_Param_Multi_Sub_Cmd

बेस रेफ़रंस: ब्लूटूथ कोर 4.1 स्पेसिफ़िकेशन, पेज 964 (LE Set विज्ञापन पैरामीटर से जुड़ा निर्देश)

सब ओसीएफ़: 0x01

सब-कमांड पैरामीटर साइज़ मकसद
Advertising_Interval_Min हर स्पेसिफ़िकेशन के हिसाब से हर स्पेसिफ़िकेशन के हिसाब से
Advertising_Interval_Max हर स्पेसिफ़िकेशन के हिसाब से हर स्पेसिफ़िकेशन के हिसाब से
Advertising_Type हर स्पेसिफ़िकेशन के हिसाब से हर स्पेसिफ़िकेशन के हिसाब से
Own_Address_Type हर स्पेसिफ़िकेशन के हिसाब से हर स्पेसिफ़िकेशन के हिसाब से
Own_Address हर स्पेसिफ़िकेशन के हिसाब से हर स्पेसिफ़िकेशन के हिसाब से
Direct_Address_Type हर स्पेसिफ़िकेशन के हिसाब से हर स्पेसिफ़िकेशन के हिसाब से
Direct_Address हर स्पेसिफ़िकेशन के हिसाब से हर स्पेसिफ़िकेशन के हिसाब से
Advertising_Channel_Map हर स्पेसिफ़िकेशन के हिसाब से हर स्पेसिफ़िकेशन के हिसाब से
Adverstising_Filter_Policy हर स्पेसिफ़िकेशन के हिसाब से हर स्पेसिफ़िकेशन के हिसाब से
Advertising_Instance 1 ऑक्टेट यह बताता है कि किसी इंस्टेंस पर ऊपर दिए गए पैरामीटर लागू हैं या नहीं
Tx_power 1 ऑक्टेट Transmit_Power
यूनिट - dBm में (साइन किया गया पूर्णांक)
रेंज (-70 से +20)

एक से ज़्यादा विज्ञापन के इस इंस्टेंस को सेट अप करते समय, Own_Address पैरामीटर होस्ट का कॉन्फ़िगर किया गया पता हो सकता है. इससे पहले बीकन को ट्रांसमिट करते समय, एक निजी पते को रिज़ॉल्व करने लायक निजी पते की सुविधा मिलती है. किसी इंस्टेंस पर विज्ञापन दिखाना जारी रहेगा, भले ही कनेक्शन किसी भी तरह से क्यों न हो. होस्ट BT स्टैक, कनेक्शन के बाद किसी इंस्टेंस पर विज्ञापन शुरू करने के लिए निर्देश दे सकता है.

इस निर्देश के लिए, ऊपर दिए गए निर्देश के मुताबिक, ब्लूटूथ कोर 4.1 स्पेसिफ़िकेशन में बताए गए Command Complete इवेंट जनरेट किया जाएगा. अगर विज्ञापन इंस्टेंस या Tx_Power पैरामीटर अमान्य हैं, तो कंट्रोलर, सफल नहीं होने वाला (अमान्य पैरामीटर) कोड दिखाएगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Multi_advt_opcode 1 ऑक्टेट 0x01 [Set_Advt_Param_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Advt_Data_Multi_Sub_Cmd

बेस रेफ़रंस: ब्लूटूथ कोर 4.1 स्पेसिफ़िकेशन, पेज 969 (LE Set विज्ञापन डेटा कमांड)

सब ओसीएफ़: 0x02

सब-कमांड पैरामीटर साइज़ मकसद
Advertising_Data_Length हर स्पेसिफ़िकेशन के हिसाब से हर स्पेसिफ़िकेशन के हिसाब से
Advertising_Data हर स्पेसिफ़िकेशन के हिसाब से हर स्पेसिफ़िकेशन के हिसाब से
Advertising_Instance 1 ऑक्टेट यह बताता है कि किसी इंस्टेंस पर ऊपर दिए गए पैरामीटर लागू हैं या नहीं

इस निर्देश के लिए, ऊपर दिए गए निर्देश के मुताबिक, ब्लूटूथ कोर 4.1 स्पेसिफ़िकेशन में बताए गए Command Complete इवेंट जनरेट किया जाएगा. अगर विज्ञापन इंस्टेंस या Tx_Power पैरामीटर अमान्य हैं, तो कंट्रोलर, सफल नहीं होने वाला कोड दिखाएगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Multi_advt_opcode 1 ऑक्टेट 0x02 [Set_Advt_Data_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Scan_Resp_Data_Multi_Sub_Cmd

बेस रेफ़रंस: ब्लूटूथ कोर 4.1 स्पेसिफ़िकेशन, पेज 970 (LE सेट स्कैन रिस्पॉन्स डेटा कमांड)

सब ओसीएफ़: 0x03

सब-कमांड पैरामीटर साइज़ मकसद
Scan_Response_Data_Length हर स्पेसिफ़िकेशन के हिसाब से हर स्पेसिफ़िकेशन के हिसाब से
Scan_Response_Data हर स्पेसिफ़िकेशन के हिसाब से हर स्पेसिफ़िकेशन के हिसाब से
Advertising_Instance 1 ऑक्टेट यह बताता है कि किसी इंस्टेंस पर ऊपर दिए गए पैरामीटर लागू हैं या नहीं

इस निर्देश के लिए, ऊपर दिए गए निर्देश के मुताबिक, ब्लूटूथ कोर 4.1 स्पेसिफ़िकेशन में बताए गए Command Complete इवेंट जनरेट किया जाएगा. अगर विज्ञापन इंस्टेंस या Tx_Power पैरामीटर अमान्य हैं, तो कंट्रोलर, सफल नहीं होने वाला कोड (अमान्य पैरामीटर) दिखाएगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Multi_advt_opcode 1 ऑक्टेट 0x03 [Set_Scan_Resp_Data_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_रैंडम_Addr_Multi_Sub_Cmd

बेस रेफ़रंस: ब्लूटूथ कोर 4.1 स्पेसिफ़िकेशन, पेज 963 (LE Set रैंडम अड्रेस कमांड)

सब ओसीएफ़: 0x04

सब-कमांड पैरामीटर साइज़ मकसद
कोई भी पता हर स्पेसिफ़िकेशन के हिसाब से हर स्पेसिफ़िकेशन के हिसाब से
Advertising_Instance 1 ऑक्टेट यह बताता है कि किसी इंस्टेंस पर ऊपर दिए गए पैरामीटर लागू हैं या नहीं

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Multi_advt_opcode 1 ऑक्टेट 0x04 [Set_Random_Addr_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Advt_enable_Multi_Sub_Cmd

बेस रेफ़रंस: ब्लूटूथ कोर 4.1 स्पेसिफ़िकेशन, पेज 971 (LE सेट विज्ञापन चालू करें निर्देश (उस मुख्य स्पेसिफ़िकेशन में)

ओसीएफ़: 0x05

सब-कमांड पैरामीटर साइज़ मकसद
Advertising_Enable 1 ऑक्टेट वैल्यू 1 होने का मतलब है कि चालू करें. किसी अन्य वैल्यू का मतलब है कि बंद करना.
Advertising_Instance 1 ऑक्टेट यह बताता है कि किसी इंस्टेंस पर ऊपर दिए गए पैरामीटर लागू हैं या नहीं. इंस्टेंस 0 का मतलब स्टैंडर्ड HCI इंस्टेंस से है.

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Multi_advt_opcode 1 ऑक्टेट 0x05 [Set_Advt_Enable_Multi_Sub_Cmd]

निजी पते का ऑफ़लोडेड रिज़ॉल्यूशन

यह सुविधा कंट्रोलर फ़र्मवेयर या हार्डवेयर के निजी पते का इस्तेमाल करती है, जिससे ये फ़ायदे मिलते हैं:

  • निजी पते का समाधान करने में, होस्ट की देरी
  • होस्ट को न जगाकर बिजली की बचत करें

LE_Set_RPA_समय खत्म

ओसीएफ़: 0x15C

कमांड पैरामीटर साइज़ मकसद
LE_local_IRK 16 ऑक्टेट लोकल डिवाइस आईआरके का इस्तेमाल रैंडम तरीके से रिज़ॉल्व किए जा सकने वाले पते जनरेट करने के लिए किया जाता है.
tRPA_min 2 ऑक्टेट आरपीए जनरेट होने का कम से कम सेकंड में टाइम आउट. इस टाइम आउट को या उसके बाद, विज्ञापन/स्कैनिंग/कनेक्शन इवेंट के लिए कंट्रोलर को नए पते जनरेट करने होंगे.
मान्य रेंज: 300-1800
tRPA_max 2 ऑक्टेट आरपीए जनरेट होने का ज़्यादा से ज़्यादा समय (सेकंड में). कंट्रोलर को इस टाइम आउट की तारीख को या उससे पहले, विज्ञापन/स्कैनिंग/कनेक्शन इवेंट के लिए नए पते जनरेट करने होंगे. ये पते रिज़ॉल्व किए जा सकते हैं.
मान्य रेंज: tRPA_min-1800
रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश की स्थिति.

HCI स्टेटस की सुझाई गई वैल्यू:
0x00 हो गया
0x01 अनजान निर्देश (अगर काम नहीं करता है)
0x12 अमान्य कमांड पैरामीटर (अगर कोई पैरामीटर दी गई रेंज से बाहर है)

LE_RPA_offload_कमांड

ओसीएफ़: 0x155

कमांड पैरामीटर साइज़ मकसद
RPA_offload_opcode 1 ऑक्टेट 0x1 - ग्राहक के लिए खास सुविधा चालू करें
0x2 - सूची में IRK जोड़ें
0x3 - IRK को सूची से हटाएं
0x4 - IRK सूची को मिटाएं
0x5 - IRK सूची की एंट्री पढ़ें

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Event_RPA_offload_opcode 1 ऑक्टेट 0x1 - ग्राहक के लिए खास सुविधा चालू करें
0x2 - सूची में IRK जोड़ें
0x3 - IRK को सूची से हटाएं
0x4 - IRK सूची को मिटाएं
0x5 - IRK सूची की एंट्री पढ़ें

LE_RPA_offload: सक्षम करें_cust_specific_sub_Command

सब ओसीएफ़: 0x01

सब-कमांड पैरामीटर साइज़ मकसद
enable_customer_specific_feature_set 1 ऑक्टेट 0x01 - ऑफ़लोडेड आरपीए सुविधा चालू करें
0x00 - ऑफ़लोडेड आरपीए सुविधा बंद करें

चिप की क्षमता के हिसाब से, आरपीए ऑफ़लोड को होस्ट के पास चालू करना ज़रूरी है. LE_Get_Vendor_Capabilities_Command देखें. फ़र्मवेयर में हर चिप के लिए, अलग-अलग max_irk_list_sz हो सकते हैं.

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Event_cust_specific_feature_opcode 1 ऑक्टेट 0x01 [ग्राहक से जुड़ी सुविधा चालू करें]

LE_RPA_offload: जोड़ें_IRK_to_list_sub_Command

सब ओसीएफ़: 0x02

सब-कमांड पैरामीटर साइज़ मकसद
LE_IRK 16 ऑक्टेट LE IRK (1st बाइट LSB)
Address_Type 1 ऑक्टेट 0: सार्वजनिक पता
1: कोई भी पता
LE_Device_Address 6 ऑक्टेट आईआरके (1st बाइट LSB) से जुड़ा सार्वजनिक या रैंडम पता

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Event_cust_specific_feature_opcode 1 ऑक्टेट 0x02 [सूची में IRK जोड़ें]
LE_IrkList_AvailableSpaces 1 ऑक्टेट मौजूदा ऑपरेशन के बाद उपलब्ध आईआरएल सूची की एंट्री

LE_RPA_offload: हटाएँ_IRK_to_list_sub_Command

सब ओसीएफ़: 0x03

सब-कमांड पैरामीटर साइज़ मकसद
Address_Type 1 ऑक्टेट 0: सार्वजनिक पता
1: कोई भी पता
LE_Device_Address 6 ऑक्टेट आईआरके से जुड़ा सार्वजनिक या कोई भी पता

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Event_cust_specific_feature_opcode 1 ऑक्टेट 0x03 [सूची से IRK हटाएं]
LE_IrkList_AvailableSpaces 1 ऑक्टेट मौजूदा ऑपरेशन के बाद उपलब्ध आईआरएल सूची की एंट्री

LE_RPA_offload: खाली करें_IRK_list_sub_Command

सब ओसीएफ़: 0x04

सब-कमांड पैरामीटर साइज़ मकसद
कोई नहीं

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Event_cust_specific_feature_opcode 1 ऑक्टेट 0x04 [IRK सूची साफ़ करें]
LE_IrkList_AvailableSpaces 1 ऑक्टेट मौजूदा ऑपरेशन [max_irk_list_sz]

LE_RPA_offload: Read_IRK_list_sub_Command

सब ओसीएफ़: 0x05

सब-कमांड पैरामीटर साइज़ मकसद
LE_read_IRK_list_entry-index 1 ऑक्टेट आईआरके सूची का इंडेक्स [0, max_irk_list_sz-1]

इस निर्देश के लिए, Command Complete इवेंट जनरेट होगा.

रिटर्न पैरामीटर साइज़ मकसद
Status 1 ऑक्टेट निर्देश पूरा होने की स्थिति
Event_cust_specific_feature_opcode 1 ऑक्टेट 0x05 [आईआरके लिस्ट में दी गई जानकारी पढ़ें]
LE_Read_IRK_List_entry 1 ऑक्टेट उस आईआरके का इंडेक्स जिसे होस्ट वापस पढ़ना चाहता है (आईआरके सूची का साइज़ ज़्यादा से ज़्यादा 32 है)
LE_IRK 16 ऑक्टेट आईआरके वैल्यू
Address_Type 1 ऑक्टेट 0: सार्वजनिक पता
1: कोई भी पता
LE_Device_Address 6 ऑक्टेट आईआरके से जुड़ा सार्वजनिक या रैंडम पता
LE_Resolved_Private_Address 6 ऑक्टेट इस आईआरके का रिज़ॉल्व किया जा सकने वाला निजी पता, अभी ठीक किया गया है