कितने सक्रिय ब्लूटूथ डिवाइसों को मैं विश्वसनीय रूप से एक ही स्थान पर पहचान सकता हूं?


9

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

आस-पास के सभी उपकरणों की गणना अविश्वसनीय होने से पहले ब्लूटूथ डिवाइस "घनत्व" पर एक यथार्थवादी ऊपरी सीमा क्या है? उदाहरण के लिए, एक स्थिर ब्लूटूथ-सक्षम पीसी के आसपास के क्षेत्र में 25 सक्रिय डिवाइस हैं एक जगह में बहुत से मज़बूती से और पूरी तरह से (सभी डिवाइस) का पता लगाने के लिए? क्या यह बहुत अधिक भीड़ है?

(स्पष्ट होने के लिए: मुझे कनेक्शन स्थापित करने की आवश्यकता नहीं है। मुझे केवल नाम से उपकरणों की उपस्थिति या अनुपस्थिति का दृढ़ता से पता लगाने की आवश्यकता है।)


क्या आपको अपने प्रश्न के लिए एक नंबर मिला?
रमिस

जवाबों:


9

मैं यह नहीं देख सकता कि ब्लूटूथ स्पेसिफिकेशन उसी क्षेत्र में उपकरणों की सीमा का कोई संदर्भ देता है। यह व्यावहारिक रूप से निर्धारित करना बहुत मुश्किल है क्योंकि यह न केवल ब्लूटूथ डिवाइस से संबंधित है, बल्कि वाईफाई भी।

यह पेपर डिवाइस की गणना में वृद्धि, डिवाइस की खोज में लगने वाले समय को बढ़ाता है: http://www.shiratori.riec.tohoku.ac.jp/~deba/PAPER/Journal/WINET.onlineFinal.pdf

निम्नलिखित पर भी विचार करें:

ब्लूटूथ डिवाइस 2.4 गीगाहर्ट्ज़ रेडियो बैंड के साथ काम करते हैं, जो कि कई अन्य वायरलेस उपकरणों द्वारा उपयोग की जाने वाली एक बिना लाइसेंस की आवृत्ति है। यदि एक ही क्षेत्र में कई डिवाइस सभी बैंडविड्थ की एक ही खिंचाव का उपयोग कर रहे हैं, तो यह समग्र नेटवर्क समस्याओं को जन्म दे सकता है, क्योंकि सिग्नल टकराते हैं और जानकारी को नाराज होना पड़ता है। ब्लूटूथ सिग्नल को इस हस्तक्षेप को कम करने के लिए इसे प्रति सेकंड कई बार आवृत्ति बदलने के लिए डिज़ाइन किया गया था, लेकिन यदि पर्याप्त डिवाइस बैंडविड्थ के समान छोटे खिंचाव का उपयोग करने की कोशिश कर रहे हैं, तो हस्तक्षेप अपरिहार्य है। ब्लूटूथ 3.0, 2010 में बनाए गए उपकरणों में इस्तेमाल किया जा रहा है, 6-9 गीगाहर्ट्ज स्पेक्ट्रम का उपयोग करता है, इसलिए इसमें बहुत कम हस्तक्षेप मुद्दे होंगे। ब्लूटूथ 3.0 डिवाइस पहले के ब्लूटूथ तकनीकों के साथ संचार करने के लिए 2.4 गीगाहर्ट्ज पर संचारित करने में भी सक्षम हैं। ब्लूटूथ 3.0, 2.4 GHz पर चल रहा है,

संक्षेप में प्रस्तुत करने के लिए: आपको संभावित हस्तक्षेप पर ध्यान देने की आवश्यकता है जो आपके पास एक समय की कमी है। मुझे संदेह है कि 25 उपकरण किए जा सकते हैं। लेकिन यह सुनिश्चित करने के लिए कि आपको इसका व्यावहारिक परीक्षण करने की आवश्यकता होगी


5

कितने उपकरण खोजे जा सकते हैं, इस पर कोई सैद्धांतिक ऊपरी सीमा नहीं है, यह खोज के समय के सीधे आनुपातिक है। खोज में बिताए समय की मात्रा बढ़ने से सीमा के भीतर सभी उपकरणों का पता लगाने की संभावना बढ़ जाएगी।

मूल रूप से खोज 32 फ्रिक्वेंसी में से एक पर स्कैनिंग डिवाइस स्कैनिंग और सभी 32 फ़्रीक्वेंसी पर एक बीकन भेजने वाले विज्ञापन उपकरण द्वारा की जाती है। विज्ञापन उपकरण इस क्रम और स्कैनिंग डिवाइस को दोहराते रहते हैं, एक बार जब यह एक बीकन प्राप्त करता है, तो प्रतिक्रिया देगा और कुछ समय के लिए बेतरतीब ढंग से वापस आ जाएगा और एक नई आवृत्ति पर लेट जाएगा और उसी प्रक्रिया को दोहराएगा। इसलिए भले ही एक निश्चित आवृत्ति पर स्कैन करने वाले कई उपकरण हों, पहली बार उनकी प्रतिक्रियाएं टकराएंगी, लेकिन एक बैक ऑफ के बाद वे बेतरतीब ढंग से अलग-अलग आवृत्तियों में समाप्त हो जाते हैं और फिर से नहीं टकराते हुए प्रतिक्रियाओं की अपनी संभावना बढ़ाते हैं।

