编辑: 我显然没有意识到守护进程线程。。这解决了主要问题。。 现在让人困惑的是,如何保持循环检查按钮是否按下,是否按下=)
当我按下一个按钮(连接到引脚的紧急停止按钮)时,我正试图停止raspberry pi运行代码
到目前为止还没有成功(在我的示例代码中,我使用代码切换按钮的灯光,以使测试更容易)
线程似乎工作得很好,但是安装在pi中运行代码的shell程序在实际执行之前,首先“测试运行”代码以检查错误。在我的whilenot read_button()
代码中,代码的“检查”卡在“whilenot”上,直到我按下按钮;不理想
反转代码并使用while read_button()
或只使用if read_button()
实际上不会响应我的按钮按下,因为代码很可能在检查后完成,而不是连续检查
所以。。如何解决这个问题?一个continues循环会阻止我的代码继续运行,直到while循环中断(我确实在最后加入了线程..)。非连续循环不起作用,因为它不会连续检查按钮按下情况
使事情变得更糟;在执行紧急停止后,我希望线程在之后继续检查按钮按下情况(用户可能决定恢复程序,并在同一代码中稍后再次点击紧急停止)
我觉得我自己陷入了一个无休止的循环,试图解决这个问题
(很抱歉帖子太长,也很抱歉使用了noob术语,我对这一点非常陌生;3周前才开始编程)
提前非常感谢
def button_check():
while not read_button(): #developer API
if read_button():
set_button_light(blue=True) #developer API
t = Thread(target=button_check)
t.start()
time.sleep(20) #just to give me time to test
t.join()
目前没有回答
相关问题 更多 >
编程相关推荐