监视标志状态几秒钟

时间:2014-11-01 18:24:12

标签: python python-2.7 time monitoring

我希望在按下开关约5秒后设置标志的状态。按下开关后,标志设置为flase,一旦按下,如果按下开关,我想继续检查5秒钟。如果不是,我需要再次检查按下开关。如果按下,再次监视它5秒钟。如果按住5秒钟,则调用另一个函数function1()

def switch():
     while(flag == True):
         switch=GPIO.input(1)
         if (switch==0):
            time.sleep(5)
            function1()
            Active = False
            function2()

我上面写的方式是我只是睡了5秒钟,然后在5秒后检查,这不是我想要的。谁能告诉我如何执行上面提到的逻辑?

编辑:我只需要知道按下后开关是否继续按下5秒钟。如果它在那5秒内被压下,那么我再次需要检查是否再次按下开关,然后再继续5秒钟,直到开关遥控器按下5秒钟

1 个答案:

答案 0 :(得分:0)

好吧,我认为你可以这样做的一种方法是使用计时器。这假设您在用户释放交换机时也会收到事件。导入时间库:

switch_flag = False
start_time = 0
end_time = 0

def switch():
    global switch_flag, start_time
    switch_flag = True
    start_time = time.time()

def unswitch():
    global switch_flag, start_time, end_time
    switch_flag = False
    end_time = time.time()
    if end_time - start_time > 5:
        print("5 seconds elapsed!")

python定时器有一些平台/粒度问题,但如果我们说5秒钟,我怀疑它会成为一个问题。