Python 可以在pyserial中创建serial.serial()的多个实例吗?
我试图创建的函数查找负责AT命令的调制解调器端口。我试图使serial.serial()的不同实例成为不同循环的本地实例。我在我能找到的文档中查找信息,但我找到的文档中没有任何一个以任何方式提到这一点(如果它在某个地方,我错过了它,请随意让我看起来愚蠢并链接它)。例如:Python 可以在pyserial中创建serial.serial()的多个实例吗?,python,serial-port,pyserial,Python,Serial Port,Pyserial,我试图创建的函数查找负责AT命令的调制解调器端口。我试图使serial.serial()的不同实例成为不同循环的本地实例。我在我能找到的文档中查找信息,但我找到的文档中没有任何一个以任何方式提到这一点(如果它在某个地方,我错过了它,请随意让我看起来愚蠢并链接它)。例如: OpenPorts = [] j=[] for modem in PortList: #This opens every Modem for port in mo
OpenPorts = []
j=[]
for modem in PortList: #This opens every Modem
for port in modem:
try:
j=[]
print port
ser = serial.Serial(port, 9600, timeout=1)
ser.close()
ser.open()
j.append(port)
except serial.SerialException:
continue
OpenPorts.append(j)
print OpenPorts
del j
del ser
这很有效。但当我尝试这个:
for port in OpenPorts:
if port is not '':
ser = serial.Serial(port, 9600, timeout=1)
ser.write('ati')
del ser
我得到'TypeError:只能将列表(而不是“int”)连接到列表'
我需要将它们保持在循环的本地,因为我正在从一组正在使用的端口列表(从另一个文件收集)中打开多个端口。我必须使用多个循环,因为我需要在ser.read()返回任何内容之前使用time.sleep()。有没有这样做的方法,或者是返回到绘图板?而不是存储端口:
j.append(port)
为什么不附加ser
实例,以便以后可以这样使用:
j.append(ser
)
之后,您可以通过以下方式将其全部关闭:
for ser in OpenPorts:
ser.close()
OpenPorts是一个列表列表。。。是这样吗?也许你真正想做的是
OpenPorts.extend(j)
,而不是OpenPorts.append(j)
?序列号。序列号不能作为第一个参数使用。啊,这是我的问题。我需要它是一个列表的另一个原因,但我知道我可以修复它。如果你把它作为一个答案,我会接受的。谢谢。我在这个项目上走得更远了,这就是我解决问题的方法。所以我会接受它,因为它是正确的解决方案。
for ser in OpenPorts:
ser.close()