Python中的USB转换器串行通信 - 如何处理?

时间:2013-09-02 08:58:34

标签: python serial-port usb

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

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

在此期间需要进行一些处理,因此同步通信是不可行的。我是否使用某种中断或者是否需要打开单独的线程?或者我是否使用阻塞读取,相信1s足以进行我的计算(现在很多......)

我知道, RTFM ,但从一开始就朝着正确的方向前进将为我节省大量时间!谢谢你的支持。

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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