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)これにより、入力データの1秒ごとではなく1行ごとにメッセージが表示され、

if( data == 'READY' ):

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

そして今それは動作します:)

于 2012-10-12T22:05:11.380 に答える