Мне интересно, есть ли более элегантный способ зациклить инициализацию и чтение портов CDC.
Поскольку я новичок в Python, я думаю, что циклы можно решить гораздо более элегантным способом.
Код: Выделить всё
import serial
import serial.tools.list_ports
ports = serial.tools.list_ports.comports()
for port, desc, hwid in sorted(ports):
print("{}: {} [{}]".format(port, desc, hwid ))
serialPort = {}
for i in range(len(ports)):
try:
serialPort[i] = serial.Serial(ports[i].device)
except ValueError:
print('Port Configuration problem')
except serial.SerialException:
print('Port not found or cannot be configured')
while True :
for i in range(len(serialPort)):
serialChar = serialPort[i].read(1)
try:
# Convert byte to string (character)
serialChar = serialChar.decode("ascii")
except UnicodeDecodeError:
# Don't raise error if byte is not ASCII
pass
else:
# Print the received byte in Python terminal
print(serialChar, end="")
if serialChar == 'z':
print('\n', end="")
Георг
Подробнее здесь: https://stackoverflow.com/questions/791 ... -elegant-w