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言語よりも簡単に作れますね。
ただし懸念点として、このサンプルアプリ終了時に、シリアルポートの設定をプログラム実行前に戻す方法が調べきれませんでした。