के साथ डिवाइस से दोबारा कनेक्ट करना मुझे वर्तमान में पायथन में pySerial मॉड्यूल में समस्या है। मेरी समस्या किसी डिवाइस से कनेक्ट करने और डिस्कनेक्ट करने से संबंधित है। मैं अपने डिवाइस से सफलतापूर्वक कनेक्ट कर सकता हूं और जब तक चाहूं इसके साथ संवाद कर सकता हूं, और जब भी चाहूं उससे डिस्कनेक्ट कर सकता हूं। हालांकि, कनेक्शन को तोड़ने के बाद मैं डिवाइस से पुनः कनेक्ट करने में असमर्थ हूं।pySerial
यहाँ आवरण वर्ग कि मेरे कार्यक्रम सीरियल पोर्ट के साथ इंटरफेस करने का उपयोग करता है:
import serial, tkMessageBox
class Controller:
""" Wrapper class for managing the serial connection with the MS-2000. """
def __init__(self, settings):
self.ser = None
self.settings = settings
def connect(self):
""" Connect or disconnect to MS-2000. Return connection status."""
try:
if self.ser == None:
self.ser = serial.Serial(self.settings['PORT'],
self.settings['BAUDRATE'])
print "Successfully connected to port %r." % self.ser.port
return True
else:
if self.ser.isOpen():
self.ser.close()
print "Disconnected."
return False
else:
self.ser.open()
print "Connected."
return True
except serial.SerialException, e:
return False
def isConnected(self):
'''Is the computer connected with the MS-2000?'''
try:
return self.ser.isOpen()
except:
return False
def write(self, command):
""" Sends command to MS-2000, appending a carraige return. """
try:
self.ser.write(command + '\r')
except Exception, e:
tkMessageBox.showerror('Serial connection error',
'Error sending message "%s" to MS-2000:\n%s' %
(command, e))
def read(self, chars):
""" Reads specified number of characters from the serial port. """
return self.ser.read(chars)
किसी कारण पता है क्यों इस समस्या से मौजूद है और मैं इसे ठीक करने के लिए क्या करने की कोशिश कर सकते क्या?
क्या आप फिर से कनेक्ट करने का प्रयास करते समय अपवाद/ट्रेस प्राप्त करते हैं? और क्या आप विंडोज या लिनक्स पर हैं? – jedwards
"कनेक्शन कटे हुए" से आपका क्या मतलब है? आप सीरियल केबल को अनप्लग करना चाहते हैं, या सिर्फ अपनी अजगर प्रक्रिया से बाहर निकलना चाहते हैं? – TJD
@andrew donelick आपकी समस्या के उत्तर से संबंधित नहीं है, लेकिन आप '__init __()' में 'सीरियल' ऑब्जेक्ट को प्रारंभ क्यों नहीं करते हैं? –