Чтение нескольких последовательных портов в Python – какой упрощенный и более элегантный способ зацикливания?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Чтение нескольких последовательных портов в Python – какой упрощенный и более элегантный способ зацикливания?

Сообщение Anonymous »

Я считываю данные с нескольких устройств CDC (для целей тестирования — только с двух).
Мне интересно, есть ли более элегантный способ зациклить инициализацию и чтение портов 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»