了解USB设备是否已连接。 Linux中的Ruby

时间:2010-11-30 19:13:01

标签: ruby linux serial-port usb hal

我正在使用Ruby 1.8和Linux(Ubuntu和SLAX),我需要在ruby中编写一个脚本,它会发现某个特定的USB设备是否连接到系统以及哪个USB端口(0,1,2)等)。之前在HAL(hal-find-by-capability --capability serial)的帮助下完成了,但现在我无法使用这种方法。我试图读取/ var / log / messages文件试图找到usb端口的编号,但似乎这个编号可能不会写在某些系统中。我尝试的其他方法是检查/ dev文件夹并搜索ttyUSB#文件,但是当新设备连接到USB时,它不会出现在某些系统上。 我很感激任何想法如何做到这一点。

3 个答案:

答案 0 :(得分:3)

lsusb是一个linux命令,用于显示USB集线器并列出连接到它们的设备。在红宝石中,我相信你能做到这样的事情:

ls_results = `lsusb`

您应该能够针对您正在寻找的任何设备进行解析。

答案 1 :(得分:0)

很抱歉,我无法为您提供红宝石样本。我在C / C ++(QT)中遇到了同样的问题。你可以在这里找到我的代码:

http://www.known-issues.net/cpp/how-to-detect-if-dev-is-a-usb-device.html

答案 2 :(得分:0)

你有libusb ruby​​绑定,可以控制usb设备。