में एक सीरियल पोर्ट से बात कर रहा है मेरे पास एक प्रोलाइट एलईडी साइन है जिसे मैं अपाचे लॉग और अन्य मजेदार आंकड़ों से स्क्रॉलिंग खोज क्वेरी दिखाने के लिए सेट अप करना चाहता हूं। समस्या यह है कि, मेरे जी 5 में सीरियल पोर्ट नहीं है, इसलिए मुझे सीरियल डोंगल में यूएसबी का उपयोग करना होगा। यह /dev/cu.usbserial और /dev/tty.usbserial के रूप में दिखाई देता है।प्रोग्रामिंग रूप से ओएस एक्स या लिनक्स
जब मैं इस सब कुछ करना hunky-dory हो रहा है:
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
सब कुछ भी काम करता है जब मैं serial port tool का उपयोग यह करने के लिए बात करने के लिए।
यदि मैं उपर्युक्त धारावाहिक बंदरगाह उपकरण के दौरान कोड का यह टुकड़ा चलाता हूं, तो कुछ भी काम करता है। लेकिन जैसे ही मैं उपकरण को डिस्कनेक्ट करता हूं, कनेक्शन खो जाता है।
#!/usr/bin/python
import serial
ser = serial.Serial('/dev/cu.usbserial', 9600, timeout=10)
ser.write("<ID01><PA> \r\n")
read_chars = ser.read(20)
print read_chars
ser.close()
तो सवाल यह है कि धारावाहिक बंदरगाह उपकरण के बिना धारावाहिक बंदरगाह से बात करना शुरू करने के लिए मुझे क्या जादूगर करने की ज़रूरत है? क्या यह अनुमति समस्या है? इसके अलावा, /dev/cu.usbserial और /dev/tty.usbserial के बीच क्या अंतर है?
नहीं, कोई धारावाहिक संख्या नहीं। बात यह है कि समस्या सुडौ-पाइथन लिपि चलाने के साथ भी बनी रहती है, और एकमात्र चीज जो मुझे गुई उपकरण में कनेक्शन खोलने के माध्यम से गुजरती है।
पिछले हफ्ते मैंने एक छोटी सी पाइथन उपयोगिता लिखी थी ताकि यूएसबी-सीरियल डोंगल से डीबग जानकारी पढ़कर मुझे एम्बेडेड सी ऐप डीबग करने में मदद मिल सके, इसलिए मुझे लगता है कि मैं पिसरीरियल को अच्छी तरह से समझता हूं। कुछ अतिरिक्त जानकारी समस्या का निदान करने में मदद कर सकती है: * आप किस यूएसबी-सीरियल ड्राइवर का उपयोग कर रहे हैं? * क्या आप निश्चित हैं कि आपने पाइथन से सीरियल कनेक्शन खोलने के प्रयास से पहले सभी सीरियल विकल्प (बॉड रेट, फ्लो कंट्रोल, समानता, स्टॉप बिट्स इत्यादि) को सही तरीके से कॉन्फ़िगर किया है? * आप PySerial का क्या संस्करण उपयोग कर रहे हैं? – Matt
आप उनके बाद कोई सीरियल नंबर देखने के लिए नहीं होते हैं? जैसे: /dev/cu.usbserial-xxxxxxxxA /dev/tty.usbserial-xxxxxxxxA /dev/cu.usbserial-xxxxxxxxB /dev/tty.usbserial-xxxxxxxxB मेरा दूसरा माध्यम शायद पाइथन से बात करने की अनुमति अनुमति हो सकता है सीरियल पोर्ट। क्या आप जानते हैं कि आपका पायथन उदाहरण किस उपयोगकर्ता के अंतर्गत चल रहा है? और शायद इसकी भूमिका क्या है? –