class BBB::Pins::IO::GPIO
Attributes
converted_position[R]
direction[R]
file_mode[R]
position[R]
Public Class Methods
new(direction, position)
click to toggle source
# File lib/BBB/pins/io/gpio.rb, line 9 def initialize(direction, position) self.direction = direction @position = position @converted_position = pin_map.gpio self.export end
Public Instance Methods
direction=(direction)
click to toggle source
# File lib/BBB/pins/io/gpio.rb, line 16 def direction=(direction) @file_mode = direction == :input ? "r" : "w+" @direction = direction end
export()
click to toggle source
# File lib/BBB/pins/io/gpio.rb, line 68 def export file_class.open(export_path, "w") { |f| f.write("#{ converted_position }") } set_mode end
export_path()
click to toggle source
# File lib/BBB/pins/io/gpio.rb, line 56 def export_path gpio_path + "/export" end
file_class()
click to toggle source
# File lib/BBB/pins/io/gpio.rb, line 77 def file_class File end
gpio_path()
click to toggle source
# File lib/BBB/pins/io/gpio.rb, line 52 def gpio_path "/sys/class/gpio" end
gpio_pin_dir()
click to toggle source
# File lib/BBB/pins/io/gpio.rb, line 64 def gpio_pin_dir "#{gpio_path}/gpio#{converted_position}" end
io()
click to toggle source
# File lib/BBB/pins/io/gpio.rb, line 30 def io return @io unless @io.nil? value_file = gpio_pin_dir + "/value" @io = file_class.open(value_file, file_mode) @io.sync = true return @io end
read()
click to toggle source
# File lib/BBB/pins/io/gpio.rb, line 43 def read io.rewind value_map.fetch(io.read.to_i) end
set_mode()
click to toggle source
# File lib/BBB/pins/io/gpio.rb, line 21 def set_mode direction_file = gpio_pin_dir + "/direction" d = "in" if direction == :input d = "out" if direction == :output file_class.open(direction_file, "w") {|f| f.write(d)} end
unexport()
click to toggle source
# File lib/BBB/pins/io/gpio.rb, line 73 def unexport file_class.open(unexport_path, "w") { |f| f.write("#{converted_position}") } end
unexport_path()
click to toggle source
# File lib/BBB/pins/io/gpio.rb, line 60 def unexport_path gpio_path + "/unexport" end
value_map()
click to toggle source
# File lib/BBB/pins/io/gpio.rb, line 48 def value_map @value_map ||= {:high=>1, :low=>0, 1=>:high, 0=>:low} end
write(value)
click to toggle source
# File lib/BBB/pins/io/gpio.rb, line 39 def write(value) io.write(value_map[value]) end