object_oriented_beaglebone_black 0.0.1

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.
Files changed (41) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +23 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/Gemfile +8 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +113 -0
  8. data/Rakefile +7 -0
  9. data/config/environments/development.yml +3 -0
  10. data/config/environments/production.yml +3 -0
  11. data/config/environments/test.yml +3 -0
  12. data/config/i2c.json +26 -0
  13. data/config/pin_index.json +1519 -0
  14. data/config/uarts.json +31 -0
  15. data/examples/current_measurement.rb +7 -0
  16. data/examples/current_measurement/current_input.rb +16 -0
  17. data/examples/voltage_measurement.rb +7 -0
  18. data/examples/voltage_measurement/voltage_input.rb +16 -0
  19. data/lib/object_oriented_beaglebone_black.rb +26 -0
  20. data/lib/object_oriented_beaglebone_black/analog_input.rb +43 -0
  21. data/lib/object_oriented_beaglebone_black/gpio.rb +40 -0
  22. data/lib/object_oriented_beaglebone_black/io.rb +34 -0
  23. data/lib/object_oriented_beaglebone_black/io/direction.rb +10 -0
  24. data/lib/object_oriented_beaglebone_black/io/value.rb +10 -0
  25. data/lib/object_oriented_beaglebone_black/led.rb +43 -0
  26. data/lib/object_oriented_beaglebone_black/pin_mappings.rb +25 -0
  27. data/lib/object_oriented_beaglebone_black/pwm.rb +58 -0
  28. data/lib/object_oriented_beaglebone_black/version.rb +3 -0
  29. data/object_orieted_beaglebone_black.gemspec +27 -0
  30. data/spec/examples/current_measurement/current_input_spec.rb +46 -0
  31. data/spec/examples/voltage_measurement/voltage_input_spec.rb +46 -0
  32. data/spec/object_oriented_beaglebone_black/analog_input_spec.rb +49 -0
  33. data/spec/object_oriented_beaglebone_black/gpio_spec.rb +66 -0
  34. data/spec/object_oriented_beaglebone_black/led_spec.rb +29 -0
  35. data/spec/object_oriented_beaglebone_black/pin_mappings_spec.rb +35 -0
  36. data/spec/object_oriented_beaglebone_black/pwm_spec.rb +57 -0
  37. data/spec/spec_helper.rb +13 -0
  38. data/spec/support/analog_input_file_behavoir_helper.rb +34 -0
  39. data/spec/support/gpio_file_behavior_helper.rb +36 -0
  40. data/spec/support/pwm_file_behavior_helper.rb +23 -0
  41. metadata +138 -0
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+ require 'voltage_measurement'
3
+ require 'bigdecimal'
4
+
5
+ describe "Voltage measurement with voltage divider of 11:1, e.g. 51[kΩ] and 5.1[kΩ]", analog_input: true do
6
+
7
+ before(:each) do
8
+
9
+ @slots_directory = OBJECT_ORIENTED_BEAGLEBONE_BLACK_CONFIG["slots_directory"]
10
+ @device_directory = OBJECT_ORIENTED_BEAGLEBONE_BLACK_CONFIG["device_directory"]
11
+
12
+ # In order to run this spec example in the real environment, the directories and files that already exist there are not created in that case.
13
+ if ENV["OBJECT_ORIENTED_BEAGLEBONE_BLACK_ENV"] == 'test'
14
+ FileUtils.mkdir_p(@slots_directory, mode: 0700) unless Dir.exists?(@slots_directory)
15
+ FileUtils.touch(File.join(@slots_directory, "slots"))
16
+ File.chmod(0700, File.join(@slots_directory, "slots"))
17
+
18
+ FileUtils.mkdir_p(@device_directory, mode: 0700) unless Dir.exists?(@device_directory)
19
+ end
20
+ end
21
+
22
+ after(:each) do
23
+ if ENV["OBJECT_ORIENTED_BEAGLEBONE_BLACK_ENV"] == 'test'
24
+ File.open(File.join(@slots_directory, "slots"), 'w') {|file| file.truncate(0) }
25
+ end
26
+ end
27
+
28
+ it "should calculate the measuring voltage" do
29
+
30
+ pin_key = "P9_40"
31
+ expected_voltage = BigDecimal("20").to_f
32
+ expected_raw_value = (BigDecimal(expected_voltage.to_s) / BigDecimal("11")).to_f
33
+
34
+ voltage_input = VoltageMeasurement::VoltageInput.new(pin_key)
35
+
36
+ # Since the real "slots" file creates a directory structure when a device tree overlay is written to it,
37
+ # in the "test" environment with a regular file, it is mimiced here.
38
+ mimic_internal_analog_input_directory_creation(pin_key, expected_raw_value) if ENV["OBJECT_ORIENTED_BEAGLEBONE_BLACK_ENV"] == 'test'
39
+
40
+ expect(Dir.exists?(Dir["#{File.join(OBJECT_ORIENTED_BEAGLEBONE_BLACK_CONFIG["device_directory"], "helper.")}*"].first)).to be true
41
+
42
+ expect(voltage_input.value).to be_within(0.1).of(expected_voltage)
43
+
44
+ end
45
+
46
+ end
@@ -0,0 +1,49 @@
1
+ require 'spec_helper'
2
+ require 'fileutils'
3
+ require 'bigdecimal'
4
+
5
+ describe "ObjectOrientedBeagleboneBlack::AnalogInput", analog_input: true do
6
+
7
+ before(:each) do
8
+
9
+ @slots_directory = OBJECT_ORIENTED_BEAGLEBONE_BLACK_CONFIG["slots_directory"]
10
+ @device_directory = OBJECT_ORIENTED_BEAGLEBONE_BLACK_CONFIG["device_directory"]
11
+
12
+ # In order to run this spec example in the real environment, the directories and files that already exist there are not created in that case.
13
+ if ENV["OBJECT_ORIENTED_BEAGLEBONE_BLACK_ENV"] == 'test'
14
+ FileUtils.mkdir_p(@slots_directory, mode: 0700) unless Dir.exists?(@slots_directory)
15
+ FileUtils.touch(File.join(@slots_directory, "slots"))
16
+ File.chmod(0700, File.join(@slots_directory, "slots"))
17
+
18
+ FileUtils.mkdir_p(@device_directory, mode: 0700) unless Dir.exists?(@device_directory)
19
+ end
20
+ end
21
+
22
+ after(:each) do
23
+ if ENV["OBJECT_ORIENTED_BEAGLEBONE_BLACK_ENV"] == 'test'
24
+ File.open(File.join(@slots_directory, "slots"), 'w') {|file| file.truncate(0) }
25
+ end
26
+ end
27
+
28
+ it "should read the value of the specified analog input pin" do
29
+
30
+ pin_key = "P9_40"
31
+ expected_raw_value = (BigDecimal("1630") / BigDecimal("1000")).to_f
32
+ expected_value = (BigDecimal(expected_raw_value.to_s) * (BigDecimal("1.0")/BigDecimal("1.8"))).to_f
33
+
34
+ analog_input = ObjectOrientedBeagleboneBlack::AnalogInput.new(pin_key)
35
+
36
+ # Since the real "slots" file creates a directory structure when a device tree overlay is written to it,
37
+ # in the "test" environment with a regular file, it is mimiced here.
38
+ mimic_internal_analog_input_directory_creation(pin_key, expected_raw_value) if ENV["OBJECT_ORIENTED_BEAGLEBONE_BLACK_ENV"] == 'test'
39
+
40
+ expect(Dir.exists?(Dir["#{File.join(OBJECT_ORIENTED_BEAGLEBONE_BLACK_CONFIG["device_directory"], "helper.")}*"].first)).to be true
41
+
42
+ # Instead of analog_read(pin_name), reading the value is responsibility of pin object.
43
+ # i.e. ordinary Object-Oriented way.
44
+ expect(analog_input.raw_value).to eq(expected_raw_value)
45
+ expect(analog_input.value).to eq(expected_value)
46
+
47
+ end
48
+
49
+ end
@@ -0,0 +1,66 @@
1
+ require 'spec_helper'
2
+ require 'fileutils'
3
+
4
+ describe ObjectOrientedBeagleboneBlack::Gpio, gpio: true do
5
+
6
+ before(:each) do
7
+ @temp_gpio_directory = File.join(OBJECT_ORIENTED_BEAGLEBONE_BLACK_CONFIG["io_root_directory"], "gpio")
8
+
9
+ # In order to run this spec example in the real environment, the directories and files that already exist there are not created in that case.
10
+ if ENV["OBJECT_ORIENTED_BEAGLEBONE_BLACK_ENV"] == 'test'
11
+ FileUtils.mkdir_p(@temp_gpio_directory, mode: 0700) unless Dir.exists?(@temp_gpio_directory)
12
+ FileUtils.touch(File.join(@temp_gpio_directory, "export"))
13
+ File.chmod(0700, File.join(@temp_gpio_directory, "export")) # Not same as the real one (with only write permission) but adding write permission as well just in case what is written there needs to be read.
14
+ FileUtils.touch(File.join(@temp_gpio_directory, "unexport"))
15
+ File.chmod(0700, File.join(@temp_gpio_directory, "unexport")) # Not same as the real one (with only write permission) but adding write permission as well just in case what is written there needs to be read.
16
+ end
17
+ end
18
+
19
+ after(:each) do
20
+ if ENV["OBJECT_ORIENTED_BEAGLEBONE_BLACK_ENV"] == 'test'
21
+ File.open(File.join(@temp_gpio_directory, "export"), 'w') {|file| file.truncate(0) }
22
+ File.open(File.join(@temp_gpio_directory, "unexport"), 'w') {|file| file.truncate(0) }
23
+ end
24
+ end
25
+
26
+ describe "test with same circuit setting as boneDeviceTree gpio/TestApplication.cpp" do
27
+
28
+ it "should blink LED's through GPIO defined by Device Tree Overlay" do
29
+
30
+ led_gpio_pin_number = 60
31
+ button_gpio_pin_number = 15
32
+
33
+ led_gpio = ObjectOrientedBeagleboneBlack::Gpio.new(led_gpio_pin_number)
34
+
35
+ led_gpio.export
36
+ # Since the real "export" file creates a directory structure when a pin number is written to it,
37
+ # in the "test" environment with a regular file, it is mimiced here.
38
+ mimic_internal_export(led_gpio_pin_number) if ENV["OBJECT_ORIENTED_BEAGLEBONE_BLACK_ENV"] == 'test'
39
+
40
+ expect(Dir.exists?(File.join(@temp_gpio_directory, "gpio#{led_gpio_pin_number}"))).to be true
41
+
42
+ led_gpio.direction = ObjectOrientedBeagleboneBlack::IO::Direction::OUT
43
+
44
+ expect(led_gpio.direction).to eq(ObjectOrientedBeagleboneBlack::IO::Direction::OUT)
45
+
46
+ (0..1).each do |second|
47
+ led_gpio.value = ObjectOrientedBeagleboneBlack::IO::Value::HIGH
48
+ expect(led_gpio.value).to eq(ObjectOrientedBeagleboneBlack::IO::Value::HIGH)
49
+ sleep(0.5)
50
+ led_gpio.value = ObjectOrientedBeagleboneBlack::IO::Value::LOW
51
+ expect(led_gpio.value).to eq(ObjectOrientedBeagleboneBlack::IO::Value::LOW)
52
+ sleep(0.5)
53
+ end
54
+
55
+ led_gpio.unexport
56
+ # Since the real "unexport" file deletes a directory structure when a pin number is written to it,
57
+ # in the "test" environment with a regular file, it is mimiced here.
58
+ mimic_internal_unexport(led_gpio_pin_number) if ENV["OBJECT_ORIENTED_BEAGLEBONE_BLACK_ENV"] == 'test'
59
+
60
+ expect(Dir.exists?(File.join(@temp_gpio_directory, "gpio#{led_gpio_pin_number}"))).to be false
61
+
62
+ end
63
+
64
+ end
65
+
66
+ end
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+ require 'fileutils'
3
+
4
+ describe ObjectOrientedBeagleboneBlack::Led do
5
+
6
+ before(:each) do
7
+ FileUtils.mkdir_p(OBJECT_ORIENTED_BEAGLEBONE_BLACK_CONFIG["io_root_directory"], mode: 0700) unless Dir.exists?(OBJECT_ORIENTED_BEAGLEBONE_BLACK_CONFIG["io_root_directory"])
8
+ end
9
+
10
+ it "should light LED 0 (mimicking http://192.168.7.2/Support/BoneScript/demo_blinkled/)" do
11
+
12
+ led = "USR0"
13
+ state = 1
14
+
15
+ led_0 = ObjectOrientedBeagleboneBlack::Led.new(led)
16
+
17
+ # Instead of pin_mode(pin_name, pin_mode), setting the pin_mode is responsibility of pin object (Led here).
18
+ # i.e. ordinary Object-Oriented way.
19
+ led_0.pin_mode = 'out'
20
+
21
+ # Instead of digital_write(pin_name, state), setting the state is responsibility of pin object (Led here).
22
+ # i.e. ordinary Object-Oriented way.
23
+ led_0.digital_write(state)
24
+
25
+ expect(led_0.state).to eq(state)
26
+
27
+ end
28
+
29
+ end
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+
3
+ describe ObjectOrientedBeagleboneBlack::PinMappings do
4
+
5
+ class TestPinMappingsClass
6
+ include ObjectOrientedBeagleboneBlack::PinMappings
7
+ end
8
+
9
+ before(:each) do
10
+ @test_pin_mappings = TestPinMappingsClass.new
11
+ end
12
+
13
+ it "should get Hash for USR0 pin" do
14
+
15
+ expect(@test_pin_mappings.property_hash(name: "USR0")).to eq({"name" => "USR0",
16
+ "gpio" => 53,
17
+ "led" => "usr0",
18
+ "mux" => "gpmc_a5",
19
+ "key" => "USR0",
20
+ "muxRegOffset" => "0x054",
21
+ "options" => ["gpmc_a5", "gmii2_txd0", "rgmii2_td0", "rmii2_txd0", "gpmc_a21", "pr1_mii1_rxd3", "eqep1b_in", "gpio1_21"]})
22
+
23
+ expect(@test_pin_mappings.property_hash(key: "USR0")).to eq({"name" => "USR0",
24
+ "gpio" => 53,
25
+ "led" => "usr0",
26
+ "mux" => "gpmc_a5",
27
+ "key" => "USR0",
28
+ "muxRegOffset" => "0x054",
29
+ "options" => ["gpmc_a5", "gmii2_txd0", "rgmii2_td0", "rmii2_txd0", "gpmc_a21", "pr1_mii1_rxd3", "eqep1b_in", "gpio1_21"]})
30
+
31
+ end
32
+
33
+ end
34
+
35
+
@@ -0,0 +1,57 @@
1
+ require 'spec_helper'
2
+ require 'fileutils'
3
+
4
+ describe ObjectOrientedBeagleboneBlack::Pwm, pwm: true do
5
+
6
+ before(:each) do
7
+
8
+ @slots_directory = OBJECT_ORIENTED_BEAGLEBONE_BLACK_CONFIG["slots_directory"]
9
+ @device_directory = OBJECT_ORIENTED_BEAGLEBONE_BLACK_CONFIG["device_directory"]
10
+
11
+ # In order to run this spec example in the real environment, the directories and files that already exist there are not created in that case.
12
+ if ENV["OBJECT_ORIENTED_BEAGLEBONE_BLACK_ENV"] == 'test'
13
+ FileUtils.mkdir_p(@slots_directory, mode: 0700) unless Dir.exists?(@slots_directory)
14
+ FileUtils.touch(File.join(@slots_directory, "slots"))
15
+ File.chmod(0700, File.join(@slots_directory, "slots"))
16
+
17
+ FileUtils.mkdir_p(@device_directory, mode: 0700) unless Dir.exists?(@device_directory)
18
+ end
19
+ end
20
+
21
+ after(:each) do
22
+ if ENV["OBJECT_ORIENTED_BEAGLEBONE_BLACK_ENV"] == 'test'
23
+ File.open(File.join(@slots_directory, "slots"), 'w') {|file| file.truncate(0) }
24
+ end
25
+ end
26
+
27
+ describe "test with same setting as in https://learn.adafruit.com/setting-up-io-python-library-on-beaglebone-black/pwm" do
28
+
29
+ it "should duty cycle" do
30
+
31
+ pwm_pin_key = "P9_14"
32
+
33
+ pwm = ObjectOrientedBeagleboneBlack::Pwm.new(pwm_pin_key)
34
+
35
+ # Since the real "slots" file creates a directory structure when a device tree overlay is written to it,
36
+ # in the "test" environment with a regular file, it is mimiced here.
37
+ mimic_internal_pwm_directory_creation(pwm_pin_key) if ENV["OBJECT_ORIENTED_BEAGLEBONE_BLACK_ENV"] == 'test'
38
+
39
+ expect(Dir.exists?(File.join(@device_directory, "pwm_test_#{pwm_pin_key}.15"))).to be true
40
+
41
+ pwm.duty_cycle = 0.5
42
+
43
+ expect(pwm.polarity).to eq(ObjectOrientedBeagleboneBlack::Pwm::Polarity::DIRECT)
44
+ expect(pwm.duty_cycle).to eq(0.5)
45
+
46
+ sleep(2)
47
+
48
+ pwm.duty_cycle = 0.225
49
+
50
+ expect(pwm.polarity).to eq(ObjectOrientedBeagleboneBlack::Pwm::Polarity::DIRECT)
51
+ expect(pwm.duty_cycle).to eq(0.225)
52
+
53
+ end
54
+
55
+ end
56
+
57
+ end
@@ -0,0 +1,13 @@
1
+ ENV["OBJECT_ORIENTED_BEAGLEBONE_BLACK_ENV"] ||= 'test'
2
+
3
+ require 'object_oriented_beaglebone_black'
4
+
5
+ # Requires supporting ruby files with custom matchers and macros, etc,
6
+ # in spec/support/ and its subdirectories.
7
+ Dir[File.join(File.expand_path('support/**/*.rb', __dir__))].each {|f| require f}
8
+
9
+ RSpec.configure do |c|
10
+ c.include GpioFileBehaviorHelper, gpio: true
11
+ c.include PwmFileBehaviorHelper, pwm: true
12
+ c.include AnalogInputFileBehaviorHelper, analog_input: true
13
+ end
@@ -0,0 +1,34 @@
1
+ require 'fileutils'
2
+ require 'bigdecimal'
3
+
4
+ module AnalogInputFileBehaviorHelper
5
+ include ObjectOrientedBeagleboneBlack::PinMappings
6
+
7
+ # In Embedded Linux, when a Device Tree Overlay for the specific Analog input PIN key is activated,
8
+ # a directory with the name including the pin key is created with the various files e.g. AIN0, etc. underneath the directory.
9
+ # This method is for performing that automatic behavior in the local test environment.
10
+ def mimic_internal_analog_input_directory_creation(pin_key, raw_value)
11
+ temp_specific_analog_input_directory = File.join(OBJECT_ORIENTED_BEAGLEBONE_BLACK_CONFIG["device_directory"], "helper.16")
12
+
13
+ unless Dir.exists?(temp_specific_analog_input_directory)
14
+ FileUtils.mkdir_p(temp_specific_analog_input_directory, mode: 0700)
15
+
16
+ for ain_file_index in 0..7
17
+ create_ain_file(temp_specific_analog_input_directory, ain_file_index)
18
+ end
19
+ end
20
+
21
+ pin_name = property_hash(key: pin_key)["name"]
22
+ converted_raw_value = (BigDecimal(raw_value.to_s) * BigDecimal("1000")).to_i
23
+ File.open(File.join(temp_specific_analog_input_directory, pin_name), 'w') {|file| file.write(converted_raw_value) }
24
+
25
+ end
26
+
27
+ private
28
+ def create_ain_file(temp_specific_analog_input_directory, ain_file_index)
29
+ FileUtils.touch(File.join(temp_specific_analog_input_directory, "AIN#{ain_file_index}"))
30
+ File.chmod(0700, File.join(temp_specific_analog_input_directory, "AIN#{ain_file_index}"))
31
+ File.open(File.join(temp_specific_analog_input_directory, "AIN#{ain_file_index}"), 'w') {|file| file.write(1630) }
32
+ end
33
+
34
+ end
@@ -0,0 +1,36 @@
1
+ require 'fileutils'
2
+
3
+ module GpioFileBehaviorHelper
4
+
5
+ # In Embedded Linux, when a GPIO pin number is written to /sys/class/gpio/export file,
6
+ # a directory with the name including the pin number is created with the various files e.g. direction, value, etc. underneath the directory.
7
+ # This method is for performing that automatic behavior in the local test environment.
8
+ def mimic_internal_export(gpio_pin_number)
9
+ temp_specific_gpio_directory = File.join(temp_gpio_directory, "gpio#{gpio_pin_number}")
10
+
11
+ unless Dir.exists?(temp_specific_gpio_directory)
12
+ FileUtils.mkdir_p(temp_specific_gpio_directory, mode: 0700)
13
+
14
+ FileUtils.touch(File.join(temp_specific_gpio_directory, "direction"))
15
+ File.chmod(0700, File.join(temp_specific_gpio_directory, "direction")) # Not same as the real one but I prefer for a file to have only a user permission
16
+ File.open(File.join(temp_specific_gpio_directory, "direction"), "w") { |file| file.write(ObjectOrientedBeagleboneBlack::IO::Direction::IN) }
17
+
18
+ FileUtils.touch(File.join(temp_specific_gpio_directory, "value"))
19
+ File.chmod(0700, File.join(temp_specific_gpio_directory, "value")) # Not same as the real one but I prefer for a file to have only a user permission
20
+ File.open(File.join(temp_specific_gpio_directory, "value"), "w") { |file| file.write(ObjectOrientedBeagleboneBlack::IO::Value::LOW) }
21
+ end
22
+
23
+ end
24
+
25
+ def mimic_internal_unexport(gpio_pin_number)
26
+ temp_specific_gpio_directory = File.join(temp_gpio_directory, "gpio#{gpio_pin_number}")
27
+
28
+ FileUtils.rm_rf(temp_specific_gpio_directory)
29
+ end
30
+
31
+ private
32
+ def temp_gpio_directory
33
+ File.join(OBJECT_ORIENTED_BEAGLEBONE_BLACK_CONFIG["io_root_directory"], "gpio")
34
+ end
35
+
36
+ end
@@ -0,0 +1,23 @@
1
+ require 'fileutils'
2
+
3
+ module PwmFileBehaviorHelper
4
+
5
+ # In Embedded Linux, when a Device Tree Overlay for the specific PWM PIN key is activated,
6
+ # a directory with the name including the pin key is created with the various files e.g. duty, etc. underneath the directory.
7
+ # This method is for performing that automatic behavior in the local test environment.
8
+ def mimic_internal_pwm_directory_creation(pwm_pin_key)
9
+ temp_specific_pwm_directory = File.join(OBJECT_ORIENTED_BEAGLEBONE_BLACK_CONFIG["device_directory"], "pwm_test_#{pwm_pin_key}.15")
10
+
11
+ unless Dir.exists?(temp_specific_pwm_directory)
12
+ FileUtils.mkdir_p(temp_specific_pwm_directory, mode: 0700)
13
+
14
+ FileUtils.touch(File.join(temp_specific_pwm_directory, "duty"))
15
+ File.chmod(0700, File.join(temp_specific_pwm_directory, "duty"))
16
+ File.open(File.join(temp_specific_pwm_directory, "duty"), 'w') {|file| file.write(250000) }
17
+ FileUtils.touch(File.join(temp_specific_pwm_directory, "polarity"))
18
+ File.chmod(0700, File.join(temp_specific_pwm_directory, "polarity"))
19
+ File.open(File.join(temp_specific_pwm_directory, "polarity"), 'w') {|file| file.write(ObjectOrientedBeagleboneBlack::Pwm::Polarity::INVERSE) }
20
+ end
21
+ end
22
+
23
+ end
metadata ADDED
@@ -0,0 +1,138 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: object_oriented_beaglebone_black
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Tadatoshi Takahashi
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-11 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.6'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: Performs accessing GPIO, etc. in Object-Oriented way on BeagleBone Black
56
+ through Ruby.
57
+ email:
58
+ - tadatoshi@gmail.com
59
+ executables: []
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - ".gitignore"
64
+ - ".ruby-gemset"
65
+ - ".ruby-version"
66
+ - Gemfile
67
+ - LICENSE.txt
68
+ - README.md
69
+ - Rakefile
70
+ - config/environments/development.yml
71
+ - config/environments/production.yml
72
+ - config/environments/test.yml
73
+ - config/i2c.json
74
+ - config/pin_index.json
75
+ - config/uarts.json
76
+ - examples/current_measurement.rb
77
+ - examples/current_measurement/current_input.rb
78
+ - examples/voltage_measurement.rb
79
+ - examples/voltage_measurement/voltage_input.rb
80
+ - lib/object_oriented_beaglebone_black.rb
81
+ - lib/object_oriented_beaglebone_black/analog_input.rb
82
+ - lib/object_oriented_beaglebone_black/gpio.rb
83
+ - lib/object_oriented_beaglebone_black/io.rb
84
+ - lib/object_oriented_beaglebone_black/io/direction.rb
85
+ - lib/object_oriented_beaglebone_black/io/value.rb
86
+ - lib/object_oriented_beaglebone_black/led.rb
87
+ - lib/object_oriented_beaglebone_black/pin_mappings.rb
88
+ - lib/object_oriented_beaglebone_black/pwm.rb
89
+ - lib/object_oriented_beaglebone_black/version.rb
90
+ - object_orieted_beaglebone_black.gemspec
91
+ - spec/examples/current_measurement/current_input_spec.rb
92
+ - spec/examples/voltage_measurement/voltage_input_spec.rb
93
+ - spec/object_oriented_beaglebone_black/analog_input_spec.rb
94
+ - spec/object_oriented_beaglebone_black/gpio_spec.rb
95
+ - spec/object_oriented_beaglebone_black/led_spec.rb
96
+ - spec/object_oriented_beaglebone_black/pin_mappings_spec.rb
97
+ - spec/object_oriented_beaglebone_black/pwm_spec.rb
98
+ - spec/spec_helper.rb
99
+ - spec/support/analog_input_file_behavoir_helper.rb
100
+ - spec/support/gpio_file_behavior_helper.rb
101
+ - spec/support/pwm_file_behavior_helper.rb
102
+ homepage: ''
103
+ licenses:
104
+ - MIT
105
+ metadata: {}
106
+ post_install_message:
107
+ rdoc_options: []
108
+ require_paths:
109
+ - lib
110
+ - examples
111
+ required_ruby_version: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: 2.1.2
116
+ required_rubygems_version: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ requirements: []
122
+ rubyforge_project:
123
+ rubygems_version: 2.4.3
124
+ signing_key:
125
+ specification_version: 4
126
+ summary: For using BeagleBone Black in Object-Oriented way through Ruby.
127
+ test_files:
128
+ - spec/examples/current_measurement/current_input_spec.rb
129
+ - spec/examples/voltage_measurement/voltage_input_spec.rb
130
+ - spec/object_oriented_beaglebone_black/analog_input_spec.rb
131
+ - spec/object_oriented_beaglebone_black/gpio_spec.rb
132
+ - spec/object_oriented_beaglebone_black/led_spec.rb
133
+ - spec/object_oriented_beaglebone_black/pin_mappings_spec.rb
134
+ - spec/object_oriented_beaglebone_black/pwm_spec.rb
135
+ - spec/spec_helper.rb
136
+ - spec/support/analog_input_file_behavoir_helper.rb
137
+ - spec/support/gpio_file_behavior_helper.rb
138
+ - spec/support/pwm_file_behavior_helper.rb