如何构建我的Python代码?

时间:2014-04-16 01:51:04

标签: python multithreading buffer raspberry-pi

我提前道歉,因为这有点模糊,但我想弄清楚从高层角度编写程序的最佳方法是什么。以下是我要完成的内容概述:

  1. RasPi从串口上的高度传感器输入115000波特。
  2. 是否有一些十六进制 - > dec数学和更新状态变量(音高,滚动,航向等)
  3. 使用pygame库根据模拟抬头显示器上的状态变量进行一些图像处理
  4. 以30 fps的速度将图像输出到投影仪。
  5. 请注意,目前没有用户输入。

    我遇到的问题是帧速率。帧速率必须是恒定的。我宁愿跳过数据包而不是丢帧。

    我可以通过两种方式看到这种结构:

    • 编写一个函数,在调用时,从串行总线获取数据并将状态变量作为输出吐出。然后编写一个从内部调用此函数的pygame循环。我对此的担心是,如果串行端口开始在态度消息的 end 处读取,它将必须暂停并等待消息再次启动(几分之一秒,但可能导致帧丢失)
    • 写两个独立的模块,两个模块同时运行。一个人不断从串口读取数据并尽快更新状态变量。另一个只是进行图像处理,并在需要时抓取最新的状态变量。但是,我真的不确定如何编写这样的多线程程序,我不知道RasPi将如何处理这样的程序。

1 个答案:

答案 0 :(得分:0)

我不认为RasPi可以很好地运行多线程程序。尝试第一种方法,虽然看到多线程程序的结果会很有趣。