在python中编写和监听相同的串口

时间:2011-08-03 04:36:50

标签: python serial-port pyserial

在没有“COM PORT IN USE”错误的情况下,有没有这样做呢?我有一个服务,在com端口上监听gps GPRMC句子。但是我的测试计算机上没有这个设备。所以我想写一个python脚本来模拟端口上的GPRMC句子,而我的另一个python脚本监听同一个端口并进行解析。

1 个答案:

答案 0 :(得分:3)

写入串行端口不会在串行端口上留下要由同一设备读取的消息。这不是串行端口的工作方式,也不是大多数操作系统的编写方式,以作为缓冲行为。你真正需要的是一个虚拟串口。

查看有关COM端口重定向器的维基百科文章的this部分,看看是否有任何内容可以满足您的需求。否则,我建议您搜索COM端口仿真器,串行端口虚拟化等,直到找到适合您的用例和操作系统的软件。这可能很难,特别是如果时间对您的模拟很重要。

编辑:为了使其更加清晰,让我们来谈谈pySerial库实际上与python进行通信的内容。 pySerial只是与操作系统的串行端口API进行通信。通常,OS将其建模为将信息写入的位置和从中读取信息的位置(在几乎所有现代计算系统中缓冲)。重要的是要理解的是,从操作系统的角度来看(如何建模串行端口),只能写入写入位置,只能读取读取位置。在我使用的大多数串行端口硬件和接口设计中,这可能是也可能不是实际的串行硬件与机器的接口,这是为了简化和降低成本。因此,您可以选择两种基本选择。

  1. 为操作系统提供一个可以读取的虚拟串口并以某种方式写入

  2. 可能更简单,将零调制解调器适配器放在计算机的一个串行端口上,然后使用串行电缆连接两个端口。您现在可以在一个端口上使用您的服务,在另一个端口上使用您的模拟设备脚本。