beaglebone-rails 0.0.5 → 0.1.0
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 +4 -4
- data/.travis.yml +4 -1
- data/99-beaglebone-rails.rules +1 -0
- data/Gemfile +0 -2
- data/LICENSE.txt +1 -1
- data/README.md +7 -3
- data/beaglebone-rails.gemspec +4 -0
- data/install.sh +6 -0
- data/lib/beaglebone-rails.rb +2 -0
- data/lib/beaglebone/GPIO/GPIO.rb +73 -1
- data/lib/beaglebone/GPIO/pins.rb +2 -0
- data/lib/beaglebone/version.rb +1 -1
- metadata +33 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 72b4c75160c895afafbf13b720ff5e01257d25d5
|
|
4
|
+
data.tar.gz: ad4ab95c6b5e9ef53124bae49136deff8c54e351
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a53ae00c501aeef5a6d87c8a4adc8a3038fd04c30e20ea126ec5ed68e0479aeae91cf14ef74cbfb6053db956a7740ff4aadd21ecd36c6304b259249e72d8d821
|
|
7
|
+
data.tar.gz: ffa18ce5c22cee86c6eaf9d14e310f6dce12ecfa09a6dd9929e0fdd2da6c8dca126ce782afc2e6e62e199113c3e58622165a29e4306884b24eee8a7f94690094
|
data/.travis.yml
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
SUBSYSTEM=="subsystem", KERNEL=="gpio", ACTION=="add", PROGRAM="/bin/sh -c 'chmod -R 0777 /sys%p'"
|
data/Gemfile
CHANGED
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
[](https://badge.fury.io/rb/beaglebone-rails)
|
|
2
|
+
[](https://travis-ci.org/DivXZero/beaglebone-rails)
|
|
3
|
+
[](https://coveralls.io/github/DivXZero/beaglebone-rails?branch=master)
|
|
4
4
|
[](http://inch-ci.org/github/DivXZero/beaglebone-rails)
|
|
5
5
|
[//]: [](https://gemnasium.com/DivXZero/beaglebone-rails)
|
|
6
6
|
|
|
@@ -24,6 +24,10 @@ Or install it yourself as:
|
|
|
24
24
|
|
|
25
25
|
$ gem install beaglebone-rails
|
|
26
26
|
|
|
27
|
+
Run the install script to create the rules that allow the gem to access the subsystem (Warning: This is currently insecure):
|
|
28
|
+
|
|
29
|
+
$ sudo ./install.sh
|
|
30
|
+
|
|
27
31
|
## Usage
|
|
28
32
|
|
|
29
33
|
TODO: Write usage instructions here
|
data/beaglebone-rails.gemspec
CHANGED
|
@@ -18,5 +18,9 @@ Gem::Specification.new do |spec|
|
|
|
18
18
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
19
19
|
spec.require_paths = ["lib"]
|
|
20
20
|
|
|
21
|
+
spec.required_ruby_version = '>= 1.9'
|
|
22
|
+
|
|
21
23
|
spec.add_development_dependency "bundler", "~> 1.10"
|
|
24
|
+
spec.add_development_dependency "rspec", "~> 3.4"
|
|
25
|
+
spec.add_development_dependency "coveralls", "~> 0.8.10"
|
|
22
26
|
end
|
data/install.sh
ADDED
data/lib/beaglebone-rails.rb
CHANGED
data/lib/beaglebone/GPIO/GPIO.rb
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
|
|
2
2
|
module Beaglebone
|
|
3
|
+
# General Purpose I/O
|
|
4
|
+
#
|
|
3
5
|
module GPIO
|
|
4
6
|
|
|
5
7
|
# Returns an array of active GPIO pins
|
|
6
8
|
#
|
|
7
|
-
# @param [Bool] optional List all active pins including export and unexport utilites
|
|
9
|
+
# @param list_all [Bool] optional List all active pins including export and unexport utilites
|
|
8
10
|
#
|
|
9
11
|
# @example Return all active GPIO pins
|
|
10
12
|
# Beaglebone::GPIO.list #=> ["gpiochip32", "gpiochip64", "gpiochip96", "gpiochip0"]
|
|
11
13
|
#
|
|
14
|
+
# @return [Array] String array of active gpio pins
|
|
15
|
+
#
|
|
12
16
|
def self.list(list_all = false)
|
|
13
17
|
gpio_array = Dir.entries('/sys/class/gpio')
|
|
14
18
|
gpio_array.delete('.')
|
|
@@ -22,5 +26,73 @@ module Beaglebone
|
|
|
22
26
|
gpio_array
|
|
23
27
|
end
|
|
24
28
|
|
|
29
|
+
# Enables a pin for GPIO
|
|
30
|
+
#
|
|
31
|
+
# @param pin [Object] Specifies a value from GPIO::PINS to enable
|
|
32
|
+
#
|
|
33
|
+
# @example
|
|
34
|
+
# Beaglebone::GPIO.enable_pin(:P9_12)
|
|
35
|
+
#
|
|
36
|
+
# @return [Boolean] Returns true for success, false otherwise
|
|
37
|
+
#
|
|
38
|
+
def self.enable_pin(pin)
|
|
39
|
+
pin = PINS[pin]
|
|
40
|
+
export = File.open('/sys/class/gpio/export', 'w')
|
|
41
|
+
return false if pin.nil? or export.nil?
|
|
42
|
+
export.puts(pin)
|
|
43
|
+
return true
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Disables a GPIO pin
|
|
47
|
+
#
|
|
48
|
+
# @param pin [Object] Specifies a value from GPIO::PINS
|
|
49
|
+
#
|
|
50
|
+
# @example
|
|
51
|
+
# Beaglebone::GPIO.disable_pin(:P9_12)
|
|
52
|
+
#
|
|
53
|
+
# @return [Boolean] Returns true for success, false otherwise
|
|
54
|
+
#
|
|
55
|
+
def self.disable_pin(pin)
|
|
56
|
+
pin = PINS[pin]
|
|
57
|
+
unexport = File.open('/sys/class/gpio/unexport', 'w')
|
|
58
|
+
return false if pin.nil? or unexport.nil?
|
|
59
|
+
unexport.puts(pin)
|
|
60
|
+
return true
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Set pin direction
|
|
64
|
+
#
|
|
65
|
+
# @param pin [Object] Specifies a value from GPIO::PINS
|
|
66
|
+
# @param direction [Object] Specifies a value from GPIO::DIRECTION
|
|
67
|
+
#
|
|
68
|
+
# @example
|
|
69
|
+
# Beaglebone::GPIO.set_direction(:P9_12, :OUT)
|
|
70
|
+
#
|
|
71
|
+
# @return [Boolean] Returns true for success, false otherwise
|
|
72
|
+
#
|
|
73
|
+
def self.set_direction(pin, direction)
|
|
74
|
+
dir_file = File.open("/sys/class/gpio/gpio#{PINS[pin]}/direction", 'w')
|
|
75
|
+
return false if dir_file.nil?
|
|
76
|
+
dir_file.puts(DIRECTION[direction])
|
|
77
|
+
return true
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# Set pin value
|
|
81
|
+
#
|
|
82
|
+
# @param pin [Object] Specifies a value from GPIO::PINS
|
|
83
|
+
# @param value [Object] Specifies a value from GPIO::VALUE
|
|
84
|
+
#
|
|
85
|
+
# @example
|
|
86
|
+
# Beaglebone::GPIO.set_value(:P9_12, :HIGH)
|
|
87
|
+
#
|
|
88
|
+
# @return [Boolean] Returns true for success, false otherwise
|
|
89
|
+
#
|
|
90
|
+
def self.set_value(pin, value)
|
|
91
|
+
mode = File.open("/sys/class/gpio/gpio#{PINS[pin]/value}", 'w')
|
|
92
|
+
return false if mode.nil?
|
|
93
|
+
mode.puts(VALUE[value])
|
|
94
|
+
return true
|
|
95
|
+
end
|
|
96
|
+
|
|
25
97
|
end
|
|
26
98
|
end
|
data/lib/beaglebone/GPIO/pins.rb
CHANGED
data/lib/beaglebone/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: beaglebone-rails
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0
|
|
4
|
+
version: 0.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nicholaus Brabant
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-01-
|
|
11
|
+
date: 2016-01-31 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -24,6 +24,34 @@ dependencies:
|
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '1.10'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: rspec
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '3.4'
|
|
34
|
+
type: :development
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '3.4'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: coveralls
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: 0.8.10
|
|
48
|
+
type: :development
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: 0.8.10
|
|
27
55
|
description:
|
|
28
56
|
email:
|
|
29
57
|
- nicholaus.brabant@gmail.com
|
|
@@ -34,6 +62,7 @@ files:
|
|
|
34
62
|
- ".gitignore"
|
|
35
63
|
- ".rspec"
|
|
36
64
|
- ".travis.yml"
|
|
65
|
+
- 99-beaglebone-rails.rules
|
|
37
66
|
- CODE_OF_CONDUCT.md
|
|
38
67
|
- Gemfile
|
|
39
68
|
- LICENSE.txt
|
|
@@ -42,6 +71,7 @@ files:
|
|
|
42
71
|
- beaglebone-rails.gemspec
|
|
43
72
|
- bin/console
|
|
44
73
|
- bin/setup
|
|
74
|
+
- install.sh
|
|
45
75
|
- lib/beaglebone-rails.rb
|
|
46
76
|
- lib/beaglebone/GPIO/GPIO.rb
|
|
47
77
|
- lib/beaglebone/GPIO/pins.rb
|
|
@@ -58,7 +88,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
58
88
|
requirements:
|
|
59
89
|
- - ">="
|
|
60
90
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
91
|
+
version: '1.9'
|
|
62
92
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
63
93
|
requirements:
|
|
64
94
|
- - ">="
|