प्रोग्रामिंग रूप से ओएस एक्स या लिनक्स में एक सीरियल पोर्ट से बात कर रहा है

मेरे पास एक प्रोलाइट एलईडी साइन है जो मैं अपाचे लॉग और अन्य मजेदार आंकड़ों से स्क्रॉलिंग खोज क्वेरी दिखाने के लिए सेट अप करना चाहता हूं। समस्या यह है कि, मेरे जी 5 में सीरियल पोर्ट नहीं है, इसलिए मुझे सीरियल डोंगल में यूएसबी का उपयोग करना होगा। यह /dev/cu.usbserial और /dev/tty.usbserial के रूप में दिखाई देता है।

जब मैं ऐसा करता हूं तो सबकुछ डरावना लगता है:

stty -f /dev/cu.usbserial
speed 9600 baud;
lflags: -icanon -isig -iexten -echo
iflags: -icrnl -ixon -ixany -imaxbel -brkint
oflags: -opost -onlcr -oxtabs
cflags: cs8 -parenb

जब भी मैं सीरियल पोर्ट टूल का उपयोग करने के लिए उपयोग करता हूं तो सब कुछ भी काम करता है।

यदि मैं उपर्युक्त धारावाहिक बंदरगाह उपकरण के दौरान कोड का यह टुकड़ा चलाता हूं, तो भी कुछ भी काम करता है। लेकिन जैसे ही मैं उपकरण को डिस्कनेक्ट करता हूं, कनेक्शन खो जाता है।

#!/usr/bin/python

import serial

ser = serial.Serial('/dev/cu.usbserial', 9600, timeout=10) 
ser.write(" \r\n") 
read_chars = ser.read(20)
print read_chars

ser.close()

तो सवाल यह है कि धारावाहिक बंदरगाह उपकरण के बिना धारावाहिक बंदरगाह से बात करना शुरू करने के लिए मुझे क्या जादूगर करने की ज़रूरत है? क्या यह अनुमति समस्या है? इसके अलावा, /dev/cu.usbserial और /dev/tty.usbserial के बीच क्या अंतर है?


नहीं, कोई सीरियल नंबर नहीं। बात यह है कि समस्या सुडौ-पाइथन लिपि चलाने के साथ भी बनी रहती है, और एकमात्र चीज जो मुझे गुई उपकरण में कनेक्शन खोलने के माध्यम से गुजरती है।

0
ro fr bn
आप उनके बाद कोई धारावाहिक संख्या देखने के लिए नहीं होता है? जैसे: /dev/cu.usbserial-xxxxxxxxA /dev/tty.usbserial-xxxxxxxxA /dev/cu.usbserial-xxxxxxxxB /dev/tty.usbserial-xxxxxxxxB मेरा दूसरा माध्यम शायद पाइथन से बात करने की अनुमति अनुमति हो सकता है सीरियल पोर्ट। क्या आप जानते हैं कि आपका पायथन उदाहरण किस उपयोगकर्ता के अंतर्गत चल रहा है? और शायद इसकी भूमिका क्या है?
जोड़ा लेखक Nick Berardi, स्रोत
पिछले हफ्ते मैंने यूएसबी-सीरियल डोंगल से डीबग जानकारी पढ़कर एम्बेडेड सी ऐप को डीबग करने में मदद करने के लिए एक छोटी पायथन उपयोगिता लिखी, इसलिए मुझे लगता है कि मैं पिसरीरियल को अच्छी तरह से समझता हूं। कुछ अतिरिक्त जानकारी समस्या का निदान करने में मदद कर सकती है: * आप किस यूएसबी-सीरियल ड्राइवर का उपयोग कर रहे हैं? * क्या आप निश्चित हैं कि आपने पाइथन से सीरियल कनेक्शन खोलने के प्रयास से पहले सभी सीरियल विकल्प (बॉड रेट, फ्लो कंट्रोल, समानता, स्टॉप बिट्स इत्यादि) को सही तरीके से कॉन्फ़िगर किया है? * आप PySerial का क्या संस्करण उपयोग कर रहे हैं?
जोड़ा लेखक Matt, स्रोत

2 उत्तर

क्या आपने जीयूआई और धारावाहिक बंदरगाह के बीच यातायात को देखने का प्रयास किया है ताकि यह देखने के लिए कि किसी प्रकार का विशेष आदेश भेजा जा रहा है या नहीं? यह भी उत्सुक है, पायथन ASCII भेज रहा है, यूटीएफ -8 नहीं या कुछ और सही है? कारण मैं पूछता हूं क्योंकि मैंने स्ट्रिंग्स के लिए आपके उद्धरण परिवर्तन और कुछ भाषाओं में वास्तव में एएससीआईआई और यूटीएफ -8 के बीच अंतर देखा है।

0
जोड़ा

/dev/cu.xxxxx is the "callout" device, it's what you use when you establish a connection to the serial device and start talking to it. /dev/tty.xxxxx is the "dialin" device, used for monitoring a port for incoming calls for e.g. a fax listener.

0
जोड़ा
क्या यह सिर्फ सम्मेलन है, या क्या उनके बीच कुछ ठोस अंतर है?
जोड़ा लेखक Peter Gibson, स्रोत