是否有可能查询某个特定的串口在linux pc上是否连接/断开?有没有什么办法可以读取sysfs信息来查询特定端口是否连接?是否有可能知道一个串口在linux中是否连接/断开?
3
A
回答
11
这取决于你的意思是“连接”。我会首先解决最不准确但最简单的含义。
存在端口
如果你的意思是,以找出是否端口本身是存在于系统中,那么你可以检查已加载模块将支持它的存在,检查是否存在(如/ dev/ttyS0或/ dev/ttyUSB0,和)验证您是否可以打开它(例如,我在实际上没有该硬件的系统上存在/ dev/ttyS0设备文件) 。 USB转换器可以被热插拔,所以今天你可以看到实际的“串行端口”在一个正在运行的系统中进出。
“调制解调器”控制/状态信号
另一种可能性是,你要找出是否有任何电缆连接到端口。这不是系统必须知道的事情。有一个外设可以断言的调制解调器控制和状态信号,你可以阅读。但是,外设并不需要使用这些,甚至在调制解调器时代曾经有意义的方式使用它们。您可能发现自己连接的许多系统仅使用接收和发送数据线和接地。
通过接收数据
剩余的可能性是,有可能是没有办法知道如果端口被连接时,比通过寻找从它数据等检测。有些外设可能会定期自动生成数据,因此您可以尝试阅读并查看是否有任何数据。对于其他人,你可以发送一个查询(希望没有不希望的副作用),并看看你是否得到预期的回应。例如,如果您发送字符串“* IDN?\ n”,那么大约实施SCPI标准的仪器可能会回复一些识别信息。
另一个主要的问题是你必须使端口和外设配置为兼容的波特率和字格式。否则,您可能会看到随机数据。你可能在某些情况下能够从实现的UART引擎中读取帧错误位(你必须检查驱动程序是否暴露了这种情况),并将其用作可能存在某种东西的指示,但是在错误的波特率率。
通过对硬件和期望数据进行细粒度控制,也可以编写自动波特率检测程序,但通常在“外设”端而不是“主机”上执行。
相关问题
- 1. 是否有可能知道从哪个
- 2. 是否知道远程套接字是关闭还是断开?
- 3. 是否有可能使NuGet.exe运行与Visual Studio断开连接?
- 4. 是否有可能确定一个命名窗口是否在JavaScript中打开?
- 5. UWP中是否有一个断开连接的ado.net层
- 6. 是否有可能知道JFrame是否完全可见?
- 7. 如何知道Linux系统中的端口是否打开
- 8. 是否有可能知道活动是如何开始的?
- 9. 有可能知道一个字符串是否在base64中编码?
- 10. 是否有可能在一个nhibernate会话中有多个连接字符串?
- 11. 在Java中,是否有可能知道某个类是否已被加载?
- 12. 是否可以知道在Excel VBA中打开了多少个Oracle连接?
- 13. 是否有可能知道一个类是否被扩展方法扩展?
- 14. 是否有可能知道我的访客是否登录Facebook?
- 15. 是否有可能知道BufferedReader.readLine()是否会提前返回null?
- 16. Mongoose.js:是否有可能知道字段是否已填充
- 17. 是否有可能知道serialVersionUID是否自动生成?
- 18. php mysql断开连接是否真的断开连接?
- 19. 如何知道网络是否连接?
- 20. 如何知道socket.Io是否连接android
- 21. 是否有可能知道该函数是否在PHP中的eval()中调用?
- 22. 是否有可能知道DOM/JavaScript图像是否具有Alpha通道
- 23. 是否有可能在php中知道(服务器)CPU性能?
- 24. 是否有可能找出VNC连接是否有效
- 25. Python PySerial.How要知道一个端口是否已经打开?
- 26. 是否有可能知道我们是否已经在iframe中了
- 27. 是否有可能知道图像是否在iPhone系统缓存中?
- 28. 是否有可能在IE10中的下一个事件中断?
- 29. 如何才能知道在MySQL中是否有事务打开?
- 30. 如何知道一个字符串是否包含口音
非常感谢您的详细解释,感谢您的帮助。 –
@RajeshSO plz接受答案,如果你满意。这将有助于其他人。 – Raulp