需要Ruby中串口通信的帮助
-
03-07-2019 - |
题
我需要通过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
解决方案
串口规范没有永远改变,我不担心库的年龄。
我假设你看到这个2006年关于ruby和串口的文章
这里是有人今年提到的 Ruby-SerialPort 库可用于macs。
还有这个老帖子来自ruby talk,关于与Win32 Serial API的接口。
其他提示
只是因为搜索ruby-serialport会引导你到处:
toholio的github回购似乎不再活跃(截至2010年9月)。 发布的宝石来自
虽然串行标准没有改变,但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二进制宝石,它可以解决每个人的问题,他说这是他的清单。