chip-gpio 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c05d8afb47e67805d726995618357de224aa20dc
4
- data.tar.gz: c7cfb492c7bee9e1fa1319af5d1d9573fa716d42
3
+ metadata.gz: f8af98f1f1873ef8bd513eed9a2546b20b449513
4
+ data.tar.gz: b6e7064d8fed34237b3d6de85eb1660195f1457f
5
5
  SHA512:
6
- metadata.gz: 28016cd4417117c0e84547906627e973c8543affaca6576980d56527d890265fde2e014ff8ea9b17b790b2b13fa01df1479740c915ec56aa00e6d4435402c641
7
- data.tar.gz: d4016aff487ffc22fe071c0bed1c353cb0b282c786783c8fce8d5f1def9cb5981ce6eb00864c5b9208c3ef9da8b7340ceed329846f4139c0440985f0c89c4326
6
+ metadata.gz: 9cb2f46f63722d1b27d51e04216f44bf041140685acafa0170df1dd4a6f2bf95b18632fc75a4aab8121faf97b9161cae51ebe2b4fcc61b649e6ceee133cc23c1
7
+ data.tar.gz: 28db799c54d20387fb94c8542678d53ac3eae0ccfeac56f3f20a2056e3c149e20c3764a7e89c6c23c61b290f905a6a676f7e25dc1127d56cead64477149d495c
data/README.md CHANGED
@@ -1,3 +1,38 @@
1
1
  # chip-gpio
2
2
 
3
- A ruby gem for controlling the GPIO pins on a $9 CHIP computer
3
+ A ruby gem for controlling the GPIO pins on a $9 CHIP computer.
4
+
5
+ Can currently set output values and read input values for CHIP computers running v4.3 or v4.4 images.
6
+
7
+ ## Installation
8
+
9
+ gem install chip-gpio
10
+
11
+ ## Examples
12
+
13
+ ### Initialize
14
+
15
+ require 'chip-gpio'
16
+ pins = ChipGPIO.get_pins
17
+
18
+ ### Export pins
19
+
20
+ pins[:XIO7].available?
21
+ => false
22
+
23
+ pins[:XIO7].export
24
+ pins[:XIO7].available?
25
+ => true
26
+
27
+ ### Set a value
28
+
29
+ pins[:XIO7].direction = :output
30
+ pins[:XIO7].value = 1
31
+ pins[:XIO7].value
32
+ => 1
33
+
34
+ ### Read a value
35
+
36
+ pins[:XIO7].direction = :output
37
+ pins[:XIO7].value
38
+ => 1
data/lib/chip-gpio/Pin.rb CHANGED
@@ -20,6 +20,31 @@ module ChipGPIO
20
20
  File.open("/sys/class/gpio/unexport", "w") { |f| f.write(@gpio_number.to_s) }
21
21
  end
22
22
 
23
+ def direction
24
+ v = File.read("#{@base_path}/direction").strip
25
+ case v
26
+ when "in"
27
+ return :input
28
+ when "out"
29
+ return :output
30
+ else
31
+ throw "Unexpected direction #{v}"
32
+ end
33
+ end
34
+
35
+ def direction=(d)
36
+ case d
37
+ when :input
38
+ v = "in"
39
+ when :output
40
+ v = "out"
41
+ else
42
+ throw "Unexpected direction: #{d}; must be :input or :output"
43
+ end
44
+
45
+ File.open("#{@base_path}/direction", "w") { |f| f.write(v) }
46
+ end
47
+
23
48
  def value
24
49
  throw "Pin is not currently available" if !self.available?
25
50
 
@@ -34,7 +59,7 @@ module ChipGPIO
34
59
 
35
60
  def value=(v)
36
61
  throw "Pin is not currently available" if !self.available?
37
-
62
+
38
63
  v = v.to_s
39
64
  File.open("#{@base_path}/value", "w") { |f| f.write(v) }
40
65
  end
data/lib/chip-gpio.rb CHANGED
@@ -1,4 +1,4 @@
1
- Dir[File.dirname(__FILE__) + '/chip-gpio/*.rb'].each {|file| load file }
1
+ Dir[File.dirname(__FILE__) + '/chip-gpio/*.rb'].each {|file| require file }
2
2
 
3
3
  module ChipGPIO
4
4
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chip-gpio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Williams
@@ -10,7 +10,7 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2016-09-10 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: foo
13
+ description: A ruby gem to control the GPIO pens on the CHIP computer
14
14
  email: james@jameswilliams.me
15
15
  executables: []
16
16
  extensions: []