Найти - Пользователи
Полная версия: Несколько /dev/tty. Перенумеровать вызовы
Начало » Python для экспертов » Несколько /dev/tty. Перенумеровать вызовы
1
vpp
Коллеги, помогите пожалуйста.

import serial

ser1 = serial.Serial('/dev/ttyS0')
ser2 = serial.Serial('/dev/ttyS1')

def read(line):
data = ser?.read()
lst.append(data)

Нужно подставить вместо “?” нужный номер из line

data = ser'%d'.read() % (line)
дает ^
SyntaxError: invalid syntax
Ferroman
Списки используй.
vpp
>>> import serial
>>> ser = ‘ser1’, ‘ser2’
>>> ser
('ser1', ‘ser2’)
>>> data = ser.read()
Traceback (most recent call last):
File “<stdin>”, line 1, in ?
AttributeError: ‘str’ object has no attribute ‘read’

Списки - это строки. Это типовая ошибка, уже пробовал более “простой” :)) вариант

>>> data = ‘ser + line’.read()
Traceback (most recent call last):
File “<stdin>”, line 1, in ?
AttributeError: ‘str’ object has no attribute ‘read’

а нужно “приделать” номер к вызову класса :(
Ferroman
Списки - это строки.
?????
С чего вы это взяли? Не надо просто прописывать их как строки.
ser =

def read(line):
data = ser.read()
lst.append(data)
evgenyl
или например так если нужно управлять индексом

ser={
1: serial.Serial('/dev/ttyS0'),
2: serial.Serial('/dev/ttyS1'),
}
def read(line):
data = ser.read()
lst.append(data)
vpp
Ferroman
evgenyl

Да, действительно! Спасибо за науку!!!
Вылетело, что в списке м.б. что угодно :(
Ferroman
В питоне всё - объекты. Так что можно сохранять и передавать практически все что угодно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB