我有一个通过串口连接的GPS模块(USB->虚拟COM端口)。测量软件正在使用此端口,因此使用其他软件无法访问数据。我想创建两个虚拟COM端口并通过它共享此数据。是否可以使用Python?是否有用Python编写的开源示例?
答案 0 :(得分:2)
如果您无法修改测量软件的来源,我认为您无法做到这一点。
串行端口协议被写为“点对点”协议,因此没有通用的方法来复用它们。您可以编写一个共享GPS模块访问权限的程序(专门处理它并将API暴露给多个程序),但是每个想要使用GPS模块的程序都应该写成与您交谈API而不是直接连接到串行端口 - 在这种情况下,只有在您可以更改测量软件时才能完成。
请注意,实现您的“虚拟端口”解决方案可能并非不可能,但它可能是一个临时的黑客攻击(它只适用于该特定协议)而且可能非常复杂:您需要模拟两个GPS模块并将请求复用到真实的GPS模块;取决于它是如何工作的(例如,如果它具有“复杂的”持久状态),它可能是简单的或非常复杂的。但是,对于模拟你必须以内核模式运行的串行端口,Python肯定是不够的。
答案 1 :(得分:0)
您需要双向沟通,还是只需阅读?您可以构建或购买硬件以物理拆分Rx数据线,这样您就可以使用两个COM端口,每个端口都会读取相同的数据。您也可以使用Tx数据执行此操作,但如果两个端口同时尝试写入,则必须小心丢弃数据。