|
setup diary |
以前はGPIBで制御していた装置を、USBから使おうと思って、USB-RS232Cを使って制御しようとしたら、かなり苦労してしまった。RS232Cにはそれなりに慣れているつもりだったのだが、まだまだ経験が浅いようだ。
まず引っかかったのが、ストレートとクロスの問題だった。これに気づくのに数日かかったのは、反省すべきところである。そして、ボーレートやパリティなどのところはうまく指定しているはずなのに、送信がすぐに文字化けしてしまうという問題に悩まされた。受信はうまくいくのに。
装置のマニュアルをいろいろと読んでいたら、「装置はPCよりも処理速度が遅いので、echoをするモードにして、一文字一文字echoを待ってから、次の文字を送る方が良い」という記述を見つけた。sttyでechoをするようにしてもうまくいかないので、rubyで次のように書いたらうまくいった。
strs.split(//).each{|s| @port.write(s) @port.flush @port.read(1) }
いつも、装置との通信には苦しめられることが多い気がする。こういう経験を通して、だんだんと慣れて行っているはずなのだが、まだまだ精進が足りないようである。