32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/ladder_drive/console.rb', line 32
def run
trap(:INT) { puts "\n> " }
display_title
loop do
begin
print "> "
line = STDIN.gets
case line.chomp
when /^\s*exit\s*$/, /^\s*quit\s*$/, /^\s*q\s*$/
break
when /^r\s+(\w+)(\s+(\d+))?/
d = protocol.device_by_name EscDevice.new($1)
c = $2 ? $2.to_i : 1
values = protocol.get_from_devices d, c
values = values.map{|v| case v; when true; 1; when false; 0; else; v; end}
puts values.join(" ")
when /^p\s+(\w+)(\s+(\d+))?/
d = protocol.device_by_name EscDevice.new($1)
t = $2 ? $2.to_f : 0.1
protocol.set_to_devices d, true
sleep t
protocol.set_to_devices d, false
when /^w\s+(\w+)/
d = protocol.device_by_name EscDevice.new($1)
v = $'.scan(/\d+/).map{|e| e.to_i}
protocol.set_to_devices d, v
when /^E\s+/
puts protocol.execute(line)
when /^help/, /^h/
display_help
end
rescue => e
puts "*** ERROR: #{e} ***"
end
end
end
|