我使用raspberry pi(运行最新的Jessie Raspbian构建)为项目创建嵌入式系统。连接的设备在Python中有我试图连接的库。然而,这是我第一次真正触及python(我通常使用Java或C / C ++),所以请原谅我缺乏知识。
到目前为止,我可以让我的键盘和液晶屏幕进行交互,但不能同时进行。我想让LCD屏幕循环显示一系列选项,同时还要监听键盘输入。
def WelcomeMessage():
while 1:
lcd.clear()
lcd.message(...) #top line of lcd
lcd.message(...) #bottom line of lcd
time.sleep(3)
#more messages
听键盘输入很简单
#in the main function
digit = None
while digit == None:
digit = kp.getKey()
我尝试使用多进程,并使用 Start()
运行我的欢迎消息,例如:
#in main
p = multiprocess.Process(target = WelcomeMessage)
p.Start()
#doesn't get past this line
while digit == None:
digit = kp.getKey()
p.terminate()
但它永远不会注册键输入,因为它永远不会进入while循环。
我也尝试在os lib中使用 fork()
,(因为它与c中的方式非常相似);然而,使用kill()
和 SIGTERM
来结束子进程(因为while条件总是正确的,我没有一个干净的方法来结束它),但最终会杀死我的父进程好。
这似乎是一个简单的问题,所以我假设它是因为我自己缺乏知识。如果有人能告诉我使用fork或multiprocess来实现这一目的的正确方法,或者有一个很好的解决方法来从外部结束while循环,我将不胜感激。