2017-04-21 1 views
-1

私はruby-dbusが正しい解決策であると思っていますが、ストレージデバイスがLinuxマシンに接続されているときは、リアルタイムでどのように検出するのかの例は見当たりません。誰もそのような例がありますか?LinuxでRubyを使ってリアルタイムUSBストレージの検出を行うには?

+0

[ask]をお読みください。あなたはオフトピックのオフサイトリソースをお勧めします。 –

+0

私はLinux上でRubyを使ってリアルタイムUSBストレージの検出方法を尋ねています。少しのサンプルコードが素晴らしいでしょう。 –

答えて

0

あなたが取ることができるアプローチは数多くあるようです。
Here's a Ruby implementation I foundは、libusbにRuby FFIをリンクしています。

何これについては良いことだがのlibusbは、ホットプラグ通知をサポートしていることですので、これは何が必要ないものになることができます:libusb Ruby docsから
http://libusb.sourceforge.net/api-1.0/hotplug.html

デバイスのホットプラグをサポート

LIBUSB.has_capability?(:CAP_HAS_HOTPLUG)がtrueを返す場合は、デバイスのホットプラグのサポートを使用できます。 LinuxまたはMacOSではlibusb-1.0.16以降が必要です。 Windowsのサポートはまだ進行中です。

hotplugイベントハンドラは{LIBUSB::Context#on_hotplug_event}で登録できます。イベントを受け取るには、{LIBUSB::Context#handle_events}に電話する必要があります。これは、(おそらくそれ自身のスレッドで)呼び出しをブロックするか、{LIBUSB::Context#pollfds}を使用して処理するイベントを検出することで行うことができます。

+0

ありがとう、私はlibusbがホットプラグサポートを持っていることに気付かなかった、それは完璧だ! –

関連する問題