我有以下情况:
问题是这两个进程不能共存,因为它们使用的是相同的串口,而当一个进程已经启动时,另一个进程无法从串口读取数据(端口繁忙)。
有办法做到这一点吗?我能做一个“假的”串行端口,或者重定向数据的东西吗?
非常感谢
发布于 2015-05-12 09:59:18
您可以编写一个与实际串行端口通信的服务,但提供两个虚拟串行端口,如下所述:Virtual Serial Port for Linux
发布于 2015-05-12 11:09:17
就像所有优秀的GSM产品一样,也有一个规范:)
GSM 07.10是规范,在一段时间内有一些库可以支持您。有些是可以构建到服务器系统中的库,有些是实际的守护进程。
一个快速的谷歌"gsm复用“将使您的开始,我相信。
发布于 2020-08-22 14:29:35
我在管理一些独立进程之间的串行端口时也遇到了类似的问题。最后,我最好的解决方案是使用Redis来侦听对端口的调用。
想要发送一些东西的进程,通过redis发布,在通道'uart_request‘中,一个带有参数的json,用于调用串口,以及一个带有时间戳的散列('hash_message')。在发布json之前,进程订阅‘散列_消息’。
最后,进程侦听'uart_request‘中的帖子。当一个帖子到达时,从json中取出'hash_message‘,对串口进行调用,等待响应,并在’散列_message‘中发布响应。
关键是只有一个进程控制串口,所以不需要打开和关闭。效果真的很好。
https://stackoverflow.com/questions/30187375
复制相似问题