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