विषयसूची:

CSR1010 और Dragonboard 410c का उपयोग करके BLE डिवाइस से मूल्यों को पढ़ना: 6 चरण
CSR1010 और Dragonboard 410c का उपयोग करके BLE डिवाइस से मूल्यों को पढ़ना: 6 चरण

वीडियो: CSR1010 और Dragonboard 410c का उपयोग करके BLE डिवाइस से मूल्यों को पढ़ना: 6 चरण

वीडियो: CSR1010 और Dragonboard 410c का उपयोग करके BLE डिवाइस से मूल्यों को पढ़ना: 6 चरण
वीडियो: SDWAN - Route Leaking Live Lecture 2024, दिसंबर
Anonim
CSR1010 और Dragonboard 410c का उपयोग करके BLE डिवाइस से मान पढ़ना
CSR1010 और Dragonboard 410c का उपयोग करके BLE डिवाइस से मान पढ़ना

यह ट्यूटोरियल दिखाता है कि लिनारो के साथ ड्रैगनबोर्ड 410c का उपयोग करके BLE डिवाइस CSR1010 से मूल्यों को कैसे पढ़ा जाए

इस उदाहरण में, CSR1010 हृदय गति संवेदक का अनुकरण कर रहा है।

चरण 1: BLE डिवाइस को स्कैन करें

इस चरण में, जांचें कि आपका बीटी क्लाइंट स्कैन बीएलई उपकरणों के लिए तैयार है या नहीं।

root@linaro-alip:/home/linaro# sudo hcitool lescan

LE स्कैन …18:EE:69:00:CE:00 (अज्ञात) 18:EE:69:00:CE:00 (अज्ञात) EE:52:5B:04:00:02 CSR HR सेंसर

चरण 2: डिवाइस कनेक्ट करना

हम अपने डिवाइस को जोड़ने के लिए gatttool का उपयोग करेंगे

-बी: डिवाइस मैक पता

-t: LE पता प्रकार। सार्वजनिक या यादृच्छिक हो सकता है, डिवाइस की जांच की आवश्यकता है। इस मामले में सार्वजनिक है।

-I: गट्टूल इंटरएक्टिव मोड। यह डिवाइस पर cmds भेजने का संकेत देगा

root@linaro-alip:/home/linaro# sudo gatttool -b EE:52:5B:04:00:02 -t public -I

एक बार प्रॉम्प्ट खुलने के बाद, हम कनेक्ट cmd को डिवाइस पर भेज सकते हैं।

[ईई:५२:५बी:०४:००:०२][एलई]> कनेक्ट ईई से कनेक्ट करने का प्रयास:५२:५बी:०४:००:०२

कनेक्शन सफल

[ईई:५२:५बी:०४:००:०२][एलई]>

चरण 3: डिवाइस विशेषताओं को पुनः प्राप्त करना

डिवाइस विशेषताओं को पुनः प्राप्त करना
डिवाइस विशेषताओं को पुनः प्राप्त करना

डिवाइस कनेक्ट होने के बाद, हम cmd "प्राथमिक" भेजकर सभी उपलब्ध सेवाओं को पढ़ सकते हैं

सेवा UUID के आधार पर, हम GATT विनिर्देश में सेवा प्रकार की खोज कर सकते हैं

www.bluetooth.com/specifications/gatt/services

चरण 4: डिवाइस का नाम पढ़ना

डिवाइस का नाम पढ़ना
डिवाइस का नाम पढ़ना

आइए जेनेरिक एक्सेस प्रोफाइल (यूयूआईडी = 1800) पर पढ़ी गई विशेषताओं का पता लगाएं। सबसे पहले हमें पहली तस्वीर में वर्णित सर्विस हैंडल मान प्राप्त करने की आवश्यकता है, इस मामले में, 5 से 11 तक शुरू होता है। अब हम cmd char-desc का उपयोग करके इस अंतराल में सभी हैंडल पुनर्प्राप्त कर सकते हैं।

[ईई: ५२:५बी:०४:००:०२] [एलई]> चार-desc ०५ ११हैंडल: ०x०००५, यूयूआईडी: ००००२८००-००००-१००००-८०००-००८०५एफ९बी३४एफबी हैंडल: ०एक्स०००६, यूयूआईडी: ००००२८०३-००००-१०००-८०००- 00805f9b34fb हैंडल: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fb हैंडल: 0x0008, uuid: 00002803-0000-1000-8000-00805f9b34fb हैंडल: 0x0009, uuid: 00002a01-0000-1000-8000-00805f uuid: 00002803-0000-1000-8000-00805f9b34fb हैंडल: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb हैंडल: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb हैंडल: 0x000d, uuid: -1000-8000-00805f9b34fb हैंडल: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb हैंडल: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb हैंडल: 0x0010, uuid: 00002803-0000-1000-8000 00805f9b34fb हैंडल: 0x0011, यूयूआईडी: 00002a38-0000-1000-8000-00805f9b34fb

जेनेरिक एक्सेस प्रोफाइल विनिर्देश के अनुसार, UUID 2A00 डिवाइस के नाम को संदर्भित करता है।

यह देखते हुए कि 2a00 हमारे डिवाइस में 0x0007 हैंडल है, आइए मान पढ़ें

[ईई: ५२:५बी:०४:००:०२] [एलई]> चार-रीड-एच.डी.

हेक्स को एएससीआईआई में कनवर्ट करना, डिवाइस का नाम है: ''सीएसआर एचआर सेंसर"

चरण 5: बीपीएम पढ़ना

[ईई: ५२:५बी:०४:००:०२] [एलई]> प्राइमरीएटर हैंडल: 0x0001, एंड जीआरपी हैंडल: 0x0004 यूयूआईडी: 00001801-0000-1000-8000-00805f9b34fb एटीआर हैंडल: 0x0005, एंड जीआरपी हैंडल: 0x000b यूआईडी: 00001800-0000-1000-8000-00805f9b34fb attr हैंडल: 0x000c, एंड जीआरपी हैंडल: 0x0013 यूयूआईडी: 0000180d-0000-1000-8000-00805f9b34fb एटीआर हैंडल: 0x0014, एंड जीआरपी हैंडल: 0x0017 यूयूआईडी: 0000180f-0000-1000-8000- 00805f9b34fb attr हैंडल: 0x0018, एंड grp हैंडल: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr हैंडल: 0x0022, एंड ग्रुप हैंडल: 0xffff uuid: 0000180a-0000-1000-8000-00805f9b34fb

हृदय गति सेवा UUID 0x180d है, इसलिए हैंडल अंतराल 0x000c से 0x0013. तक है

[ईई:५२:५बी:०४:००:०२][एलई]> चार-desc 0x00c 0x0013

हैंडल: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb हैंडल: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb हैंडल: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb हैंडल: 0x: 00002902-0000-1000-8000-00805f9b34fb हैंडल: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb हैंडल: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb हैंडल: 0x0012, uuid: 00002803-0000 1000-8000-00805f9b34fb हैंडल: 0x0013, यूयूआईडी: 00002a39-0000-1000-8000-00805f9b34fb

सभी विशेषता घोषणाओं को पढ़ना (UUID 0x2803)।

[ईई:५२:५बी:०४:००:०२][एलई]> चार-पढ़ें-एच.डी. 0x000d

विशेषता मान/विवरणकर्ता: 10 0e 00 37 2a [EE:52:5B:04:00:02][LE]> char-read-hnd 0x0010 विशेषता मान/डिस्क्रिप्टर: 02 11 00 38 2a [ईई:52:5बी: 04:00:02][LE]> char-read-hnd 0x0012 विशेषता मान/डिस्क्रिप्टर: 08 13 00 39 2a

नोटिस जो:

- हैंडल 0x000d बिट 10 के साथ सेवा 2a37 (हृदय गति मापन) के लिए सीसीसीडी है (समर्थन सूचित करें)

- हैंडल 0x0010 बिट 02 के साथ सर्विस 2a38 (बॉडी सेंसर लोकेशन) के लिए CCCD है (सपोर्ट रीड)

- हैंडल 0x0012 बिट 08 के साथ सर्विस 2a39 (हृदय गति नियंत्रण बिंदु) के लिए CCCD है (WRITE का समर्थन करें)

अब हम जानते हैं कि हृदय गति मापन केवल अधिसूचना के साथ काम करता है। इसका मतलब है कि पहले हमें इसके सीसीसीडी (यूयूआईडी 0x2902) में मूल्य परिवर्तन के लिए पंजीकरण करना होगा, जो इस मामले में 0xf हैंडल है।

[ईई: ५२:५बी:०४:००:०२] [एलई]> चार-लेखन-अनुरोध 0x00f ०१००

अधिसूचना हैंडल = 0x000e मान: 16 65 f3 01 विशेषता मान सफलतापूर्वक लिखा गया था अधिसूचना हैंडल = 0x000e मान: 16 6d fa 01 अधिसूचना हैंडल = 0x000e मान: 16 6d fa 01 अधिसूचना हैंडल = 0x000e मान: 16 6c f9 01 अधिसूचना हैंडल = 0x000e मान: 16 6a f7 01 अधिसूचना हैंडल = 0x000e मान: 16 69 f6 01

प्रोफ़ाइल विनिर्देश के अनुसार, दूसरा हेक्स नंबर बीपीएम जानकारी है।

बीपीएम:

6d = 109

6d = 109

6सी = 108

6ए = 106

69 = 105

चरण 6: बॉडी सेंसर स्थान पढ़ना

बॉडी सेंसर लोकेशन पढ़ना
बॉडी सेंसर लोकेशन पढ़ना

बॉडी सेंसर लोकेशन UUID 0x2A38 है। इसके डिस्क्रिप्टर के अनुसार, यह विशेषता बुनियादी पढ़ने का समर्थन करती है, इसलिए हम इसका मूल्य सीधे पढ़ सकते हैं।

[ईई: ५२:५बी:०४:००:०२] [एलई]> चार-रीड-एचएनडी ०x११ विशेषता मान/विवरणकर्ता: ०३

SIG विनिर्देश के अनुसार, 03 का अर्थ है "उंगली"

सिफारिश की: