module GPIO
Public Class Methods
access(hash, &block)
click to toggle source
main entry for the DSL
# File lib/ruby-gpio.rb, line 74 def access(hash, &block) @pins = {} # a hash of available pins # set up pins hash.each do |k, v| @pins[k] = Pin.new(k.to_s, v) export v end begin instance_eval &block ensure # make sure all pins are unexported before we end the program hash.each do |k, v| unexport v end end end
export(gpio_num)
click to toggle source
# File lib/ruby-gpio.rb, line 98 def export(gpio_num) write "export", gpio_num end
method_missing(name, *args, &block)
click to toggle source
method missing used to return the pin named earlier in the hash parameter to access
# File lib/ruby-gpio.rb, line 92 def method_missing(name, *args, &block) if @pins.keys.include?(name) return @pins[name] end end
read(gpio_num)
click to toggle source
# File lib/ruby-gpio.rb, line 106 def read(gpio_num) File.read("/sys/class/gpio/gpio#{gpio_num}/value").to_i end
unexport(gpio_num)
click to toggle source
# File lib/ruby-gpio.rb, line 102 def unexport(gpio_num) write "unexport", gpio_num end
write(command, value)
click to toggle source
# File lib/ruby-gpio.rb, line 110 def write(command, value) File.open("/sys/class/gpio/#{command}", "w") do |f| f.write value end end