beaglebone-rails 0.0.5 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
[![Gem](https://
|
2
|
-
[![
|
3
|
-
[![
|
1
|
+
[![Gem Version](https://badge.fury.io/rb/beaglebone-rails.svg)](https://badge.fury.io/rb/beaglebone-rails)
|
2
|
+
[![Build Status](https://travis-ci.org/DivXZero/beaglebone-rails.svg?branch=master)](https://travis-ci.org/DivXZero/beaglebone-rails)
|
3
|
+
[![Coverage Status](https://coveralls.io/repos/github/DivXZero/beaglebone-rails/badge.svg?branch=master)](https://coveralls.io/github/DivXZero/beaglebone-rails?branch=master)
|
4
4
|
[![Inline docs](http://inch-ci.org/github/DivXZero/beaglebone-rails.svg?branch=master&style=shields)](http://inch-ci.org/github/DivXZero/beaglebone-rails)
|
5
5
|
[//]: [![Gemnasium](https://img.shields.io/gemnasium/DivXZero/beaglebone-rails.svg)](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
|
- - ">="
|