summaryrefslogtreecommitdiff
path: root/gpio.rb
blob: e7ad10e6b5e59f665578f43e68c527c2c53efccd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Gpio
  def initialize(pin, prefix: "/sys/class/gpio")
    @pin = pin
    @prefix = prefix
  end

  attr_reader :pin, :prefix

  def export
    File.write("#{prefix}/export", pin)
    File.write("#{prefix}/gpio#{pin}/direction", "out")
  end

  def value
    File.read("#{prefix}/gpio#{pin}/value").strip == "1" ? true : false
  end

  def value=(value)
    File.write("#{prefix}/gpio#{pin}/value", value ? "1" : "0")
  end

  def toggle
    self.value = !value
  end
end