Rubyでのシリアルポート通信に関するサポートが必要
-
03-07-2019 - |
質問
Rubyのシリアルポート経由で通信する必要があります。私の研究から、シリアル通信用の最新のライブラリはあまりないようで、最新の資料は2006年のものです。知らない宝石はありますか?
最終的には、USBに接続されたシリアルデバイスとの通信を維持する必要があります(ポートは問題ないことがわかります)。
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-SerialPort ライブラリは、今年Macで動作するように言及されています。
この古い投稿 Win32 Serial APIとのインターフェースについてのruby talkから。
他のヒント
Ruby-serialportを検索すると、ここにたどりつくことがあるからです:
toholioのgithubリポジトリはアクティブではないようです(2010年9月現在)。 公開された宝石は
からのものですシリアル規格は変更されていませんが、Ruby GemsがRuby C拡張機能とやり取りする方法は長年にわたって十分に変更されたため、RubyForgeシリアルポート拡張機能はうまく機能しません。 RubyForgeには、これを修正するためのパッチが長年にわたっていくつかありましたが、きれいではありませんでした。素晴らしいニュースは、GithubがRubyシリアルポート拡張機能をクリーンアップするためのアクティビティを驚くほど高速化したことです。少なくとも3人の異なる人々がGithubでシリアルポートコードを分岐しています。 Githubで検索できますが、Toholioには、RubyシリアルポートをRuby Gemとして再コーディングおよび再パッケージ化する最新のコードがあると思います。 (はい!)
http://github.com/toholio/ruby-serialport/tree/master
これはLinuxで私にとってはうまく機能し、最新のRuby Gemsリリースとの以前の競合を解決します。 Windowsでは、動作させるのにまだ問題があります。 WindowsでRuby拡張機能をコンパイルすることは決して簡単ではありませんが、それは完全な「ワームの缶詰」です。私は人々が再びRubyシリアルポートのサポートに取り組んでいることを嬉しく思っています。 ToholioにWindowsのバイナリgemを生成するように依頼しました。これにより、すべての人の問題を解決できます。