2
我正在與一個帶有LCD的RS232鍵盤進行通信。在每次按鍵時,我都會將按下的按鍵寫入LCD以向用戶提供反饋。在塊內增加timeout.rb定時器
如果在10秒內沒有按鍵,我想放棄等待輸入。
我已經寫了一些代碼,如果用戶沒有在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