होस्ट कंट्रोलर इंटरफ़ेस (एचसीआई) का इस्तेमाल ब्लूटूथ कंट्रोलर से इंटरैक्ट करने के लिए किया जाता है.
इस दस्तावेज़ में ब्लूटूथ (बीटी) और ब्लूटूथ कम ऊर्जा (बीएलई) वाले एचसीआई के लिए तय की गई ज़रूरी शर्तों की सूची दी गई है. इसका मकसद, होस्ट बीटी स्टैक वेंडर और बीटी कंट्रोलर के वेंडर के लिए, प्लैटफ़ॉर्म की इन ज़रूरी शर्तों को पूरा करना है. इन शर्तों को पूरा करने के बाद ही, यहां बताई गई सुविधा के सेट का इस्तेमाल किया जा सकता है.
यह दस्तावेज़, ब्लूटूथ कोर 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_records num_of_records Scan_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 |
वैरिएबल साइज़ |
स्थानीय नाम के लिए वर्ण स्ट्रिंग. ध्यान दें:
|
इस निर्देश के लिए, 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 |
वैरिएबल साइज़ |
मैन्युफ़ैक्चरर के डेटा के लिए वर्ण स्ट्रिंग. ध्यान दें:
|
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 |
वैरिएबल साइज़ |
सेवा से जुड़े डेटा के लिए वर्ण स्ट्रिंग. ध्यान दें:
|
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 ऑक्टेट |
ज़्यादा सुविधाओं के लिए बिट मास्क:
बिट की वैल्यू
|
नियंत्रक गतिविधि और ऊर्जा की जानकारी का निर्देश
इस जानकारी का मकसद, ऐप्लिकेशन और फ़्रेमवर्क में हो रही गतिविधियों के साथ, बीटी कंट्रोलर और उसकी मैक्रो स्थिति के साथ-साथ सभी कॉम्पोनेंट की कुल गतिविधियों का विश्लेषण करना है. ऐसा करने के लिए, ब्लूटूथ स्टैक और कंट्रोलर से यह जानकारी पाना ज़रूरी है:
- ब्लूटूथ स्टैक: कंट्रोलर की मौजूदा मैक्रो-ऑपरेशनल स्थिति की रिपोर्ट करना
- फ़र्मवेयर: गतिविधि और ऊर्जा की पूरी जानकारी की रिपोर्टिंग
उपयोगकर्ता के लेवल पर तय किए गए बीटी होस्ट स्टैक मैक्रो स्टेटस:
- प्रयोग में नहीं: [पेज स्कैन, 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 हेडर को जोड़ने की सुविधा चालू करता है.
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 कोडेक के खास एलिमेंट देखें. AAC कोडेक:
A2DP v1.3 में, AAC कोडेक से जुड़ी खास जानकारी वाले एलिमेंट देखें LDAC कोडेक:
0 से 3 अक्टूबर: वेंडर आईडी
4-5 अक्टूबर: कोडेक आईडी
6 अक्टूबर: बिटरेट इंडेक्स:
7 अक्टूबर: LDAC चैनल मोड 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 - जोड़ें
मिटाने से, क्वालिटी वाले इवेंट की रिपोर्ट मिट जाएगी. |
BQR_Quality_Event_Mask |
4 ऑक्टेट |
चुने गए क्वालिटी इवेंट की रिपोर्टिंग के लिए बिट मास्क.
बिट 0: क्वालिटी मॉनिटरिंग मोड चालू करने के लिए सेट करें. |
BQR_Minimum_Report_Interval |
2 ऑक्टेट |
चुने गए क्वालिटी इवेंट के लिए, क्वालिटी इवेंट रिपोर्टिंग के लिए कम से कम
टाइम इंटरवल तय करें. कंट्रोलर फ़र्मवेयर को तय किए गए समय अंतराल में
अगले इवेंट की रिपोर्ट नहीं देनी चाहिए. अंतराल सेटिंग, जोड़े जा रहे क्वालिटी इवेंट से जुड़ी होगी और सिर्फ़ उन ही इवेंट के लिए तय होगी.
यूनिट: मि॰से॰ |
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. कंट्रोलर फ़र्मवेयर को तय किए गए समय अंतराल में अगले इवेंट की रिपोर्ट नहीं देनी चाहिए. इंटरवल सेटिंग, खास तौर पर जोड़े गए क्वालिटी इवेंट के लिए है.
यूनिट: मि॰से॰ 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 शेड्यूलिंग ट्रेस अपलोड की या कंट्रोलर ने डीबग की जानकारी का डंप किया.
सब-इवेंट कोड = 0x58 [क्वालिटी_रिपोर्ट_आईडी = 0x01 ~ 0x04, लिंक क्वालिटी से जुड़ा इवेंट]
सब-इवेंट पैरामीटर | साइज़ | मकसद |
---|---|---|
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 के लिए सिग्नल स्ट्रेंथ इंडिकेशन (आरएसएसआई) की वैल्यू मिली. |
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) * ऑक्टेट | कंट्रोलर वेंडर के लिए, वेंडर के हिसाब से ज़्यादा पैरामीटर पाने के लिए. |
सब-इवेंट कोड = 0x58 [क्वालिटी_रिपोर्ट_आईडी = 0x11 ~ 0x13, लॉग डंप से जुड़ा इवेंट]
सब-इवेंट पैरामीटर | साइज़ | मकसद |
---|---|---|
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 ऑक्टेट | इस आईआरके का रिज़ॉल्व किया जा सकने वाला निजी पता, अभी ठीक किया गया है |