hirax.net::inside out::2009年07月29日

最新記事(inside out)へ  |   年と月を指定して記事を読む(クリック!)

2009年6月 を読む << 2009年7月 を読む >> 2009年8月 を読む

2009-07-29[n年前へ]

wincom.rbのCOM10以上対応 

 以前、スレッドを使い、Rubyでシリアル通信をするクラスComThreadを書きました。このクラスは、wincom.rbを利用しています。

 少し前、wincom.rbが、COM10以上の番号のシリアル・ポートを開けないことに気づきました。ソースを眺め調べてみると、WindowsAPIのCreateFile()を使った場合の、COM10 以上のシリアルポートを指定方法に沿っていないことが原因でした。対処としては、wincom.rbの71行目を

comno = "\\\\.\\COM#{icomno}\0"
というように変えれば、COM10以上のポートにも(もちろんCOM10以下のポートにも)対応するようになります。

 最近の(各種I/Fがたくさん備えている)PCに、USB接続のシリアルポートI/Fを繋いだ場合、自動的にCOM10以上になる場合も多いと思います。そんな状況下で、wincom.rbを使うためのTipsとして、ここにメモを書いておきます。