दिलचस्प पोस्ट
सीएसएस में एक स्टार-पूर्ववर्ती संपत्ति का मतलब क्या है? सामग्री के बाद कॉल करने के लिए एन्जिलरज इवेंट लाए जाते हैं क्यों प्रतिशत ऊंचाई मेरे div पर काम नहीं कर रही है? कई प्रकार के उत्पाद के लिए एक उत्पाद तालिका कैसे डिज़ाइन करें, जहां प्रत्येक उत्पाद के कई पैरामीटर हैं जीआईटी में, क्या एक रिपॉजिटरी में कोई असंबंधित शाखा शुरू करने का एक आसान तरीका है? एक स्थानांतरित पैटर्न के लिए एक स्ट्रिंग से बचें मैं वर्तमान जीपीएस स्थान को एंड्रॉइड में प्रोग्राम कैसे प्राप्त करूं? ओआरएम मैपिंग में "मालिकिंग साइड" क्या है? Xcode 7 में ENABLE_BITCODE क्या करता है? क्या गीट की पैक स्नैपशॉट्स के बजाय डेल्टा हैं? JQuery का उपयोग कर छवि स्रोत बदलना स्थैतिक परिभाषा के बारे में डिफ़ॉल्ट नाम स्थान वाले XML दस्तावेज़ों पर XPath का उपयोग कैसे करें "मुख्य वर्ग का पता या लोड नहीं किया जा सकता है" इसका मतलब क्या है? जावास्क्रिप्ट – "यह" का स्वामी

IBeacon ब्लूटूथ प्रोफाइल क्या है

मैं कुछ ब्लूटूथ कम ऊर्जा देव किटों के साथ अपना इबेकॉन बनाना चाहता हूं ऐप्पल ने अभी तक iBeacons के लिए एक विनिर्देश जारी नहीं किया है, हालांकि कुछ हार्डवेयर डेवलपर्स ने रिवर्स इंजीनियर को एयरलोक नमूना कोड से इंजीनियर किया है और iBeacon dev किट्स की बिक्री शुरू कर दिया है।

तो iBeacon ब्लूटूथ प्रोफाइल क्या है?

ब्लूटूथ कम ऊर्जा ली प्रोफ़ाइल सेवा खोज के लिए जीएटीटी का उपयोग करती है। इसलिए मुझे लगता है कि हमें एट्रिब्यूट हैंडल, एट्रिब्यूट टाइप, एट्रिब्यूट वैल्यू, और iBeacon विशेषता की विशेषता अनुमतियों को जानने की जरूरत है। तो एक ईबेकॉन के लिए E2C56DB5-DFFB-48D2-B060-D0F5A71096E0 के एक यूयूआईडी के साथ 1 का एक बड़ा मूल्य और 1 का मामूली मूल्य ब्लूटूथ जीएटीटी प्रोफाइल सेवा क्या होगा?

मैंने एप्पल के मंचों और डॉक्स के माध्यम से चर्चा से कुछ धारणाएं बनाई हैं।

  1. ब्लूटूथ परिधीय के प्रोफाइल सेवा (जीएटीटी) को देखने के लिए आपको यह केवल एक iBeacon देखने की जरूरत है

  2. इस प्रोफाइल सेवा में प्रमुख और छोटी सी चीजों को एन्कोड किया गया है

IBeacon Dev किट्स के साथ कुछ कंपनियां हैं जो पहले से ही यह आंकड़ा लगती हैं:

  • http://redbearlab.com/ibeacon/
  • http://kontakt.io/

उम्मीद है कि समय पर हमारे पास Bluetooth.org पर एक प्रोफ़ाइल पोस्ट की जाएगी जैसे: https://www.blutetooth.org/en-us/specification/adopted-specifications

वेब के समाधान से एकत्रित समाधान "IBeacon ब्लूटूथ प्रोफाइल क्या है"

ProximityUUID E2C56DB5-DFFB-48D2-B060-D0F5A71096E0 साथ एक iBeacon के लिए, प्रमुख 0 , मामूली 0 , और calibrated -59 E2C56DB5-DFFB-48D2-B060-D0F5A71096E0 पावर, प्रेषित BLE विज्ञापन पैकेट इस तरह दिखता है:

d6 be 89 8e 40 24 05 a2 17 6e 3d 71 02 01 1a 1a ff 4c 00 02 15 e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 00 00 00 00 c5 52 ab 8d 38 a5

इस पैकेट को नीचे तोड़ा जा सकता है:

 d6 be 89 8e # Access address for advertising data (this is always the same fixed value) 40 # Advertising Channel PDU Header byte 0. Contains: (type = 0), (tx add = 1), (rx add = 0) 24 # Advertising Channel PDU Header byte 1. Contains: (length = total bytes of the advertising payload + 6 bytes for the BLE mac address.) 05 a2 17 6e 3d 71 # Bluetooth Mac address (note this is a spoofed address) 02 01 1a 1a ff 4c 00 02 15 e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 00 00 00 00 c5 # Bluetooth advertisement 52 ab 8d 38 a5 # checksum 

