我提前道歉,因为这有点模糊,但我想弄清楚从高层角度编写程序的最佳方法是什么。以下是我要完成的内容概述:
- RasPi从串口上的高度传感器输入115000波特。
- 是否有一些十六进制 - > dec数学和更新状态变量(音高,滚动,航向等)
- 使用pygame库根据模拟抬头显示器上的状态变量进行一些图像处理
- 以30 fps的速度将图像输出到投影仪。
醇>
请注意,目前没有用户输入。
我遇到的问题是帧速率。帧速率必须是恒定的。我宁愿跳过数据包而不是丢帧。
我可以通过两种方式看到这种结构:
- 编写一个函数,在调用时,从串行总线获取数据并将状态变量作为输出吐出。然后编写一个从内部调用此函数的pygame循环。我对此的担心是,如果串行端口开始在态度消息的 end 处读取,它将必须暂停并等待消息再次启动(几分之一秒,但可能导致帧丢失)
- 写两个独立的模块,两个模块同时运行。一个人不断从串口读取数据并尽快更新状态变量。另一个只是进行图像处理,并在需要时抓取最新的状态变量。但是,我真的不确定如何编写这样的多线程程序,我不知道RasPi将如何处理这样的程序。