2012-12-30 30 views
7

इस मुद्दे पर अक्टूबर here पर चर्चा की गई है। यह एक नया सवाल है क्योंकि कोरब्लूटूथ काफी नया है और तब से कुछ बदलाव हुए होंगे।कोरब्लूटूथ विज्ञापन पहचान समय

मेरे पास प्रत्येक 2 सेकंड में एक बीएलई डिवाइस विज्ञापन है।

[self.CM scanForPeripheralsWithServices:nil options:0] 

कौन सा सबसे अधिक बार रिटर्न (centralManager didDiscoverPeripheral कॉलबैक के माध्यम से) के आसपास 2s 4s के लिए बाद में: स्कैन का उपयोग कर प्रारंभ किया जाता है। (सीएम मेरा सेंट्रल मैनेजर है)

हालांकि, लगभग 30% समय, स्कैन में 10 से 18 सेकंड लगते हैं। स्पेक्ट्रम को जितना संभव हो सके साफ़ करने के लिए आस-पास के उपकरणों में वाईफ़ाई और बीटी अक्षम कर दिया गया है। स्कैन करने का समय आरएसएसआई से असंबंधित प्रतीत होता है। आईपीएड 3 के बगल में -40 डीबी है, -70 डीबी जब दूसरे कमरे में लगभग 5 मीटर दूर है।

[self.CM stopScan]; 

स्कैनविथ पेरिफेरल्स से पहले कहा जाता है क्योंकि यह वास्तव में लंबे इंतजार की घटना को कम कर देता है।

कोई कनेक्शन नहीं बनाया जा रहा है। कोई विशेष या सेवा डेटा अनुरोध नहीं किया जा रहा है। विज्ञापन डेटा पर्याप्त है।

एक उपयोगी टीआई demonstrator app है। यह वैसे ही परिणाम प्राप्त (वास्तव में थोड़ा भी बदतर के रूप में यह किसी भी stopScan कॉल कर नहीं करता है) के रूप में इस Stackoverflow answer में देखा कुछ भी खोज बार को लंबा करने लगता है, तो

CBCentralManagerScanOptionAllowDuplicatesKey विकल्प।

जाहिर है, अगला चरण इस कोरब्लूटूथ प्रतिक्रिया को आगे बढ़ाने के लिए कुछ और उन्नत बीटी स्निफर/विज्ञापन पीढ़ी के औजारों का उपयोग करना है।

यह एक और उपयोगी SO question है, लेकिन प्रतिक्रिया समय पर पर्याप्त विस्तृत नहीं करता है।

उत्तर

10

कोरब्लूथूट लगातार सुन नहीं रहा है। यह ब्लूटूथ क्लासिक और वाईफ़ाई के साथ एचडब्ल्यू संसाधन साझा कर रहा है।

मूल रूप से आपको विज्ञापन पैकेज प्राप्त करने के लिए "भाग्यशाली" होना चाहिए। "लकी" के रूप में 2 असुरक्षित सिस्टम की 2 स्लाइडिंग विंडो एक-दूसरे को मारनी चाहिए। यदि कोरब्लूटूथ इसकी बीएलई विंडो को 10% समय खोलता है और आपने सटीक समय के बारे में ज्ञान के बिना विज्ञापन अंतराल सेट किया है तो यह विज्ञापन अंतराल 10 गुना ले सकता है।

एक सिफारिश है कि पहले 30 सेकंड के लिए तेजी से < विज्ञापन दें (20ms कहें और आपको इसे पहले सक्रिय कोरब्लूटूथ विंडो में खोजना चाहिए) और फिर ऐप्पल द्वारा निर्दिष्ट अंतराल को धीमा कर दें। 2,00 सेकंड एक अच्छी संख्या नहीं है।

यहाँ दिशानिर्देश देखें: https://developer.apple.com/hardwaredrivers/BluetoothDesignGuidelines.pdf

पृष्ठ 18

