我正在开发一个脚本,它利用我在Raspberry Pi 3上控制8通道继电器板继电器的功能。该功能正常工作,调用该功能。我正在尝试开发此脚本,因此当当前时间等于另一个时间(例如第1区开始时间)时,继电器会根据代码中其他部分接收的状态打开/关闭。
我已经测试了它没有这个时间等于部分,一切正常。当我添加这种复杂程度时,我似乎遇到了一些问题。以下是我的代码示例:while True:
from datetime import datetime
import time
import smbus
ValveStatus='00000001' #0 is closed, 1 is open.
R1_1,R2_1,R3_1,R4_1,R5_1,R6_1,R7_1,R8_1=list(map(int, ValveStatus))
currenttime=datetime.today().strftime('%Y-%m-%d %H:%M:%S')
Z1S_Timestamp='2018-07-09 10:25:11'
if(currenttime==Z1S_Timestamp):
if(R8_1==1):
SetRelayState(BoardOne,8,"ON")
else:
SetRelayState(BoardOne,8,"OFF")
无论我多少次更改代码,它都无法使用此计时方法。它永远不会进入循环,因此继电器永远不会打开。有没有更好的方法来做到这一点,而不仅仅是如果等于陈述?我愿意编辑它,但继电器仍然需要在开始时间周围打开。我认为1或2分钟的余量是可以的,因为它完全相同的时间不是100%必要的。
会是这样的:currenttime= '2018-07-09 12:53:55' #hard coding just for example purposes
if('2018-07-09 12:52:55' <= currenttime <= '2018-07-09 12:54:55'):
do the things
是一个更有效/正确/ python正确的方法?