Python在Flask中重复函数,直到需要的结果,延迟40秒

2024-09-28 21:35:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有密码用树莓皮烧瓶关上大门。闸门移动缓慢,当我触发电机时,它可能会打开、关闭或停止,这取决于它在控制器周期中的位置。在

我希望close()函数检查关闭限位开关是否跳闸,如果没有,则触发电机。在40秒的延迟之后,我想重复这个步骤,直到关闭限位开关被触发。在

这是我的闭合函数

def Close():
    # Check Close Sensor
    if CloseCheck() == False:
    return 'Gate is Closed'

    trigger()
    sleep(40)
    Close()
    return null

Flask似乎没有等待睡眠请求。这是正常行为吗?如何每隔40秒重新运行关闭功能,直到触发关闭传感器?在


Tags: 函数密码closereturn烧瓶defcheck步骤
2条回答

也许您可以使用while循环来持续检查门是否关闭:

while True:
    if isGateClosed():
        break
    closeGate()
    time.sleep(40)

这将每隔40秒检查一次门是否关闭,并在该条件为真时退出循环。在

只需循环直到CloseCheck()为False

def Close():
    # Check Close Sensor
    while CloseCheck():
        trigger() # run trigger
        sleep(40) #  sleep and repeat
    return 'Gate is Closed' # CloseCheck is False, return 

相关问题 更多 >