2
私はLCDを備えたRS232キーパッドと通信しています。キーを押すたびに、LCDに押されたキーを書き込んでユーザーにフィードバックします。キーが10秒以内に押さないとブロック内のtimeout.rbタイマーを増やす
私は入力待ち放棄したいと思います。
ユーザーが10秒以内に複数文字の値を入力しなかった場合、タイムアウトするコードを書いていますが、キーを押すたびに入力を完了するまでに10秒を要します。
はtimeout.rb
を使用して、このことは可能ですか?
require 'rubygems'
require 'serialport'
require 'timeout'
sp = SerialPort.new('/dev/tty.usbserial', 9600, 8, 1, SerialPort::NONE)
sp.write("Input:")
begin
timeout(10) do
input = ""
sp.each_byte do |byte|
#call to increase timeout.rb timer would go here
input << byte.chr
sp.write("Input:" + input)
end
end
rescue Timeout::Error
puts "Timed out!"
exit
end
puts input