python 程序需要每秒从串行端口接受一个字符串。我打算使用 RS-232 到 USB 转换器。该应用程序将在 Ubuntu 10.04 下运行。
这期间需要做一些处理,所以同步通信是不可行的。我是使用某种中断还是需要打开单独的线程?或者我是否使用阻塞读取,相信 1 对我的计算来说已经足够了(现在已经足够了)?
我知道,RTFM,但是从一开始就朝着正确的方向前进会为我节省很多时间!谢谢你陪我。
python 程序需要每秒从串行端口接受一个字符串。我打算使用 RS-232 到 USB 转换器。该应用程序将在 Ubuntu 10.04 下运行。
这期间需要做一些处理,所以同步通信是不可行的。我是使用某种中断还是需要打开单独的线程?或者我是否使用阻塞读取,相信 1 对我的计算来说已经足够了(现在已经足够了)?
我知道,RTFM,但是从一开始就朝着正确的方向前进会为我节省很多时间!谢谢你陪我。
如果您的 RS232-USB 转换器在 Ubuntu 中有一个使它看起来像 COM 端口的驱动程序,那么您将需要使用 pySerial(接口与任何其他 COM 端口相同)。如果您的设备没有驱动程序,那么您可能必须使用 libusb 并为您的特定设备找到协议。如今,大多数主要的 RS232-USB 转换器都在 Linux 内核中提交和维护了基于 USB 串行的驱动程序。只需咨询您的供应商即可。
有很多方法可以进行并行处理,但通常我以两种方式编写我的应用程序:
有一个读取线程,除了读取和填充本地线程安全缓冲区之外什么都不做,以便在需要时为其他线程准备好数据。
有一个读取线程来读取数据,确定数据的去向,并通过消息传递/事件处理将数据传递给需要它的组件。
这里的决定将取决于你的目标是什么,以及在阅读之外需要多少处理。