在Windows上使用Python共享串口

0 投票
2 回答
819 浏览
提问于 2025-04-17 11:57

我有一个GPS模块,是通过串口连接的(USB转虚拟串口)。现在有一个测量软件在使用这个串口,所以我不能用其他软件来获取数据。我想创建两个虚拟串口,把这些数据共享出去。请问用Python可以做到吗?有没有开源的Python示例可以参考?

2 个回答

0

你需要双向通信,还是只需要读取数据?你可以自己制作或者购买一些硬件,把接收数据的线路分开,这样就可以使用两个串口,每个串口都能读取到相同的数据。你也可以对发送数据做类似的处理,但要小心,如果两个端口同时发送数据,可能会导致数据混乱。

2

我觉得如果你不能修改测量软件的源代码,那就做不到这一点。

串口协议是“点对点”的,所以没有通用的方法来让它们同时工作。你可以写一个程序来共享对GPS模块的访问(独占处理它并向多个程序提供一个接口),但是每个想要使用GPS模块的程序都必须按照你的接口来编写,而不是直接和串口对接——在这种情况下,只有在你能修改测量软件的情况下才能做到。

需要注意的是,虽然实现你的“虚拟端口”解决方案可能不是不可能,但这会是一个临时的解决办法(只适用于特定的协议),而且可能会相当复杂:你需要模拟两个GPS模块,并将请求转发到真实的GPS模块;根据它的工作方式(例如,如果它有一个“复杂”的持久状态),这可能简单也可能非常复杂。不过,肯定的是,光用Python是不够的,要模拟串口,你必须进入内核模式。

撰写回答