class Taopaipai::GPIO

Constants

BASE_PATH

Public Class Methods

new() click to toggle source
# File lib/taopaipai/gpio.rb, line 6
def initialize
  @io = IO.new(BASE_PATH)
  @registry = {}
end

Public Instance Methods

pin(number, options={}) click to toggle source
# File lib/taopaipai/gpio.rb, line 11
def pin(number, options={})
  pin = @registry[pin_key(number)]
  if pin
    [:direction, :value].each do |option|
      pin.send option, options[option] if options.has_key?(option)
    end
    pin
  else
    @registry[pin_key(number)] = Pin.new(@io, options.merge(number: number)).apply!
  end
end
release() click to toggle source
# File lib/taopaipai/gpio.rb, line 23
def release
  @registry.values.each do |pin|
    pin.unexport
  end
  @registry = {}
  self
end

Private Instance Methods

pin_key(number) click to toggle source
# File lib/taopaipai/gpio.rb, line 32
def pin_key(number)
  "gpio#{number}"
end