আমি একক জায়গায় নির্ভরযোগ্যভাবে কতগুলি সক্রিয় ব্লুটুথ ডিভাইস সনাক্ত করতে পারি?


9

আমি একটি স্বল্প মূল্যের আকর্ষণ ইঞ্জিনিয়ারিং করছি এবং কাছাকাছি সনাক্তকরণের জন্য ব্লুটুথ ডিভাইস সনাক্তকরণ ব্যবহার করার আশাবাদী - অর্থাত্ স্থির অবস্থান এক্সের সীমার মধ্যে অতিথি এ Each প্রতিটি অতিথিকে একটি কাস্টমাইজড মোবাইল ডিভাইস (আইপড বা অ্যান্ড্রয়েড ভিত্তিক) দেওয়া হবে।

আশেপাশের সমস্ত ডিভাইসগুলির অবিশ্বাস্য হয়ে ওঠার আগে ব্লুটুথ ডিভাইস "ঘনত্ব" এর উপর একটি রিয়েলস্টিক আপার বাউন্ড কী? উদাহরণস্বরূপ, নির্ভরযোগ্যভাবে এবং সম্পূর্ণরূপে (সমস্ত ডিভাইস) সনাক্ত করার জন্য কোনও স্থির ব্লুটুথ-সক্ষম পিসির আশেপাশে 25 টি সক্রিয় ডিভাইস রয়েছে? এটা কি খুব বেশি ভিড়?

(পরিষ্কার করার জন্য: আমার সংযোগ স্থাপনের দরকার নেই I কেবল নাম অনুসারে ডিভাইসের উপস্থিতি বা অনুপস্থিতি আমার নির্ভরযোগ্যভাবে সনাক্ত করতে হবে))


আপনি কি আপনার প্রশ্নের জন্য একটি নম্বর পেয়েছেন?
রামিস

উত্তর:


9

আমি দেখতে পাচ্ছি না যে ব্লুটুথ স্পেসিফিকেশন একই অঞ্চলে ডিভাইসের সীমাতে কোনও রেফারেন্স তৈরি করে। এটি ব্যবহারিকভাবে নির্ধারণ করা খুব কঠিন কারণ এটি কেবল ব্লুটুথ ডিভাইসগুলির সাথেই নয়, পাশাপাশি ওয়াইফাইও সম্পর্কিত।

এই কাগজটি কীভাবে ডিভাইস গণনার পরিমাণ বৃদ্ধি করে, ডিভাইস আবিষ্কারের জন্য যে সময় নেয় তা বাড়িয়ে তোলে : http://www.shiratori.riec.tohoku.ac.jp/~deba/PAPER/ জার্নাল / WINET-onlineFinal.pdf

নিম্নলিখিতগুলিও বিবেচনা করুন:

ব্লুটুথ ডিভাইসগুলি ২.৪ গিগাহার্টজ রেডিও ব্যান্ডের সাথে কাজ করে, এটি অন্যান্য লাইসেন্সবিহীন ডিভাইসগুলির দ্বারা ব্যবহৃত একই লাইসেন্সবিহীন ফ্রিকোয়েন্সি। যদি একই অঞ্চলে অনেকগুলি ডিভাইসগুলি সমস্ত ব্যান্ডউইথের একই প্রসার ব্যবহার করে তবে এটি সামগ্রিক নেটওয়ার্কের সমস্যা তৈরি করতে পারে, কারণ সংকেতগুলির সংঘর্ষ হয় এবং তথ্যের বিরক্তি প্রকাশ করতে হয়। এই হস্তক্ষেপ হ্রাস করতে প্রতি সেকেন্ডে বহুবার তার ফ্রিকোয়েন্সি পরিবর্তন করার জন্য ব্লুটুথ সিগন্যালটি ডিজাইন করা হয়েছিল, তবে পর্যাপ্ত ডিভাইসগুলি যদি ব্যান্ডউইথের একই ছোট প্রসারকে ব্যবহার করার চেষ্টা করে তবে হস্তক্ষেপ অনিবার্য। ২০১০ সালে নির্মিত ডিভাইসগুলিতে ব্যবহৃত ব্লুটুথ 3.0, 6-9 গিগাহার্টজ বর্ণালী ব্যবহার করে, সুতরাং এতে হস্তক্ষেপের সমস্যা কম হবে। ব্লুটুথ 3.0 ডিভাইসগুলি পূর্ববর্তী ব্লুটুথ প্রযুক্তিগুলির সাথে যোগাযোগের জন্য 2.4 গিগাহার্টজ এ সংক্রমণ করতে সক্ষম mit ব্লুটুথ 3.0.০, ২.৪ গিগাহার্টজ এ চলছে,

সংক্ষিপ্তসার হিসাবে: আপনার সম্ভাব্য হস্তক্ষেপটি সময়সীমাবদ্ধতার জন্য সাবধানতার সাথে বিবেচনা করা উচিত। আমি সন্দেহ করি যে 25 টি ডিভাইস করা যেতে পারে। তবে নিশ্চিত হওয়ার জন্য আপনার এটি ব্যবহারিকভাবে পরীক্ষা করতে হবে


5

কতগুলি ডিভাইস আবিষ্কার করা যায় তার কোনও তাত্ত্বিক উপরের সীমা নেই, এটি আবিষ্কারের সময়ের সাথে সরাসরি আনুপাতিক। আবিষ্কারে ব্যয় করা সময়ের পরিমাণ বাড়িয়ে দিলে সীমার মধ্যে থাকা সমস্ত ডিভাইস সনাক্তকরণের সম্ভাবনা বাড়বে।

মূলত 32 টি ফ্রিকোয়েন্সিগুলির মধ্যে একটিতে স্ক্যানিং ডিভাইস স্ক্যানিং এবং 32 টি ফ্রিকোয়েন্সিগুলিতে বিজ্ঞাপন ডিভাইসটি বীকন প্রেরণ করে আবিষ্কার করা হয়। বিজ্ঞাপন ডিভাইসগুলি এই ক্রমটি পুনরাবৃত্তি করে এবং স্ক্যানিং ডিভাইস, একবার এটি বীকন পেয়ে গেলে, প্রতিক্রিয়া জানায় এবং এলোমেলোভাবে কিছু সময়ের জন্য ফিরে আসে এবং একটি নতুন ফ্রিক্যোয়েন্সিতে লিচ করে একই প্রক্রিয়াটি পুনরাবৃত্তি করে। সুতরাং যদি কোনও নির্দিষ্ট ফ্রিক্যোয়েন্সিতে স্ক্যান করা একাধিক ডিভাইস থাকে তবে প্রথমবার তাদের প্রতিক্রিয়াগুলির সংঘর্ষ ঘটবে তবে পিছনে ফিরে যাওয়ার পরে এলোমেলোভাবে বিভিন্ন ফ্রিকোয়েন্সিতে শেষ হয় এবং তাদের প্রতিক্রিয়াগুলি আবার না সংঘাতের সম্ভাবনা বাড়িয়ে তোলে।

আপনার সক্রিয় 25 ডিভাইসের ক্ষেত্রে কোনও সমস্যা হয় না, আমি এমন ডিভাইস এবং পরিবেশের সাথে কাজ করেছি যেখানে 50-100 ডিভাইস ছিল এবং 10-15 সেকেন্ডের আবিষ্কার খুব সহজেই বেশিরভাগ ডিভাইসগুলি খুঁজে পেতে পারে। আশাকরি এটা সাহায্য করবে.


1

সম্প্রতি আমি একই প্রশ্নটি অধ্যয়ন করেছি- আমার অনুসন্ধানগুলি হ'ল সীমাবদ্ধতাগুলি আইসি বা সফ্টওয়্যার দ্বারা হয়।

ব্যবহারের জন্য সেরা চিপ টিআই ভিত্তিক এবং চিপের সফটওয়্যারগুলিতে।

কার্নেলে অ্যান্ড্রয়েড / অ্যাপল / উইন্ডোজের নিজস্ব সীমা রয়েছে - সুতরাং বিটি গণনার জন্য কোনও সফ্টওয়্যার ব্যবহার করে বিটি-স্ট্যাক / কার্নেল দ্বারা সীমাবদ্ধ থাকবে। আইসির স্ট্যাক সহজ হওয়ায় এসওসি ব্যবহারের কোনও সীমা নেই।

আপনার প্রোগ্রামে তথ্য পাইপ করার জন্য একটি কাস্টম উপায় ব্যবহার করুন।

দিনের মধ্যে আমি বিটি ব্যবহার না করার সিদ্ধান্ত নিয়েছিলাম কারণ পাছায় এর সম্পূর্ণরূপে ব্যথা।

যদি না এটি নতুন ভি 4 স্ট্যান্ডার্ড যা বিজ্ঞাপনকে আরও ভাল উপায়ে পরিচালনা করে।

আমারও এক ঘরে আনলিমিটেড বিটি থাকা দরকার ছিল .. আমার নিজের মালিকানা পিসিবি এবং রিসিভার করার সিদ্ধান্ত নিয়েছে - কেন? কারণ এটি সহজ এবং সস্তা ছিল এটি বিশ্বাস করুন বা না করুন।

আপনার প্রশ্ন ফিরে।

(ডাব্লুপি 7 / আইফোন 3,4 / অ্যান্ড্রয়েডের মতো কিছু ব্যবহার করে)

বিটিভি 2.1 বিটি 3

নির্ভরযোগ্যভাবে সাধারণভাবে 10 এর বেশি নয়। সর্বাধিক আমি 32 টি পরিচালনা করেছেন।

বিটি 4

হোয়াইট পেপারে 128 বলা হয়েছে .. কেবলমাত্র অ্যাপল 4 এস এই সংস্করণটিকে সমর্থন করে তাই আমি পরীক্ষা করিনি।


0

একটি ব্লুটুথ ডিভাইস এক সাথে প্রায় 7 টি ডিভাইস সংযোগ করতে পারে t এটির সর্বাধিক ক্ষমতা।
তবে এটি ডিভাইস কনফিগারেশন অনুসারে পরিবর্তিত হতে পারে।
প্রশ্ন
প্রশ্ন 1
উপরের লিঙ্কটি এটি পরীক্ষা করে দেখুন এটি আপনার জন্য সহায়ক হতে পারে


3
প্রশ্নটি কতগুলি ডিভাইস সংযোগ করতে পারে তা নয়, এটি কয়টি সনাক্ত করতে পারে তা নিয়ে। কোনও জুটি করা হবে না।
কর্টুক

0

আমার মনে হয় না এর একটা সীমা আছে। আমি নিকটবর্তী ডিভাইস সনাক্তকরণের যে পদ্ধতিটি প্রয়োগ করেছি তা হ'ল ইনহ্যান্ড.নেট লাইব্রেরি ( 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;

    }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.