require 'serialport' if ARGV.length.zero? $stderr.puts "COMポートの番号を指定して実行してください。" exit end port = ARGV.first puts "COMポート: #{port}" Signal.trap(:INT) { exit } SerialPort.open(port, 19200, 8, 1, SerialPort::NONE) do |serial| serial.read_timeout = -1 # 受信スレッド thread = Thread.new do loop do sleep 0.05 if recv = serial.read print recv end end end loop do serial.write $stdin.gets end end