我担心还没有USB隐藏库。有谁知道可以与红宝石一起使用的好替代品(例如 jruby)?
如果你准备坚持使用JRuby,你可以尝试包装javahidapi。它使用 JNI 执行对 HIDAPI 库的调用。
libusb 库的 ruby 包装器不符合要求吗?
另外,这篇博文:工作 ruby HID 侦听器示例有一些用于与 USB 接口的代码示例
这是一个老问题,但是我已经编写了一个用于在Linux上的Ruby中读取HID控制器的gem(它直接与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