修改目标子流程中的变量

2024-05-20 04:38:43 发布

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

已经搜索了好几天,但没有找到答案,或者对我不起作用。你知道吗

我已经建立了家庭报警系统与覆盆子Pi和PIR传感器。 报警系统包括控制.py报警.py脚本。 控制.py是控制报警检测的简单网页。 报警.py是一个基本的while循环,用于检查传感器是否触发。你知道吗

我开始报警.py来自控制.py。有没有办法修改中的变量报警.py来自控制.py(以便while循环中断并退出程序)?你知道吗

输入代码行控制.py启动检测程序:

detection = subprocess.Popen(['python', 'alarm.py'], shell=False)

还有循环报警.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()

Tags: andpy程序报警gpio系统传感器motion
1条回答
网友
1楼 · 发布于 2024-05-20 04:38:43

既然你要开始报警.py作为一个独立的进程,没有共享的变量空间来直接设置控制.py那个报警.py可以访问。你知道吗

这里有几个选项:

  • 使用threads而不是子进程
  • 使用multiprocessing模块,它为两个Python进程之间的通信提供机制
  • 附上你的标准报警.py子进程,并尝试对循环的每次迭代进行非阻塞读取,然后从控制.py当你准备离开的时候
  • 使用一些操作系统级别的修改作为报警.py退出(例如,在特定位置创建文件)

相关问题 更多 >