2015-09-23 2 views
6

सीबीयूयूआईडी और एनएसयूयूआईडी ऑब्जेक्ट के बीच अंतर कहां हैं?सीबीयूयूआईडी और एनएसयूयूआईडी के बीच अंतर

मैंने अलग-अलग मामलों में दोनों ऑब्जेक्ट्स के साथ scanForPeripheralsWithServices भरने के लिए देखा है ... ऐप्पल एक सीबीयूयूआईडी ऑब्जेक्ट की अपेक्षा करता है, इसलिए मैं इस प्रकार का उपयोग करना पसंद करूंगा या?

मेरे उदाहरण:

let MY_SERVICE_UUID = CBUUID(string: "hdl83h6sd-gl95-bn4f-37gd-jd73hd0tn8za") func scanForPeripheralsWithServices(serviceUUIDs: MY_SERVICE_UUID,nil)

+0

आपका cbuuid उदाहरण अमान्य है - इसमें हेक्साडेसिमल संख्या 0-9 ए-एफ – Paulw11

+0

शामिल होनी चाहिए, मुझे इसके बारे में खेद है! तुम पूरी तरह से सही हो – godlyblade

उत्तर

11

एक NSUUID जाता है कि विशिष्ट वस्तुओं, प्रकार और अन्य वस्तुओं की पहचान करने के लिए इस्तेमाल एक 128 बिट संख्या है। इसे बाइट्स के रूप में एक्सेस किया जा सकता है या आमतौर पर एक स्ट्रिंग फॉर्म में उपयोग किया जाता है - 68753A44-4D6F-1226-9C60-0050E4C00067। कक्षा में एक विशेष मूल्य के साथ शुरू किए गए यादृच्छिक यूयूआईडी और उदाहरण दोनों बनाने के तरीकों को शामिल किया गया है।

ब्लूटूथ विशेषताओं और सेवाओं के लिए 128 बिट पहचानकर्ताओं का भी उपयोग करता है। ब्लूटूथ एसआईजी ने कई "अच्छी तरह से ज्ञात" सेवाओं और विशेषताओं को परिभाषित किया है। इन्हें 16 बिट मान के रूप में दर्शाया गया है जो पूर्ण 128 बिट मान प्राप्त करने के लिए ब्लूटूथ बेस यूयूआईडी के साथ संयुक्त है।

सीबीयूयूआईडी विधियां इन प्रसिद्ध मूल्यों से अवगत हैं और 16 बिट मानों को स्वचालित रूप से 128 बिट समकक्ष में बदल सकती हैं। एक सीबीयूयूआईडी को 128 बिट वैल्यू के साथ भी शुरू किया जा सकता है यदि आप अच्छी तरह से ज्ञात मूल्यों का उपयोग नहीं कर रहे हैं (मैंने आपने अपनी निजी सेवाओं और विशेषताओं को बनाया है)

उदाहरण के लिए CBUUID(string:"180F") के साथ एक सीबीयूयूआईडी शुरू करना ठीक है (यह बैटरी है सेवा) लेकिन NSUUID(string:"180F") विफल हो जाएगा क्योंकि इसे सभी 128 बिट्स की आवश्यकता है।

कोर ब्लूटूथ के साथ काम करते समय आप सेवाओं और विशेषताओं के लिए सीबीयूयूआईडी का उपयोग करेंगे। एक एनएसयूयूआईडी परिधीय पहचानकर्ता के लिए प्रयोग किया जाता है क्योंकि यह केवल एक मैक है जिसमें कोई विशेष मूल्य परिभाषित नहीं किया गया है।

+0

ठीक है, इसलिए यदि मैं मुफ्त बनाई गई यूयूआईडी के साथ सेवाओं और विशेषताओं की एक अनुकूलित संरचना का उपयोग करता हूं तो मुझे एनएसयूयूआईडी नंबर का उपयोग करना चाहिए या? क्योंकि इस मामले में मुझे एक छोटे से 16 बिट यूयूआईडी को 128 बिट्स यूयूआईडी में परिवर्तित करने की आवश्यकता नहीं है। लेकिन क्या मुझे इस मामले में स्कैन विधि के अपेक्षित इनपुट प्रकार के बारे में ख्याल रखना है? धन्यवाद! – godlyblade

+0

नहीं, आपको सीबीयूयूआईडी का उपयोग करना चाहिए। सीबीयूयूआईडी प्रारंभकर्ता 16 बिट या 128 बिट मान संभाल लेंगे। आप पाएंगे कि सभी कोर ब्लूटूथ फ़ंक्शन अब सीबीयूयूआईडी का उपयोग करते हैं। सीबीयूयूआईडी के लिए एक प्रारंभिक है जो आपके पास एक एनएसयूयूआईडी लेता है। – Paulw11

+0

यह अच्छा है, धन्यवाद! – godlyblade

संबंधित मुद्दे