2

python 程序需要每秒从串行端口接受一个字符串。我打算使用 RS-232 到 USB 转换器。该应用程序将在 Ubuntu 10.04 下运行。

我该如何处理?我使用pySerial还是libusb

这期间需要做一些处理,所以同步通信是不可行的。我是使用某种中断还是需要打开单独的线程?或者我是否使用阻塞读取,相信 1 对我的计算来说已经足够了(现在已经足够了)?

我知道,RTFM,但是从一开始就朝着正确的方向前进会为我节省很多时间!谢谢你陪我。

4

1 回答 1

3

如果您的 RS232-USB 转换器在 Ubuntu 中有一个使它看起来像 COM 端口的驱动程序,那么您将需要使用 pySerial(接口与任何其他 COM 端口相同)。如果您的设备没有驱动程序,那么您可能必须使用 libusb 并为您的特定设备找到协议。如今,大多数主要的 RS232-USB 转换器都在 Linux 内核中提交和维护了基于 USB 串行的驱动程序。只需咨询您的供应商即可。

有很多方法可以进行并行处理,但通常我以两种方式编写我的应用程序:

  • 有一个读取线程,除了读取和填充本地线程安全缓冲区之外什么都不做,以便在需要时为其他线程准备好数据。

  • 有一个读取线程来读取数据,确定数据的去向,并通过消息传递/事件处理将数据传递给需要它的组件。

这里的决定将取决于你的目标是什么,以及在阅读之外需要多少处理。

于 2013-09-03T14:16:44.533 回答