我需要通过Ruby中的串口进行一些通信。从我的研究来看,似乎没有很多现代的串行通信库,我能找到的最新资料来自2006年。有没有我不知道的宝石?

我最终需要保持与连接到USB的串行设备的通信(我可以弄清楚端口没有问题)来回通信(有点像Ruby的伪代码)。

def serial_write_read
  if serial.read == "READY"
    serial.write "1"
    until serial.read == "OK"
      serial.write "5"
    end
    return when serial.read == "DONE"
  end
end
有帮助吗?

解决方案

串口规范没有永远改变,我不担心库的年龄。

我假设你看到这个

这里是有人今年提到的 Ruby-SerialPort 库可用于macs。

还有这个老帖子来自ruby talk,关于与Win32 Serial API的接口。

其他提示

只是因为搜索ruby-serialport会引导你到处:

toholio的github回购似乎不再活跃(截至2010年9月)。 发布的宝石来自

http://github.com/hparra/ruby-serialport

虽然串行标准没有改变,但Ruby Gems与Ruby C扩展交互的方式多年来发生了很大变化,因此RubyForge串口扩展不会很好。多年来在RubyForge上已经有一些修补程序来修复它,但它并不漂亮。好消息是,Github已经允许在活动中获得令人难以置信的加速来清理Ruby串口扩展。至少有三个不同的人在Github上交叉分支他们的串口代码。你可以在Github上搜索,但我相信Toholio有最新的代码,它将Ruby串口重新编码并重新打包为Ruby Gem。 (YEA!)

http://github.com/toholio/ruby-serialport/tree/master

它在Linux上非常适合我,解决了与最新Ruby Gems版本的早期冲突。在Windows上,我仍然遇到问题让它运行起来。在Windows上编译Ruby扩展从来都不是很容易,但这是一个完整的“蠕虫病毒”。我很高兴人们再次致力于Ruby串口支持。我已经要求Toholio生成一个Windows二进制宝石,它可以解决每个人的问题,他说这是他的清单。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top