summaryrefslogtreecommitdiff
path: root/gpio.rb
diff options
context:
space:
mode:
Diffstat (limited to 'gpio.rb')
-rw-r--r--gpio.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/gpio.rb b/gpio.rb
new file mode 100644
index 0000000..e7ad10e
--- /dev/null
+++ b/gpio.rb
@@ -0,0 +1,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