मैं अपने लिनक्स पर USB सीरियल पर एक पेरीफेरल (फेडोरा 20/64 बिट) के साथ संचार स्थापित करने के साथ संघर्ष कर रहा हूं, और मुझे शायद यह कदम याद नहीं है
मैं डिवाइस कनेक्ट करता हूं, एक / dev / ttyUSBx पोर्ट सही ढंग से दिखाता है। मैं इसे ड्राइव करने के लिए अजगर / pySerial का उपयोग करता हूं और उत्तर के बजाय डिवाइस मुझे देना चाहिए, सभी मैं सीरियल पोर्ट से पढ़ सकता हूं एक एकल शून्य बाइट ("\ x00") हर बार कनेक्शन रीसेट है।
मैंने अलग-अलग सीरियल-टू-यूएसबी एडेप्टर, अलग-अलग सीरियल केबल और यहां तक कि अलग-अलग बाह्य उपकरणों (और मॉडल) की कोशिश की है। विंडोज आधारित क्लोज-सोर्स प्रोग्रामों के साथ जो परिधीय के साथ संवाद करते हैं, सब कुछ अच्छा लगता है।
यहाँ मैं क्या कर रहा हूँ की एक विशिष्ट सत्र है:
>>> import serial
>>> s = serial.Serial("/dev/ttyUSB0", timeout=.1)
>>>
>>> s.flush()
>>> s.write("(&S)")
4
>>> s.read()
'\x00'
>>>
(यहां "\ x00" के बजाय, मुझे प्रतिक्रिया के रूप में कई वर्ण लंबाई स्ट्रिंग मिलनी चाहिए। (डिवाइस टीसीपी / आईपी पर एक ही प्रोटोकॉल के लिए सही उत्तर देता है)।
क्या मुझे सीरियल पोर्ट पर कुछ विन्यास चरण याद आ रहे हैं? यहाँ इसके लिए मेरा सेटर्सियल आउटपुट है:
/dev/ttyUSB0, UART: unknown, Port: 0x0000, IRQ: 0, Flags: low_latency
और Pyserial कॉन्फ़िगरेशन:
Serial<id=0x7f525c5daf10, open=True>(port='/dev/ttyUSB0', baudrate=9600, bytesize=8, parity='N', stopbits=1, timeout=0.1, xonxoff=False, rtscts=False, dsrdtr=False)
(ये पैरामीटर वही हैं जो विंडोज पर कॉन्फ़िगर किए गए सीरियल पोर्ट पर दिखाए जाते हैं जहां डिवाइस काम करता है - लेकिन टाइमआउट के लिए)