आपके उपयोग के मामले में 25 सक्रिय डिवाइस बिल्कुल भी समस्या नहीं है, मैंने उन उपकरणों और वातावरण के साथ काम किया है जहां 50-100 डिवाइस थे और 10-15 सेकंड की खोज से अधिकांश डिवाइस आसानी से मिल सकते हैं। उम्मीद है की यह मदद करेगा।


1

हाल ही में मैंने एक ही सवाल का अध्ययन किया- मेरा निष्कर्ष यह है कि सीमाएं आईसी या सॉफ्टवेयर द्वारा हैं।

उपयोग करने के लिए सबसे अच्छा चिप TI आधारित और चिप पर सॉफ्टवेयर पर आधारित है।

एंड्रॉइड / ऐप्पल / विंडोज की कर्नेल में अपनी सीमाएं हैं- इसलिए सॉफ्टवेयर का उपयोग करके बीटी को एन्यूमरेट करने के लिए किसी भी सॉफ्टवेयर को बीटी-स्टैक / कर्नेल द्वारा सीमित किया जाएगा। SoC का उपयोग करने की कोई सीमा नहीं है क्योंकि IC का स्टैक सरल है।

अपने कार्यक्रम के लिए पाइप जानकारी के लिए एक कस्टम तरीके का उपयोग करें।

उस दिन मैंने तय किया कि बीटी का इस्तेमाल नहीं किया जाएगा क्योंकि इसके एब्स में गधा है।

जब तक कि यह नया V4 मानक नहीं है जो विज्ञापन को नए तरीके से संभालता है।

मुझे एक कमरे में असीमित बीटी होने की भी आवश्यकता थी .. अपना खुद का स्वामित्व पीसीबी और रिसीवर बनाने का फैसला किया - क्यों? क्योंकि यह आसान था और सस्ता यह विश्वास है या नहीं।

अपने सवाल पर वापस।

(WP7 / iPhone3,4 / Android की तरह कुछ का उपयोग)

BTv2.1 BT3

सामान्य रूप से विश्वसनीय रूप से 10 से अधिक नहीं। सबसे ज्यादा मैंने 32 को संभाला है।

BT4

श्वेत पत्र कहता है 128 .. केवल Apple 4S इस संस्करण का समर्थन करता है इसलिए मैंने परीक्षण नहीं किया है।


0

एक ब्लूटूथ डिवाइस एक बार में लगभग 7 डिवाइस कनेक्ट कर सकता है। यह इसकी अधिकतम क्षमता है।
लेकिन यह डिवाइस कॉन्फ़िगरेशन के अनुसार भिन्न होता है।
प्रश्न 1
प्रश्न
उपरोक्त लिंक की जाँच करें यह आपके लिए उपयोगी हो सकता है


3
सवाल यह नहीं है कि कितने डिवाइस कनेक्ट हो सकते हैं, यह इस बारे में है कि कितने का पता लगाया जा सकता है। कोई पेयरिंग नहीं होगी।
Kortuk

0

मुझे नहीं लगता कि इसकी कोई सीमा है। जिस तरह से मैंने पास की डिवाइस डिटेक्शन को लागू किया है वह InTheHand.Net लाइब्रेरी ( http://32feet.codeplex.com/ ) का उपयोग करने के लिए था , समय-समय पर सभी पास के उपकरणों के लिए खोज को चलाएं और फिर यह सुनिश्चित करने के लिए प्रत्येक डिवाइस से कनेक्ट करें जो अभी भी उपलब्ध है। कनेक्ट किए बिना मुझे एहसास हुआ कि कोई गारंटी नहीं है कि आप सही ढंग से जान पाएंगे कि एक डिवाइस कब आया या छोड़ा गया।

नीचे एक उदाहरण:

public static List<Device> DiscoverDevices() {
        BluetoothClient bc = new BluetoothClient();
        m_btc = bc;
        List<Device> devices = new List<Device>();
        DateTime startDisc;
        Boolean canConnect;
        BluetoothDeviceInfo[] array = bc.DiscoverDevices(15, true, true, true); 
        int count = array.Length;
        startDisc = DateTime.Now;
        for (int i = 0; i < count; i++) {
            Device device = new Device(array[i]);
            if (MZPState.Instance == null) {
                MLog.Log(null, "BT discovery interrupted");
                return devices;
            }

            canConnect = CanConnect(device);
            if (canConnect) {
                //MLog.Log(null, "Active BT device detected " + device.ToString());
                devices.Add(device);
            }
            //MLog.Log(null, "Discovery result="+canConnect+" on " + device.DeviceName + " " + device.Address+ " took " 
            //  + Utilities.DurationAsTimeSpan(DateTime.Now.Subtract(startDisc)));
        }
        Performance.Create("Bluetooth local discovery", false, "",
            Performance.PerformanceFlags.Speed, DateTime.Now.Subtract(startDisc).TotalMilliseconds);
        return devices;
    }

public static Boolean CanConnect(Device device) {


        bool inRange;
        Guid fakeUuid = new Guid("{F13F471D-47CB-41d6-9609-BAD0690BF891}"); // A specially created value, so no matches.
        try {
            ServiceRecord[] records = device.DevInfo.GetServiceRecords(fakeUuid);
            //Debug.Assert(records.Length == 0, "Why are we getting any records?? len: " + records.Length);
            inRange = true;
        }
        catch (Exception) {
            inRange = false;
        }
        return inRange;

    }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.