pyserial,if和file read

时间:2012-10-04 20:26:48

标签: python pyserial

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

1 个答案:

答案 0 :(得分:1)

我只是替换

data = ser.read(9999)

通过

data = ser.readline(9999)它逐行给出了消息,而不是输入数据的第二个消息,然后替换

if( data == 'READY' ):

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

现在它有效:)