Ruby-Serialport:监听输入

Kyl*_*iss 1 ruby serial-port

我计划很快开始围绕串行设备的输入进行编码,并且很高兴找到Ruby-serialport。该 API 看起来很容易使用,但我对如何采用基于事件的方法来接收数据有点困惑。

我想在\n出现 a 时对数据执行一些操作,但库中当前的 read() 似乎只是转储屏幕上的任何内容。我真正寻找的是一种在新数据进入时触发函数的方法。

Dig*_*oss 5

Ruby 和操作系统已经为您处理串行 I/O 的事件驱动部分。

您的 gem 实现的类SerialPort是 的子类IO,因此它已经可以处理读取到换行符的操作...如下所示:

sp = SerialPort.new "/dev/my-modem", 9600
...
while s = sp.gets
  ..
end
Run Code Online (Sandbox Code Playgroud)