需要Ruby中串口通信的帮助

时间:2008-10-03 16:58:25

标签: ruby serial-port communication

我需要通过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

3 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

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

我假设您在2006年看到了关于ruby和串口的this文章

Here's今年有人提到Ruby-SerialPort图书馆的人在mac上工作。

还有来自ruby talk的this old post,关于与Win32 Serial API的接口。

答案 2 :(得分:1)

虽然串行标准没有改变,但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二进制宝石,它可以解决每个人的问题,他说这是他的清单。