我试图创建的函数找到了一个负责AT命令的调制解调器的端口。我试图使serial.Serial()的不同实例成为不同循环的本地实例。我查看了我可以找到的文档中的信息,但我发现的文档中没有一个以任何方式提到过这一点(如果它在某个地方,而我错过了它,请尽管让我看起来很傻,并将其链接起来)。例如:
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")到列表‘
我需要将它们保持在循环的本地,因为我正在从一组正在使用的端口列表中打开多个端口(从另一个文件中收集)。我必须使用多个循环,因为我需要在time.sleep()返回任何内容之前使用ser.read()。有办法这样做吗,还是回到了画板上?
发布于 2013-10-24 20:53:54
而不是存储端口:
j.append(port)为什么不追加ser实例,以便以后可以像这样使用:
j.append(ser)
for ser in OpenPorts:
ser.write('ati')以后你可以用以下方法关闭它们:
for ser in OpenPorts:
ser.close()https://stackoverflow.com/questions/19166944
复制相似问题