class RPiPinOut

Public Class Methods

new(id) click to toggle source
Calls superclass method
# File lib/rpi_pinout.rb, line 10
def initialize(id)
  
  super(id)
  @id = id    
  unexport()
  
  File.write '/sys/class/gpio/export', id
  File.write "/sys/class/gpio/gpio#{id}/direction", 'out'

  at_exit {   unexport() }
  
end

Protected Instance Methods

set_pin(val) click to toggle source
Calls superclass method
# File lib/rpi_pinout.rb, line 26
def set_pin(val)

  super(val)
  File.write "/sys/class/gpio/gpio#{@id}/value", (val ? 1 : 0)
  
end

Private Instance Methods

unexport() click to toggle source

to avoid “Device or resource busy @ fptr_finalize - /sys/class/gpio/export” we unexport the pins we used

# File lib/rpi_pinout.rb, line 39
def unexport()
  
  return unless File.exists? '/sys/class/gpio/gpio' + @id.to_s

  File.write "/sys/class/gpio/unexport", @id
end