Python,如何检查 a >= b 是否持续 5 秒?我使用 while 循环并在其他函数中出现延迟
Python, how to check if a >= b for 5 seconds ? I used while loops and got delays in other functions
我绝对是 python 的菜鸟,而且主要是编程方面的菜鸟。 (所以批评我希望我也能从中学习)
我正在尝试在 Raspberry Pi 3 上创建我的 "program",Raspbian OS
我的问题如下:
我想测试 "if a >= b for 5 seconds"(其中 "a" 是我在另一个函数中从串行读出的值)
如果是就做某事如果不是就做某事,看起来真的很简单...
我已经准备好 "party" 在我的代码中用我的一个函数中的 while 循环解决了它一次,但是当我将 "time waiting while loop" 复制到我的另一个函数时它开始产生巨大的延迟(这与我添加到额外 while 循环的时间大致相同)
我真的希望有人能建议我用其他方法来检查 "if a >= b for 5 seconds" 除了 while 循环
或者如果有人有空闲时间检查我的代码并告诉我我犯了什么错误(可能是很多菜鸟错误)
这是我的代码,它不包含关键的 2 个 while 循环(只有一个延迟 30 秒)
`https://pastebin.com/RmEcLRJA`
这是另一个带有 2 个额外的 while 循环,这似乎延迟了(我的 xwatts 变量的)测量总共大约 6-14 秒(我在每个 while 循环中延迟了 3 秒)
`https://pastebin.com/HB99vH9c`
P.S。抱歉链接我的代码很长,在这里粘贴两次
我的值"a"是一个不断变化的值,它在不到1秒内更新,我需要知道a >= b是否不断持续5秒,如果它只下降1个读数(0.1秒) 它必须重新启动 5 秒 "timer"
您可以使用 while:
import time
end_time = time.time() + 5
while 'Wait 5 seconds':
if a >= b:
...
if time.time() > end_time:
break
同时删除代码中的所有 time.sleep()
将解决您的延迟问题。
我绝对是 python 的菜鸟,而且主要是编程方面的菜鸟。 (所以批评我希望我也能从中学习)
我正在尝试在 Raspberry Pi 3 上创建我的 "program",Raspbian OS
我的问题如下:
我想测试 "if a >= b for 5 seconds"(其中 "a" 是我在另一个函数中从串行读出的值)
如果是就做某事如果不是就做某事,看起来真的很简单...
我已经准备好 "party" 在我的代码中用我的一个函数中的 while 循环解决了它一次,但是当我将 "time waiting while loop" 复制到我的另一个函数时它开始产生巨大的延迟(这与我添加到额外 while 循环的时间大致相同)
我真的希望有人能建议我用其他方法来检查 "if a >= b for 5 seconds" 除了 while 循环
或者如果有人有空闲时间检查我的代码并告诉我我犯了什么错误(可能是很多菜鸟错误)
这是我的代码,它不包含关键的 2 个 while 循环(只有一个延迟 30 秒)
`https://pastebin.com/RmEcLRJA`
这是另一个带有 2 个额外的 while 循环,这似乎延迟了(我的 xwatts 变量的)测量总共大约 6-14 秒(我在每个 while 循环中延迟了 3 秒)
`https://pastebin.com/HB99vH9c`
P.S。抱歉链接我的代码很长,在这里粘贴两次
我的值"a"是一个不断变化的值,它在不到1秒内更新,我需要知道a >= b是否不断持续5秒,如果它只下降1个读数(0.1秒) 它必须重新启动 5 秒 "timer"
您可以使用 while:
import time
end_time = time.time() + 5
while 'Wait 5 seconds':
if a >= b:
...
if time.time() > end_time:
break
同时删除代码中的所有 time.sleep()
将解决您的延迟问题。