Ruby EventMachine 串行连接到 arduino?

Ruby EventMachine serial connection to arduino?

我有一个 Ruby 应用程序,它通过 USB(一种 Arduino,非 firmata 类型)连接到串行设备。

我正在探索将 EventMachine 用于非阻塞双向的可能性 I/O 但找不到任何示例。 EvenMachine 支持串行连接吗?我们目前正在使用我们自己的非阻塞 IO 框架,我不想重新发明轮子。

目前,所有控制都是通过串行端口 gem 通过串行对象完成的。我相信它是 Ruby.

中 IO Class 的子类
require 'eventmachine'

class Sender < EventMachine::Connection
  def receive_data(data)
    puts "Just got: #{data}"
  end

  def unbind
    puts "Disconnected! Did you unplug the device?"
    EM.stop
  end
end

EM.run do
  serial = SerialPort.new '/dev/ttyACM0'
  # We can do polling here to give the thread a chance to send outbound msgs.
  EventMachine::PeriodicTimer.new(2) { serial.puts "Hello!"  }
  EM.attach serial, Sender
end