Class: TrafficLightPiServer
- Inherits:
-
Sinatra::Base
- Object
- Sinatra::Base
- TrafficLightPiServer
- Defined in:
- lib/traffic_light_pi_server.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.init_lights ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/traffic_light_pi_server.rb', line 8 def self.init_lights unless defined? @@mp3player @@mp3player = "mpg123" end unless defined? @@sound_dir @@sound_dir = "#{File.dirname(__FILE__)}/sounds" end @@pi_enabled = nil if RUBY_PLATFORM == 'arm-linux-eabihf' @@io = WiringPi::GPIO.new @@pi_enabled = true end @@lines = Hash.new @@line_map.each_key do |line| @@lines[line] = Hash.new @@line_map[line].each_key do |light| if @@pi_enabled pin = get_pin(line, light) @@io.mode(pin, OUTPUT) @@lines[line][light] = @@io.read(pin) else @@lines[line][light] = 0 end end end end |
Instance Method Details
#get_pin(line, light) ⇒ Object
105 106 107 |
# File 'lib/traffic_light_pi_server.rb', line 105 def get_pin(line, light) @@line_map[line][light] end |
#reset_line(line) ⇒ Object
120 121 122 123 124 125 |
# File 'lib/traffic_light_pi_server.rb', line 120 def reset_line(line) @@line_map[line].each do |light, pin| write_light(line, light, 0) end write_light(line, :green, 1) end |
#write_light(line, light, state) ⇒ Object
109 110 111 112 113 114 115 116 117 118 |
# File 'lib/traffic_light_pi_server.rb', line 109 def write_light(line, light, state) pin = get_pin(line, light) if @@pi_enabled @@io.write(pin, state) state = @@lines[line][light] = @@io.read(pin) else @@lines[line][light] = state end "#{pin}:#{state}" end |