pi_driver 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 +4 -4
- data/bin/pin.rb +1 -0
- data/lib/pi_driver/i2c_master.rb +17 -8
- data/lib/pi_driver/pin.rb +20 -14
- data/lib/pi_driver.rb +2 -2
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db8ff0ea07f81396952ed0e32dcb93568789b07b
|
4
|
+
data.tar.gz: f9bbf070326600cc2baa2af12753a71660f0924c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 305c2726c2f1063ebb0159f7ff50d99a1655e94cdd6c812c2801c80bb155f7b7c45a66aadc9cdff1389efa5bd009c862757b876610961a82603bccebc373458d
|
7
|
+
data.tar.gz: 6e50dda35d0213b347ddc5fb0ae5577cdaa8256bd9d1fb341fc99732fb8a0dadc311d63c3073fae83b3b2207b94a17acf448cca6a2dc3d5e85ffdfaf55fee4a0
|
data/bin/pin.rb
CHANGED
data/lib/pi_driver/i2c_master.rb
CHANGED
@@ -19,6 +19,8 @@ module PiDriver
|
|
19
19
|
drive_clock_pin
|
20
20
|
end
|
21
21
|
|
22
|
+
alias_method :restart, :start
|
23
|
+
|
22
24
|
def write(byte)
|
23
25
|
send_data byte
|
24
26
|
byte
|
@@ -37,13 +39,15 @@ module PiDriver
|
|
37
39
|
success
|
38
40
|
end
|
39
41
|
|
40
|
-
|
42
|
+
def self.prepare_address_for_write(address_byte)
|
43
|
+
address_byte << 1
|
44
|
+
end
|
41
45
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
46
|
+
def self.prepare_address_for_read(address_byte)
|
47
|
+
(address_byte << 1) | 1
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
47
51
|
|
48
52
|
def send_data(byte)
|
49
53
|
bits = byte_to_bits byte
|
@@ -94,8 +98,13 @@ module PiDriver
|
|
94
98
|
end
|
95
99
|
|
96
100
|
def observe_clock_stretch
|
97
|
-
|
98
|
-
|
101
|
+
clock_stretch_began_at = Time.now
|
102
|
+
one_millisecond = 0.001
|
103
|
+
loop do
|
104
|
+
elapsed_time = Time.now - clock_stretch_began_at
|
105
|
+
timed_out = elapsed_time > one_millisecond
|
106
|
+
break if @clock_pin.set? || timed_out
|
107
|
+
end
|
99
108
|
end
|
100
109
|
|
101
110
|
def observe_speed_requirement
|
data/lib/pi_driver/pin.rb
CHANGED
@@ -1,31 +1,29 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
require_relative 'pin/argument_helper'
|
2
|
+
require_relative 'pin/board'
|
3
|
+
require_relative 'pin/direction'
|
4
|
+
require_relative 'pin/edge'
|
5
|
+
require_relative 'pin/file_helper'
|
6
|
+
require_relative 'pin/value'
|
7
7
|
|
8
8
|
module PiDriver
|
9
9
|
class Pin
|
10
10
|
attr_reader :gpio_number
|
11
11
|
|
12
12
|
def initialize(gpio_number, options = {})
|
13
|
-
@
|
13
|
+
@argument_helper = ArgumentHelper.new gpio_number
|
14
14
|
|
15
|
-
@
|
16
|
-
@argument_helper.check(:gpio_number, gpio_number, Board::VALID_NUMBERS)
|
15
|
+
@gpio_number = gpio_number
|
16
|
+
@argument_helper.check(:gpio_number, @gpio_number, Board::VALID_NUMBERS)
|
17
17
|
|
18
18
|
@direction = options[:direction] || Direction::INPUT
|
19
|
+
@argument_helper.check(:direction, @direction, Direction::VALID_DIRECTIONS)
|
20
|
+
|
19
21
|
@value = options[:value] || Value::LOW
|
22
|
+
@argument_helper.check(:value, @value, Value::VALID_VALUES)
|
20
23
|
|
21
24
|
@file_helper = FileHelper.new @gpio_number
|
22
|
-
|
23
25
|
@file_helper.write_export
|
24
|
-
|
25
|
-
@argument_helper.check(:direction, @direction, Direction::VALID_DIRECTIONS)
|
26
26
|
@file_helper.write_direction(@direction)
|
27
|
-
|
28
|
-
@argument_helper.check(:value, @value, Value::VALID_VALUES)
|
29
27
|
input? ? @file_helper.read_value : @file_helper.write_value(@value)
|
30
28
|
end
|
31
29
|
|
@@ -57,10 +55,14 @@ module PiDriver
|
|
57
55
|
@value
|
58
56
|
end
|
59
57
|
|
58
|
+
alias_method :off, :clear
|
59
|
+
|
60
60
|
def clear?
|
61
61
|
value == Value::LOW
|
62
62
|
end
|
63
63
|
|
64
|
+
alias_method :off?, :clear?
|
65
|
+
|
64
66
|
def set
|
65
67
|
return unless output?
|
66
68
|
@value = Value::HIGH
|
@@ -68,10 +70,14 @@ module PiDriver
|
|
68
70
|
@value
|
69
71
|
end
|
70
72
|
|
73
|
+
alias_method :on, :set
|
74
|
+
|
71
75
|
def set?
|
72
76
|
value == Value::HIGH
|
73
77
|
end
|
74
78
|
|
79
|
+
alias_method :on?, :set?
|
80
|
+
|
75
81
|
def value
|
76
82
|
input? ? @file_helper.read_value : @value
|
77
83
|
end
|
data/lib/pi_driver.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pi_driver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lucas Winningham
|
@@ -14,16 +14,16 @@ dependencies:
|
|
14
14
|
name: mocha
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.4.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 1.4.0
|
27
27
|
description: Ruby driver for Raspberry Pi
|
28
28
|
email: lucas.winningham@gmail.com
|
29
29
|
executables:
|