我目前在python中的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)
有誰知道爲什麼這個問題存在,我可以嘗試做些什麼來解決它的原因是什麼?
當你嘗試重新連接時,你會得到什麼異常/痕跡?你在Windows還是Linux? – jedwards
「連接被切斷」是什麼意思?你的意思是拔掉串口線,或者退出你的python進程? – TJD
@andrew donelick與您的問題的答案無關,但爲什麼不初始化'__init __()'中的'Serial'對象? – 2012-06-19 00:16:50