我正在尝试让一个arduino板与使用UART运行Ubuntu的beaglebone(BB)白色通信。我已经读过BB uart驱动程序已经被中断驱动了。
我想将所有传入的数据存储到一种缓冲区中,我可以在需要时读取,类似于在微控制器中完成的方式。但我试图避免内核编程,所以我将无法使用驱动程序的数据结构。我正在寻找一个完整的用户空间解决方案。
我打算使用两个python进程,一个用于写入所有传入数据(到共享列表),另一个用于根据需要读取它,以便读取无阻塞。
我有两个问题:
这是正确的做法吗?如果是,请建议一个简单的进程间通信方法就足够了。
实施此方法的正确方法是什么?
注意:我正在使用PyBBIO库直接读取/写入/ dev / mem特殊文件。
答案 0 :(得分:2)
您可能希望使用pyserial,它使用内核接口(我不知道PyBBIO的作用)。它提供自动输入缓冲 - 因此您不需要额外的过程。如果您确实希望有更多进程使用multiprocessing。一个更简单的选择是threading,它可以为您节省通信部分。对于具有网络支持的多处理,请使用Ipython's cluster