module Beaglebone::GPIO

General Purpose I/O

Constants

DIRECTION
PINS
VALUE

Public Class Methods

disable_pin(pin) click to toggle source

Disables a GPIO pin

@param pin [Object] Specifies a value from GPIO::PINS

@example

Beaglebone::GPIO.disable_pin(:P9_12)

@return [Boolean] Returns true for success, false otherwise

# File lib/beaglebone/GPIO/GPIO.rb, line 56
def self.disable_pin(pin)
  pin = PINS[pin]
  unexport = File.open('/sys/class/gpio/unexport', 'w')
  return false if pin.nil? or unexport.nil?
  unexport.puts(pin)
  #unexport.close
  return true
end
enable_pin(pin) click to toggle source

Enables a pin for GPIO

@param pin [Object] Specifies a value from GPIO::PINS to enable

@example

Beaglebone::GPIO.enable_pin(:P9_12)

@return [Boolean] Returns true for success, false otherwise

# File lib/beaglebone/GPIO/GPIO.rb, line 38
def self.enable_pin(pin)
  pin = PINS[pin]
  export = File.open('/sys/class/gpio/export', 'w')
  return false if pin.nil? or export.nil?
  export.puts(pin)
  #export.close
  return true
end
list(list_all = false) click to toggle source

Returns an array of active GPIO pins

@param list_all [Bool] optional List all active pins including export and unexport utilites

@example Return all active GPIO pins

Beaglebone::GPIO.list #=> ["gpiochip32", "gpiochip64", "gpiochip96", "gpiochip0"]

@return [Array] String array of active gpio pins

# File lib/beaglebone/GPIO/GPIO.rb, line 16
def self.list(list_all = false)
  gpio_array = Dir.entries('/sys/class/gpio')
  gpio_array.delete('.')
  gpio_array.delete('..')

  unless list_all == true
    gpio_array.delete('export')
    gpio_array.delete('unexport')
  end

  gpio_array
end
set_direction(pin, direction) click to toggle source

Set pin direction

@param pin [Object] Specifies a value from GPIO::PINS @param direction [Object] Specifies a value from GPIO::DIRECTION

@example

Beaglebone::GPIO.set_direction(:P9_12, :OUT)

@return [Boolean] Returns true for success, false otherwise

# File lib/beaglebone/GPIO/GPIO.rb, line 75
def self.set_direction(pin, direction)
  dir_file = File.open("/sys/class/gpio/gpio#{PINS[pin]}/direction", 'w')
  return false if dir_file.nil?
  dir_file.puts(DIRECTION[direction])
  dir_file.close
  return true
end
set_value(pin, value) click to toggle source

Set pin value

@param pin [Object] Specifies a value from GPIO::PINS @param value [Object] Specifies a value from GPIO::VALUE

@example

Beaglebone::GPIO.set_value(:P9_12, :HIGH)

@return [Boolean] Returns true for success, false otherwise

# File lib/beaglebone/GPIO/GPIO.rb, line 93
def self.set_value(pin, value)
  mode = File.open("/sys/class/gpio/gpio#{PINS[pin]}/value", 'w')
  return false if mode.nil?
  mode.puts(VALUE[value])
  mode.close
  return true
end