我正在使用 webiopi,我基本上想要发生的是当网页加载时,一个追逐一些 LED 的空闲循环运行。然后,当有人按下网站上的按钮时,它将停止空闲循环。
这是我到目前为止所拥有的:
import webiopi
import time
GPIO = webiopi.GPIO
LIGHT1 = 2
LIGHT2 = 3
LIGHT3 = 4
def setup():
GPIO.setFunction(LIGHT1, GPIO.OUT)
GPIO.setFunction(LIGHT2, GPIO.OUT)
GPIO.setFunction(LIGHT3, GPIO.OUT)
a=0
def loop():
webiopi.sleep(1)
@webiopi.macro
def stopLoop():
print("Stopping Loop");
global a
a = 1
return a
@webiopi.macro
def idleLoop():
print("Entering idleLoop");
while (a==0):
GPIO.digitalWrite(LIGHT1, GPIO.HIGH)
time.sleep(0.05)
GPIO.digitalWrite(LIGHT2, GPIO.HIGH)
GPIO.digitalWrite(LIGHT1, GPIO.LOW)
time.sleep(0.05)
GPIO.digitalWrite(LIGHT3, GPIO.HIGH)
GPIO.digitalWrite(LIGHT2, GPIO.LOW)
time.sleep(0.05)
所以,我可以让它运行idleLoop,我有一个按钮来发送stopLoop的命令,我可以看到它通过POST,但是在我的PI调试窗口中,我只看到它进入idleLoop ,但它从不进入stopLoop。我不确定是否必须编写中断或多线程,但我只需要一些指导。谢谢!