rbone 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/rbone/app.rb +77 -1
- data/lib/rbone/version.rb +1 -1
- data/spec/rbone/app_spec.rb +6 -0
- metadata +26 -11
data/lib/rbone/app.rb
CHANGED
@@ -14,6 +14,76 @@ module Rbone
|
|
14
14
|
P9_12, P9_15, P9_23, P9_25, P9_27, P9_42,
|
15
15
|
].freeze
|
16
16
|
|
17
|
+
PIN_MUX_REF = {
|
18
|
+
P8_3 => "gpmc_ad6",
|
19
|
+
P8_4 => "gpmc_ad7",
|
20
|
+
P8_5 => "gpmc_ad2",
|
21
|
+
P8_6 => "gpmc_ad3",
|
22
|
+
#P8_7 => "gpmc_advn_ale",
|
23
|
+
#P8_8 => "gpmc_oen_ren",
|
24
|
+
#P8_9 => "gpmc_ben0_cle",
|
25
|
+
#P8_10 => "gpmc_wen",
|
26
|
+
P8_11 => "gpmc_ad13",
|
27
|
+
P8_12 => "gpmc_ad12",
|
28
|
+
#P8_13 => "gpmc_ad9",
|
29
|
+
P8_14 => "gpmc_ad10",
|
30
|
+
P8_15 => "gpmc_ad15",
|
31
|
+
P8_16 => "gpmc_ad14",
|
32
|
+
P8_17 => "gpmc_ad11",
|
33
|
+
P8_18 => "gpmc_clk",
|
34
|
+
#P8_19 => "gpmc_ad8",
|
35
|
+
P8_20 => "gpmc_csn2",
|
36
|
+
P8_21 => "gpmc_csn1",
|
37
|
+
P8_22 => "gpmc_ad5",
|
38
|
+
P8_23 => "gpmc_ad4",
|
39
|
+
P8_24 => "gpmc_ad1",
|
40
|
+
P8_25 => "gpmc_ad0",
|
41
|
+
P8_26 => "gpmc_csn0",
|
42
|
+
P8_27 => "lcd_vsync",
|
43
|
+
P8_28 => "lcd_pclk",
|
44
|
+
P8_29 => "lcd_hsync",
|
45
|
+
P8_30 => "lcd_ac_bias_en",
|
46
|
+
#P8_31 => "lcd_data14",
|
47
|
+
#P8_32 => "lcd_data15",
|
48
|
+
#P8_33 => "lcd_data13",
|
49
|
+
#P8_34 => "lcd_data11",
|
50
|
+
#P8_35 => "lcd_data12",
|
51
|
+
#P8_36 => "lcd_data10",
|
52
|
+
#P8_37 => "lcd_data8",
|
53
|
+
#P8_38 => "lcd_data9",
|
54
|
+
P8_39 => "lcd_data6",
|
55
|
+
P8_40 => "lcd_data7",
|
56
|
+
P8_41 => "lcd_data4",
|
57
|
+
P8_42 => "lcd_data5",
|
58
|
+
P8_43 => "lcd_data2",
|
59
|
+
P8_44 => "lcd_data3",
|
60
|
+
P8_45 => "lcd_data0",
|
61
|
+
P8_46 => "lcd_data1",
|
62
|
+
#P9_11 => "gpmc_wait0",
|
63
|
+
P9_12 => "gpmc_ben1",
|
64
|
+
#P9_13 => "gpmc_wpn",
|
65
|
+
#P9_14 => "gpmc_a2",
|
66
|
+
P9_15 => "gpmc_a0",
|
67
|
+
#P9_16 => "gpmc_a3",
|
68
|
+
#P9_17 => "spi0_cs0",
|
69
|
+
#P9_18 => "spi0_d1",
|
70
|
+
#P9_19 => "uart1_rtsn",
|
71
|
+
#P9_20 => "uart1_ctsn",
|
72
|
+
#P9_21 => "spi0_d0",
|
73
|
+
#P9_22 => "spi0_sclk",
|
74
|
+
P9_23 => "gpmc_a1",
|
75
|
+
#P9_24 => "uart1_txd",
|
76
|
+
P9_25 => "mcasp0_ahclkx",
|
77
|
+
#P9_26 => "uart1_rxd",
|
78
|
+
P9_27 => "mcasp0_fsr",
|
79
|
+
#P9_28 => "mcasp0_ahclkr",
|
80
|
+
#P9_29 => "mcasp0_fsx",
|
81
|
+
#P9_30 => "mcasp0_axr0",
|
82
|
+
#P9_31 => "mcasp0_ahclkx",
|
83
|
+
#P9_41 => "xdma_event_intr0",
|
84
|
+
P9_42 => "ecap0_in_pwm0_out"
|
85
|
+
}.freeze
|
86
|
+
|
17
87
|
USR_LEDS = [
|
18
88
|
USR0, USR1, USR2, USR3
|
19
89
|
].freeze
|
@@ -55,15 +125,21 @@ module Rbone
|
|
55
125
|
f.write(pin.to_s)
|
56
126
|
end
|
57
127
|
|
128
|
+
muxfile = File.open("/sys/kernel/debug/omap_mux/%s" % [PIN_MUX_REF[pin]], 'w')
|
129
|
+
|
58
130
|
filename = '/sys/class/gpio/gpio%d/direction' % [pin]
|
59
131
|
File.open(filename, 'w') do |f|
|
60
132
|
if direction == INPUT
|
61
133
|
f.write("in")
|
134
|
+
muxfile.write("2F")
|
62
135
|
else
|
63
136
|
f.write("out")
|
137
|
+
muxfile.write("7")
|
64
138
|
end
|
65
139
|
end
|
66
140
|
|
141
|
+
muxfile.close
|
142
|
+
|
67
143
|
@exported_pins.push(pin)
|
68
144
|
else
|
69
145
|
raise PinRefError, "#{pin} is not a valid digital pin reference"
|
@@ -96,7 +172,7 @@ module Rbone
|
|
96
172
|
File.open(filename, 'r') do |f|
|
97
173
|
value = f.read.chomp
|
98
174
|
end
|
99
|
-
case value
|
175
|
+
case value
|
100
176
|
when '0' then LOW
|
101
177
|
when '1' then HIGH
|
102
178
|
else nil
|
data/lib/rbone/version.rb
CHANGED
data/spec/rbone/app_spec.rb
CHANGED
@@ -13,6 +13,12 @@ describe Rbone::App do
|
|
13
13
|
FileUtils.mkdir_p(base_dir)
|
14
14
|
FileUtils.touch(%w(brightness max_brightness trigger uevent).map{ |f| "#{base_dir}/#{f}" })
|
15
15
|
end
|
16
|
+
|
17
|
+
# mock pin mux files
|
18
|
+
FileUtils.mkdir_p("/sys/kernel/debug/omap_mux")
|
19
|
+
Rbone::App::PIN_MUX_REF.values.each do |pin_mux_file|
|
20
|
+
FileUtils.touch("/sys/kernel/debug/omap_mux/%s" % [pin_mux_file])
|
21
|
+
end
|
16
22
|
end
|
17
23
|
|
18
24
|
after :each do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: rspec
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: fakefs
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,7 +53,12 @@ dependencies:
|
|
43
53
|
version: '0'
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
47
62
|
description: This gem provides a simple interface for writing Arduino-style programs
|
48
63
|
for the BeagleBone.
|
49
64
|
email:
|
@@ -80,7 +95,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
80
95
|
version: '0'
|
81
96
|
segments:
|
82
97
|
- 0
|
83
|
-
hash:
|
98
|
+
hash: -2053350550598623761
|
84
99
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
100
|
none: false
|
86
101
|
requirements:
|
@@ -89,10 +104,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
89
104
|
version: '0'
|
90
105
|
segments:
|
91
106
|
- 0
|
92
|
-
hash:
|
107
|
+
hash: -2053350550598623761
|
93
108
|
requirements: []
|
94
109
|
rubyforge_project:
|
95
|
-
rubygems_version: 1.8.
|
110
|
+
rubygems_version: 1.8.23
|
96
111
|
signing_key:
|
97
112
|
specification_version: 3
|
98
113
|
summary: Write simple Arduino-style programs for your BeagleBone
|