【发布时间】:2012-10-08 17:58:50
【问题描述】:
我担心还没有 USB 隐藏库。有谁知道可以与 ruby 一起使用的好替代品(例如 jruby)?
【问题讨论】:
我担心还没有 USB 隐藏库。有谁知道可以与 ruby 一起使用的好替代品(例如 jruby)?
【问题讨论】:
如果您准备坚持使用 JRuby,可以尝试包装 javahidapi。它使用 JNI 执行对 HIDAPI 库的调用。
【讨论】:
ruby wrappers for libusb library 不符合要求吗?
另外,这篇博文:Working ruby HID listener example 有一些与 USB 接口的代码示例
【讨论】:
我知道这是一个老问题,但我已经编写了一个 gem 用于在 Linux 上的 Ruby 中读取 HID 控制器(它直接与 Linux 内核驱动程序一起工作)。
https://rubygems.org/gems/ruby_hid
它现在也是相当实验性的,但它确实有效。
使用它,您可以在按钮或控制轴上设置观察者,它们在单独的线程上运行,由start_listening 触发。这可以在共享对象中设置一个值,您可以在代码中使用该值。
这是其中一个示例,它只报告按钮按下:
require 'rubygems'
require 'ruby_hid'
device = RubyHid::Device.new(
RubyHid::Device.list[0]
)
buttons = RubyHid::Button::EVENTS
buttons.each do |code, name|
button = RubyHid::Button.find_by_name(name)
button.add_event(
eval "lambda { |val| puts \"#{name} pushed: \#{val}\" }"
)
end
device.start_watching
loop do
sleep 1
end
【讨论】: