1

I fear that there is no usb hid library, yet. Do anyone know good alternatives, which can be used together with ruby (e.g. jruby)?

4

3 回答 3

0

libusb 库的 ruby​​ 包装器不符合要求吗?

此外,这篇博文:Working ruby​​ HID listener example有一些与 USB 接口的代码示例

于 2012-10-08T19:18:51.593 回答
0

如果您准备坚持使用 JRuby,您可以尝试包装javahidapi。它使用 JNI 执行对HIDAPI库的调用。

于 2012-10-10T12:02:40.587 回答
0

我知道这是一个老问题,但我写了一个 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
于 2016-03-24T18:27:41.683 回答