Bluez में अब अपग्रेडेड rfcomm बाइनरी का विकल्प


10

ब्लूज 5.44 के बाद से, ब्लूज़-बर्तनों (hcitool जैसे अन्य) में निहित rfcomm बायनेरिज़ को पदावनत माना जाता है और अब से केवल AUR द्वारा प्रदान किए जाने वाले ब्लूज़-यूटिल्स-कॉम्पिटिटर पैकेज में शामिल हैं।

Rfcomm कर्नेल मॉड्यूल का उपयोग करते हुए एक ब्लूटूथ डिवाइस को एक सीरियल पोर्ट पर बाँधने के लिए एक समान कमांड-लाइन एप्लिकेशन है या क्या मुझे अब से PyBluez या इसी तरह के अन्य कार्यों का उपयोग करना है?

यदि बाद में ऐसा होता है, तो पायथन 3 लाइब्रेरी की आप क्या सिफारिश करेंगे?

और अगर किसी को पता है, तो कृपया मुझे बताएं कि ब्लूज़-बर्तनों में से कितने को अचानक से वंचित माना जाता है। मुझे इसके बारे में कुछ नहीं मिला।

ArchWiki नए का उपयोग कर RFCOMM कार्यक्षमता को लागू करने की सिफारिश डी-बस प्रोफाइल 1 एपीआई

जवाबों:


2

मुझे हाल ही में ब्लूज़-टूल्स प्रोजेक्ट मिला है, जिसका उद्देश्य ब्लूज़ वर्तमान डी-बस एपीआई का उपयोग करके खोई हुई कार्यक्षमता को लागू करना है।

ब्लूज़-उपकरण समुदाय रिपॉजिटरी से ArchLinux पर उपलब्ध है। मैंने इसका परीक्षण नहीं किया है और जीथब पृष्ठ में लिखा है कि यह अभी भी बीटा में है। लेकिन प्रलेखन के अनुसार, बीटी-धारावाहिक को पुराने ब्लूज़ rfcomm को बदलने में सक्षम होना चाहिए और बीटी-एडॉप्टर + बीटी-एजेंट + बीटी-डिवाइस में एचसीटूल की कार्यक्षमता है।

संपादित करें: जब अंक सूची और अंतिम कमिट्स को देखते हैं, तो ब्लूज़-टूल्स अब सक्रिय रूप से बनाए नहीं लगते हैं।


1

मुझे एक और संभव समाधान मिल गया है। मैं किसी के git हब रेपो के माध्यम से खुदाई करके यह पाया। यह सॉकेट मॉड्यूल में निर्मित पाइथन 3 का उपयोग करता है।

आवश्यक शर्तें:

  1. आपके पास एड्रेस <एडेप्टर एड्रेस> पर एक काम करने वाला एडॉप्टर है।
  2. आपके पास <लक्ष्य पता> डिवाइस पर आपका लक्ष्य ब्लूटूथ डिवाइस है।
  3. डिवाइस को पिन किया गया है।

यही है, एक ही बिंदु है कि rfcomm इस्तेमाल किया जा सकता है।


$python3
>>> import socket
>>> sock = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_STREAM, socket.BTPROTO_RFCOMM)
>>> adapter = '00:11:22:33:44:55' #<adapter address>
>>> device = '55:44:33:22:11:00' #<device address>
>>> sock.bind((adapter, 1))
>>> sock.connect((device, 1))
## If not pinned it will ask you. You can use/adapt the bluez simple-agent for headless pinning
>>> sock.send(b'hello\n')
>>> sock.recv(100)
>>> sock.close()

यह जानकर अच्छा लगा कि पायथन मूल रूप से ब्लूटूथ सीरियल संचार का समर्थन करता है। इस अपेक्षाकृत पुराने प्रश्न का उत्तर देने के लिए धन्यवाद।
ईके

0

मैं इस समस्या पर ध्यान देना चाहता हूं:

  1. कि इस GitHub परियोजना RFCOMM कार्यक्षमता के कुछ शामिल हैं। (ब्लूज़ परीक्षण फ़ाइलों पर आधारित)।
  2. ब्लूज़ प्रोजेक्ट में अभी भी rfcomm.c फ़ाइल है, जिसे आसानी से संकलित किया जा सकता है:

    gcc -lbluaxy rfcomm.c -orfcomm -DVERSION = xyz

... सिर्फ एक फ़ाइल, पूरे ब्लूज़ प्रोजेक्ट को संकलित करने की कोई आवश्यकता नहीं। जहां xyz डाउनलोड किए गए ब्लूज़ tar.xz स्रोत कोड का संस्करण है (5.46 अब है)। डाउनलोड करने से पहले, किसी को पहले स्वयं की जांच करनी चाहिए bluetoothd -vऔर मिलान स्रोत डाउनलोड करना चाहिए । ब्लूज़-लिबास केवल संकलन सफलता के लिए निर्भरता है।

मुझे armv7 (रास्पबेरी 2) के लिए rfcomm की आवश्यकता थी और rfcomm के लिए कोई aur पैकेज नहीं है, और यह केवल तरीका था, लेकिन यह अच्छी तरह से काम करता है।

फिर भी निश्चित नहीं है कि rfcomm को क्यों हटाया गया है, अच्छे विकल्प के बिना, और ब्लूटूथ से कैसे बात की जाए क्योंकि यह सीरियल पोर्ट अन्य तरीके से था। क्योंकि यहां तक ​​कि आप अजगर विशेषज्ञ प्लस DBUS विशेषज्ञ हैं ... (जैसा कि उपर्युक्त परियोजना के मालिक शायद हैं) ... अभी भी केवल पांचो को इस तरह से प्रदान किया गया था, न कि वास्तविक चरित्र उपकरण / देव / ... में अन्य सभी प्रोग्राम (जैसे कि arduino ) के साथ देख सकते हैं और काम कर सकते हैं।


2
1. प्रोजेक्ट पेज में कहा गया है, "इन उपकरणों का उपयोग करने वाले कुछ पुराने कोड को फिर से लागू करने से बचें", जिसका अर्थ है कि लेखक नई परियोजनाओं के लिए ब्लूज़ का उपयोग करते समय एक अलग दृष्टिकोण का पालन करने का सुझाव देगा। 2. अपने आप को rfcomm संकलित करने के कई तरीके हैं, जो मैं खोज रहा हूं वह इसके वियोजन का कारण और एक समर्थित विकल्प है।
eike
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.