उस पैकेट का मुख्य भाग ब्लूटूथ विज्ञापन है, जिसे इस प्रकार से तोड़ा जा सकता है:

 02 # Number of bytes that follow in first AD structure 01 # Flags AD type 1A # Flags value 0x1A = 000011010 bit 0 (OFF) LE Limited Discoverable Mode bit 1 (ON) LE General Discoverable Mode bit 2 (OFF) BR/EDR Not Supported bit 3 (ON) Simultaneous LE and BR/EDR to Same Device Capable (controller) bit 4 (ON) Simultaneous LE and BR/EDR to Same Device Capable (Host) 1A # Number of bytes that follow in second (and last) AD structure FF # Manufacturer specific data AD type 4C 00 # Company identifier code (0x004C == Apple) 02 # Byte 0 of iBeacon advertisement indicator 15 # Byte 1 of iBeacon advertisement indicator e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 # iBeacon proximity uuid 00 00 # major 00 00 # minor c5 # The 2's complement of the calibrated Tx Power 

कोई भी ब्लूटूथ LE डिवाइस जो विशिष्ट विज्ञापन भेजने के लिए कॉन्फ़िगर किया जा सकता है, ऊपर पैकेट उत्पन्न कर सकता है। मैंने इस विज्ञापन को भेजने के लिए ब्लूज़ का प्रयोग करके एक लिनक्स कंप्यूटर को कॉन्फ़िगर किया है, और एप्पल के एयर लॉकेट टेस्ट कोड चलाने वाले आईओएस 7 डिवाइस ऊपर दिए गए फ़ील्ड के साथ एक आईबेकन के रूप में उठाते हैं। देखें: एक पेरिफेरल (विज्ञापनदाता) के रूप में ब्लूज़ स्टैक का उपयोग करें

इस ब्लॉग में रिवर्स इंजीनियरिंग प्रक्रिया के बारे में पूरी जानकारी है।

यह विज्ञापन डेटा, विशेषकर निर्माता डेटा पर आधारित है:

 4C00 02 15 585CDE931B0142CC9A1325009BEDC65E 0000 0000 C5 <company identifier (2 bytes)> <type (1 byte)> <data length (1 byte)> <uuid (16 bytes)> <major (2 bytes)> <minor (2 bytes)> <RSSI @ 1m> 
  • ऐप्पल कंपनी पहचानकर्ता (लिटिल एंडियन), 0x004c
  • डेटा प्रकार, 0x02 => iBeacon
  • डेटा की लंबाई, 0x15 = 21
  • यूयूआईडी: 585 सीडी 9 31 बी 10142 सीसीसी 9 ए 1325009 बीईडीसी65 ई
  • प्रमुख: 0000
  • नाबालिग: 0000
  • 1 मीटर पर मेगाइड पावर: 0xc5 = -59

मेरे पास लिनक्स पर काम करने वाला यह नोड.जेएस स्क्रिप्ट है जो नमूना एयर लॉक ऐप उदाहरण के साथ है I

बस सैंडिपैमिस्ट्री के उत्तर और डेविडीगॉन्ग के बीच के अंतर को सुलझाने के लिए:

 02 01 1a 1a ff 4C 00 

विज्ञापन डेटा प्रारूप विनिर्देशन का हिस्सा है [1]

  02 # length of following AD structure 01 # <<Flags>> AD Structure [2] 1a # read as b00011010. # In this case, LE General Discoverable, # and simultaneous BR/EDR but this may vary by device! 1a # length of following AD structure FF # Manufacturer specific data [3] 4C00 # Apple Inc [4] 0215 # ?? some 2-byte header 

एडी से लापता एक सेवा है [5] परिभाषा मुझे लगता है कि iBeacon प्रोटोकॉल का ही GATT और मानक सेवा खोज से कोई संबंध नहीं है I यदि आप रेडबियरलैब के iBeacon प्रोग्राम डाउनलोड करते हैं, तो आप देखेंगे कि वे विज्ञापन मापदंडों को कॉन्फ़िगर करने के लिए जीएटीटी का उपयोग करते हैं, लेकिन यह उनके कार्यान्वयन के लिए विशिष्ट है, और इस बात का हिस्सा नहीं है। उदाहरण के लिए, LightBlue और या अन्य इसी तरह के कार्यक्रमों के अनुसार, एयरलाकेट प्रोग्राम कॉन्फ़िगरेशन के लिए जीएटीटी का इस्तेमाल नहीं करता है।

संदर्भ:

  1. कोर ब्लूटूथ स्पेक v4, वॉल्यूम 3, पार्ट सी, 11
  2. खंड 3, भाग सी, 18.1
  3. वॉल्यूम 3, पार्ट सी, 18.11
  4. https://www.bluetooth.org/en-us/specification/assigned-numbers/company-identifiers
  5. खंड 3, भाग सी, 18.2

यदि आप यह सवाल पूछते हैं, तो आप मानक एपीआई के बजाय एक iBeacon के रूप में विज्ञापित करने के लिए कोर ब्लूटूथ का इस्तेमाल करना चाहते हैं, तो आप आसानी से ऐसा एनएसडिस्ट्री विज्ञापन कर सकते हैं जैसे कि:

 { kCBAdvDataAppleBeaconKey = <a7c4c5fa a8dd4ba1 b9a8a240 584f02d3 00040fa0 c5>; } 

अधिक जानकारी के लिए इस उत्तर को देखें।

यह बहुत आसान है, यह सिर्फ एक स्ट्रिंग का विज्ञापन करता है जिसमें एप्पल के iBeacon मानक के अनुरूप कुछ अक्षर शामिल होते हैं। आप लिंक http://glimwormbeacons.com/learn/what-makes-an-ibeacon-an-ibeacon/ का उल्लेख कर सकते हैं