停止脚本执行n秒

时间:2015-10-08 19:25:10

标签: python

在我的例子中,方法sleep()(时间模块)暂停脚本执行。 (Scipt是​​完全编译的,只需等待n秒直到继续)。

我正在寻找"停止脚本执行"为n秒。

例如,我通过uart读取rfid-Tags并计算cnt一次。 我在阅读器上拿着RFID标签2秒,在这2秒内,阅读器处理标签4次。

因此我的结果是:

1

-wating 10 seconds-

2

-wating 10 seconds-

3

-wating 10 seconds-

4

-wating 10 seconds-

如何在阅读标签后告诉脚本,停止执行10秒钟?我不想多次处理同一个标签。 在这10秒内不应该多次扫描标签。

python代码

import serial
import time

ser = serial.Serial('/dev/ttyAMA0', 2400, timeout=1)
cnt=0
while True:
    string = ser.read(12) 

    if len(string) == 0:
        continue
    else:

        cnt=cnt+1
        print cnt
        time.sleep(10)

我该如何处理?

1 个答案:

答案 0 :(得分:0)

pySerial被缓冲(存储睡眠时发送的数据),因此time.sleep()对Serial.read()没有影响。

使用flush()或flushInput清除缓冲区。

import serial
import time

ser = serial.Serial('/dev/ttyAMA0', 2400, timeout=1)
cnt=0
while True:

    ser.flushInput()   ## clear buffer

    string = ser.read(12) 

    if len(string) == 0:
        continue
    else:

        cnt=cnt+1
        print cnt 
        ser.flushInput()  # clear buffer
        time.sleep(10)