一直在搜索,但没有找到答案,或者它对我没有用。
我用Raspberry Pi和PIR传感器构建了家庭报警系统。 警报系统由 control.py 和 alarm.py 脚本组成。 control.py 是用于控制警报检测的简单烧瓶网页。 alarm.py 基本上是一个while循环,用于检查传感器是否已被触发。
我从 control.py 开始使用Popen alarm.py 。有没有办法从 control.py 修改 alarm.py 中的变量(以便while循环中断和程序退出)?
启动检测程序的control.py中的代码行:
detection = subprocess.Popen(['python', 'alarm.py'], shell=False)
alarm.py中的循环:
while True:
CurrentState=GPIO.input(GPIO_PIR)
if CurrentState==1 and PreviousState==0:
print "Motion detected!"
PreviousState=1
elif CurrentState==1 and PreviousState==1:
print "Motion detected!"
elif CurrentState==0 and PreviousState==1:
PreviousState=0
time.sleep(0.1)
GPIO.cleanup()
答案 0 :(得分:1)
由于您将alarm.py作为一个单独的进程启动,因此没有共享变量空间可以直接设置alarm.py可以访问的control.py中的任何变量。
你有几个选择: