編集:問題が見つかりました:変数を参照しようとしましたが、その名前を混同したため、代わりに新しい変数を宣言しました。pySerial は一度に 1 つのシリアル ポイントに限定されないことがわかりました。
次のコードを使用して、一度に 2 つのシリアル ポートを開こうとしています。
ser0 = serial.Serial(
port = port_list[0],
baudrate = 115200,
timeout = 0.1
)
ser1 = serial.Serial(
port = port_list[1],
baudrate = 115200,
timeout = 0.1
)
しかし、私は2番目を開き、最初のものを閉じるようです。pySerialを使用して一度に1つのシリアルポートを開くという固有の制限はありますか?
ありがとう、TG
編集:そもそもこれを投稿するべきだった
while not (comm_port0_open and comm_port1_open):
print 'COM ports available:'
port_list = []
i = 0
for port in __EnumSerialPortsWin32():
port_list.append(port[0])
print '%i:' % i, port[0]
i+=1
print 'Connect to which port? (0, 1, 2, ...)'
comm_port_str = sys.stdin.readline()
try:
if len(comm_port_str)>0:
if comm_port0_open:
ser1 = serial.Serial(
port = port_list[int(comm_port_str)],
baudrate = 115200,
timeout = 0.1
)
comm1_port_open = True
print '%s opened' % port_list[int(comm_port_str)]
else:
ser0 = serial.Serial(
port = port_list[int(comm_port_str)],
baudrate = 115200,
timeout = 0.1
)
comm0_port_open = True
print '%s opened' % port_list[int(comm_port_str)]
else:
print 'Empty input'
except:
print 'Failed to open comm port, try again'