विज्ञापन अंतराल ब्लूटूथ गौण के विज्ञापन अंतराल ध्यान से विचार किया जाना चाहिए यह खोज करने के लिए समय प्रभावित करता है और प्रदर्शन कनेक्ट क्योंकि। बैटरी संचालित सहायक के लिए, इसके बैटरी संसाधन भी माना जाना चाहिए। ऐप्पल उत्पाद द्वारा खोजे जाने के लिए, ब्लूटूथ एक्सेसरी को पहले कम से कम 30 सेकंड के लिए अनुशंसित विज्ञापन अंतराल 20 एमएस का उपयोग करना चाहिए। यदि यह शुरुआती 30 सेकंड के भीतर नहीं खोजा गया है, तो एक्सेसरी बैटरी पावर को बचाने और उसके विज्ञापन अंतराल को बढ़ाने का चयन कर सकती है। एप्पल निम्नलिखित अब अंतराल से एक का उपयोग की सिफारिश एप्पल उत्पाद द्वारा की खोज की संभावना बढ़ाने के लिए: 768 एमएस

645 एमएस 961 एमएस 1065 एमएस 1294 एमएस

तो कोशिश 1294 एमएस यदि आप सहेजना चाहिए बैटरी।

+0

धन्यवाद हेनरिक। यहां डब्ल्यूडब्ल्यूडीसी 2012 [उन्नत कोरब्लूटूथ टॉक] का एक लिंक है (http://www.pupuweb.com/blog/wwdc-2012- सत्र-705- उन्नत-core-bluetooth-joakim-linde/)। –

+0

और ऐप्पल के लिए एक लिंक [ब्लूटूथ-देव मेलिंग सूची] (http://lists.apple.com/archives/bluetooth-dev/) –

+0

आईपैड 3 ब्रॉडकॉम [बीसी 4330] का उपयोग करता है (http://www.broadcom.com /products/Wireless-LAN/802.11- वायरलेस-LAN-Solutions/BCM4330) जो बीटी और वाईफ़ाई के लिए साझा एंटीना का उपयोग करता है। कुछ ड्राइवर जानकारी (शायद एंड्रॉइड के लिए भी) या बीसीएम 4330 उपयोगकर्ता मैनुअल/एप्लिकेशन नोट को देखने के लिए उपयोगी होगा यह देखने के लिए कि क्या हम देख रहे हैं अंतर्निहित हार्डवेयर क्षमता के कारण होता है। –

0

हालांकि यह एक पुराना धागा है, लेकिन मै मैकबुक प्रो (15-इंच, 2017) पर मैकोज़ हाई सिएरा 10.13.3 में एक ही समस्या देखता हूं। समस्या परिधीय उपकरण से भिन्न होती है जहां "ऐप्पल टीवी" हमेशा तेज़ी से दिखता रहता है, शायद क्योंकि इसका संक्षिप्त विज्ञापन समय होता है। कुछ परिधीय लोगों को दिखाने के लिए काफी समय लगता है या बिल्कुल दिखने लगते हैं। साथ ही, यदि विज्ञापन बहुत धीमा है, तो कनेक्टिंग भी धीमी हो सकती है क्योंकि कनेक्शन पहले विज्ञापन ढूंढकर होता है और बाद में बहुत ही कम समय पर इसका जवाब देता है (उस समय परिधीय सुन रहा है)।

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

ध्यान दें कि समस्या बीओटी और वाई-फाई सह-अस्तित्व समर्थन और हैंडऑफ (एयरड्रॉप) और नियमित बीएलई उपयोग के बीच संभवतः आईओएस में दिखाई नहीं दे रही है। यह मुद्दा केवल स्कैन और कनेक्ट के दौरान बीएलई सुनने के समय के अनुपात में से एक प्रतीत होता है। एक बार कनेक्शन स्थापित होने के बाद, उतना हस्तक्षेप नहीं होता है। कुछ हद तक, यह इस तथ्य के कारण है कि एक कनेक्ट होने के बाद स्वचालित अंतराल बीएलई रीट्रीज़ और कनेक्शन अंतराल के बीच आवृत्ति होपिंग होती है। स्कैनिंग और कनेक्शन स्थापित करने के दौरान (दोनों विज्ञापन पैकेट देखने पर भरोसा करते हैं) एक को अनुक्रमिक रूप से 3 बीएलई विज्ञापन चैनलों की निगरानी करनी चाहिए, लेकिन मैकोज व्यवहार करता है जैसे कि वह ऐसा नहीं कर रहा है। तकनीकी रूप से, विज्ञापन चैनल वाई-फाई चैनलों के साथ ओवरलैप नहीं होते हैं (http://www.argenox.com/a-ble-advertising-primer/ देखें)।