0

我有一个愚蠢的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”消息时做出反应。

4

1 回答 1

1

我只是更换

数据 = ser.read(9999)

经过

data = ser.readline(9999)这给了我逐行而不是逐秒输入数据的消息,然后替换

if( data == 'READY' ):经过

if (data.startswith('READY')):

现在它可以工作了:)

于 2012-10-12T22:05:11.380 回答