hirax.net::Keywords::「CreateFile」のブログ



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として、ここにメモを書いておきます。



■Powered by yagm.net