ブログ

ruby-serialportでシリアルエコーサーバーを作ってみる

at_ito
2015年2月24日 17時09分

Armadillo-IoTの標準のユーザーランドにruby-serialportが入っているので、 rubyでシリアルエコーサーバーを作ってみました。

以下、ソースコードです。

#!/usr/bin/ruby
 
require 'serialport'
 
serialport = ARGV[0]
if ARGV.size != 1
    puts "Usage: " + $0 + " <device>"
    exit false
end
 
sp = nil
 
Signal.trap(:INT) {
    if sp.nil? == false then
        sp.close
    end
    exit true
}
 
begin
    sp = SerialPort.new(serialport, 115200, 8, 1, 0)
rescue
    puts "Could not open serial port."
    exit false
end
 
loop do
    chars = sp.readpartial 1024
    sp.write chars
end
 
sp.close

スクリプト言語ということでライブラリが揃っており、これぐらいのアプリであればC言語よりも簡単に作れますね。

ただし懸念点として、このサンプルアプリ終了時に、シリアルポートの設定をプログラム実行前に戻す方法が調べきれませんでした。