vpp
Июль 28, 2008 13:01:33
Коллеги, помогите пожалуйста.
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
Июль 28, 2008 13:06:24
Списки используй.
vpp
Июль 28, 2008 13:23:03
>>> 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
Июль 28, 2008 13:29:26
Списки - это строки.
?????
С чего вы это взяли? Не надо просто прописывать их как строки.
ser =
def read(line):
data = ser.read()
lst.append(data)
evgenyl
Июль 28, 2008 13:30:44
или например так если нужно управлять индексом
ser={
1: serial.Serial('/dev/ttyS0'),
2: serial.Serial('/dev/ttyS1'),
}
def read(line):
data = ser.read()
lst.append(data)
vpp
Июль 28, 2008 13:40:14
Ferroman
evgenyl
Да, действительно! Спасибо за науку!!!
Вылетело, что в списке м.б. что угодно :(
Ferroman
Июль 28, 2008 13:58:09
В питоне всё - объекты. Так что можно сохранять и передавать практически все что угодно.