2008-10-03 73 views
4

我需要通過Ruby中的串口進行一些通信。從我的研究來看,似乎並沒有很多用於串行通信的現代化圖書館,而且我能找到的最新材料是2006年。是否有任何寶石我不知道?在Ruby中需要串口通信幫助

我最終需要保持與連接到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 

回答

2

串口規範沒有永遠改變,我不會擔心庫的年齡。

我假設你看到從2006年this文章關於Ruby和串行端口

Here's有人誰得到提到那裏的Mac上今年的工作Ruby-SerialPort庫。

還有一些來自ruby talk的this old post,關於連接到Win32串行API。

+0

謝謝,我所見到的大多數這些鏈接,我想這就是我會去,我希望新的東西,令人耳目一新,但很好哦。謝謝! – mwilliams 2008-10-04 16:03:54

1

儘管串行標準沒有改變,但Ruby Gems與Ruby C擴展交互的方式多年來已經發生了變化,因此RubyForge串行端口擴展將無法正常運行。多年來在RubyForge上已經有了一些補丁來解決這個問題,但它並不漂亮。好消息是Github允許在活動中加速清理Ruby串口擴展。至少有三個不同的人在Github上交叉分支他們的串口代碼。你可以在Github上搜索,但我相信Toholio有最新的代碼,它將Ruby串行端口重新編碼並重新打包爲Ruby Gem。 (是的!)

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

這對我來說在Linux上的偉大工程,解決了早期使用最新的Ruby寶石版本衝突。在Windows上,我仍然有一個問題讓它工作。在Windows上編譯Ruby擴展從來都不是那麼容易,但這是一個「一大堆」蠕蟲。我很高興人們正在研究Ruby串行端口支持。我已經要求Toholio生成一個Windows二進制寶石,它可以解決所有人的問題,並且他表示這是他的名單上的事情。