我有一个愚蠢的python问题。
每次我从串行连接收到'READY'消息时,我都试图从文件中读取一行,所以我写了这个:
import serial
from time import sleep
port = "/dev/tty.usbserial-A400fYTT"
speed = 57600
polarfile = 'polarfile.pg'
f = open(polarfile, 'r')
ser = serial.Serial(port, speed, timeout=0)
while True:
data = ser.read(9999)
if len(data) > 0:
if(data == 'READY'):
f.readline()
else:
sleep(0.5)
sleep(1)
ser.close()
但它不起作用,但是如果我用打印数据替换if(data =='READY'块。我得到READY消息。
我也可以用f.readline()...
读取我的文件感谢为py新手提供建议
- 编辑: 重要的信息,串口不仅收到“READY”信息,而是一堆其他信息,但我只想在收到“READY”消息时做出反应。
答案 0 :(得分:1)
我只是替换
data = ser.read(9999)
通过
data = ser.readline(9999)
它逐行给出了消息,而不是输入数据的第二个消息,然后替换
if( data == 'READY' ):
if (data.startswith('READY')):
现在它有效:)