我认为 ruby-dbus 可能是正确的解决方案,但我似乎找不到任何关于如何实时检测的示例,只要存储设备连接到 Linux 机器。有人有这样的例子吗?
您似乎可以采取许多不同的方法。
这是我发现libusb
与 Ruby FFI链接的 Ruby 实现。
这样做的好处是 libusb 支持热插拔通知,所以这可能是你需要的东西:http :
//libusb.sourceforge.net/api-1.0/hotplug.html
设备热插拔支持
如果
LIBUSB.has_capability?(:CAP_HAS_HOTPLUG)
返回 true ,则可以使用对设备热插拔的支持。这需要在 Linux 或 MacOS 上使用 libusb-1.0.16 或更新版本。Windows 支持仍在进行中。可以使用 {
LIBUSB::Context#on_hotplug_event
}注册热插拔事件处理程序。然后您需要调用 {LIBUSB::Context#handle_events
} 以接收任何事件。这可以通过阻塞调用(可能在它自己的线程中)或通过使用 {LIBUSB::Context#pollfds
} 检测要处理的任何事件来完成。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句