首页 > 解决方案 > 子流程(?)管理

问题描述

我目前正在做一个项目,该项目需要在后台始终运行一个进程,该进程将通过串行接口输出数据,并且一次只能有一个进程处于活动状态。我们需要创建一个触摸屏界面来控制这个过程的采样率和其他一些因素。我遇到的问题是如何管理这个过程。这是在 Raspberry Pi 3 B+ 上运行的,触摸屏使用的是 kivy。由于我需要从触摸屏进行管理,因此我需要对这个后台进程进行某种访问以更改值,因为如果我要在 UI 中运行它,触摸屏会冻结,因为我必须将读取放入一段时间永远不会退出的真正循环。如何格式化串行输出过程的一个示例是

percent = calculate_percentage(data_rate, max_value)
while True:
    percent.output_percentage()
    time.sleep((1/data_rate) - 0.00055)

0.00055 大约是 percent.output_percentage() 运行所需的时间,因为我们希望采样率尽可能准确,并且在不考虑该值的情况下,进程运行的时间越长,我们就会得到大量的漂移。如果有人对如何处理它有任何建议,我也很想听听他们的意见。

我很想找到一些方法来管理这个过程并轻松更改值并终止旧过程。

标签: pythonkivytiming

解决方案


推荐阅读