ruby-serialportインストール、シリアルポートを読む

前にデバイスファイルを直接開いて読んだりした(http://d.hatena.ne.jp/shokai/20090716/1247733038)けど、閉じたり開いたり抜き差ししてるとたまにロックがかかってしまったりするのでおとなしくruby-serialportを使う。


最新版0.7はサンプルやドキュメントが追いついていなくて、使い方がよくわからなかったのでひとつ古いバージョンをインストールした。

MacでもUbuntuでもインストールできる。

wget http://rubyforge.org/frs/download.php/72/ruby-serialport-0.6.tar.gz
tar -zxvf ruby-serialport-0.6.tar.gz
cd ruby-serialport-0.6
ruby extconf.rb
make
sudo make install

バイスファイル名を指定してシリアルポートを開いて改行毎に読み込んで表示。
serialterm.rb

# -*- coding: utf-8 -*-
require 'serialport'

if ARGV.size < 1
  puts 'ruby ruby-serialterm.rb /dev/tty/ttyUSB'
  exit 1
end

sp = SerialPort.new(ARGV.shift, 9600, 8, 1, SerialPort::NONE) # 9600bps, 8bit, ストップビット1, パリティ無し

loop do
  line = sp.readline.chomp.strip
  puts line
end
sp.close

読むだけなら

screen -l /dev/tty.usbserial

でもいい。もしくはZTermを使う。