Я считываю данные с нескольких устройств CDC (для целей тестирования — только с двух).
Мне интересно, есть ли более элегантный способ зациклить инициализацию и чтение портов CDC.
Думаю, циклы можно решить гораздо более элегантным способом.
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 = serial.Serial(ports.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.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
Чтение нескольких последовательных портов в Python – какой упрощенный и более элегантный способ зацикливания? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение