rpi 0.4.8 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/lib/rpi.rb +6 -132
  5. metadata +24 -24
  6. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: eb7d6031104638c1cabd370e52bba0c22c8536b5
4
- data.tar.gz: c929e5300f07086445157fad32c93e1cb3e358a6
3
+ metadata.gz: 77b014df263b389a23ca63fd6004028709863b2f
4
+ data.tar.gz: 5935ff94f91c371b67c2f3da94116210e901903e
5
5
  SHA512:
6
- metadata.gz: 571e28eb1a0509860f28a4e7ff9a27a60c430edb72ada4cb7ba796d7301802c793fe4ac616d7a10c2601636f10b9be4854566b9f8f838e10b0fe6465e7d1f816
7
- data.tar.gz: dee6a1b72bc6084837848577f90bb14c5c43c68a3617733191fdb100ff874d89110bbfd577b4c43ceebf006563fc2f78cdbd135dadd17c3eee0ad95359a7703e
6
+ metadata.gz: fb8a9f351e2caa531490a6e14ee93e5fc522792f8f0e3ffc0897983e7c30068bf038b67ca54c9582ed43e3fcfc718f560baf5fa35120068d47cacc7f0a8a398a
7
+ data.tar.gz: ba62392047290f6318eae029c18f4009514fea7e8e9d42a31ac91fa6be81002ef4d72637ef0a95932ff6f5f54c05ed29f9f7587a91bc3fdecb31e416ec739798
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/rpi.rb CHANGED
@@ -2,103 +2,11 @@
2
2
 
3
3
  # file: rpi.rb
4
4
 
5
- require 'pi_piper'
5
+ require 'rpi_pinout'
6
6
 
7
7
 
8
8
  class RPi
9
- include PiPiper
10
-
11
- @leds = []
12
-
13
- class PinX < Pin
14
-
15
- HIGH = 1
16
- LOW = 0
17
-
18
- def initialize(id)
19
- @id = id
20
- super(pin: id, direction: :out)
21
- @on, @blinking = false, false
22
- end
23
-
24
- def on(durationx=nil, duration: nil)
25
- super();
26
- @on = true
27
- duration ||= durationx
28
-
29
- @off_thread.exit if @off_thread
30
- @on_thread = Thread.new {(sleep duration; self.off()) } if duration
31
-
32
- end
33
-
34
- def off(durationx=nil, duration: nil)
35
-
36
- super();
37
- return if @internal_call
38
-
39
- @on, @blinking = false, false
40
- duration ||= durationx
41
-
42
- @on_thread.exit if @on_thread
43
- @off_thread = Thread.new { (sleep duration; self.on()) } if duration
44
-
45
- end
46
-
47
- alias high on # opposite of low
48
- alias open on # opposite of close
49
- alias lock on # opposite of unlock
50
-
51
- alias stop off
52
- alias low off
53
- alias close off
54
- alias unlock off
55
-
56
- def blink(seconds=0.5, duration: nil)
57
-
58
- @blinking = true
59
- t2 = Time.now + duration if duration
60
-
61
- Thread.new do
62
- while @blinking do
63
-
64
- set_pin HIGH
65
- sleep seconds / 2.0
66
- break if !@blinking
67
- sleep seconds / 2.0
68
- break if !@blinking
69
-
70
- set_pin LOW;
71
- sleep seconds / 2.0
72
- break if !@blinking
73
- sleep seconds / 2.0
74
-
75
- break if !@blinking
76
-
77
- self.off if duration and Time.now >= t2
78
- end
79
-
80
- end
81
- end
82
-
83
- alias oscillate blink
84
-
85
- def on?() @on end
86
- def off?() !@on end
87
-
88
- # set val with 0 (off) or 1 (on)
89
- #
90
- def set_pin(val)
91
-
92
- @internal_call = true
93
- self.update_value val
94
- @internal_call = false
95
- end
96
9
 
97
- def to_s()
98
- @id
99
- end
100
- end
101
-
102
10
  class Void
103
11
  def on(duration=nil) end
104
12
  def off() end
@@ -118,58 +26,24 @@ class RPi
118
26
  when Array
119
27
  x
120
28
  end
121
-
122
- unexport_all a
123
29
 
124
- @pins = a.map {|pin| PinX.new pin }
30
+ @pins = a.map {|pin| RPiPinOut.new pin }
125
31
 
126
32
  def @pins.[](i)
127
33
 
128
- if i.respond_to? :to_i and i.to_i >= self.length then
129
- puts "RPi warning: PinX instance #{i.inspect} not found"
34
+ if i.to_i >= self.length then
35
+ puts "RPi warning: RPiPinOut instance #{i.inspect} not found"
130
36
  Void.new
131
37
  else
132
- super(i)
38
+ self.at(i)
133
39
  end
134
40
  end
135
-
136
- at_exit do
137
-
138
- # to avoid "Device or resource busy @ fptr_finalize - /sys/class/gpio/export"
139
- # we unexport the pins we used
140
-
141
- unexport_all a
142
- end
41
+
143
42
  end
144
43
 
145
44
  def pin() @pins.first end
146
45
  def pins() @pins end
147
46
 
148
- def unexport_all(pins)
149
-
150
- pins.each do |pin|
151
-
152
- next unless File.exists? '/sys/class/gpio/gpio' + pin.to_s
153
-
154
- uexp = open("/sys/class/gpio/unexport", "w")
155
- uexp.write(pin)
156
- uexp.close
157
- end
158
-
159
- end
160
-
161
- def on_exit
162
- unexport_all @pins
163
- end
164
-
165
- def self.unexport(a)
166
- a.each do |pin|
167
-
168
- uexp = open("/sys/class/gpio/unexport", "w")
169
- uexp.write(pin)
170
- uexp.close
171
- end
172
- end
173
47
 
174
48
  end
175
49
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rpi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.8
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -12,49 +12,49 @@ cert_chain:
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
14
  YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
- 8ixkARkWAmV1MB4XDTE2MDIxODEyMjMwMFoXDTE3MDIxNzEyMjMwMFowSDESMBAG
15
+ 8ixkARkWAmV1MB4XDTE3MDUxMDE4NDg1NloXDTE4MDUxMDE4NDg1NlowSDESMBAG
16
16
  A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
17
  EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBAMVXcspro1c/DAwXTTMr2YvuVdLNJU2nt40ulBiKvej9hO2ehRElsUh9LkAf
19
- E8nppXdnrTZ6K1XzSdG0rj2hjzx292zSHqaXxQZ2I/m3XKfH5n2FR7hnQvanSTqR
20
- lkiRxpHEW9v2lSWSBLZB2lZxR4ETGMZ92qAmjratuGP7PfAk8GGll1qXUrg551vG
21
- JkegvGlHAepvk08qRhdneb8MNKxjEj73j5HIU7YhV/U0SH8Z+vtqsBC7tA8XFrss
22
- 6zRjrPHlnsIzvk6IxAefdr76A+23hmc0vlPDqte0St7pZ0Lq4cnD9AJkq+tm6qM2
23
- g1lNRk6/3q/bZwmgkFK7Y8j3SjcCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQUfq122CLxcdMsLq0x2FByMVICnf0wJgYDVR0RBB8w
18
+ ggEBAOFkwT/if5CgcXMrn7cdmr9XX6sY4EPLbjSB6VWIwwfhWOubsKMy6ReBR6hm
19
+ 2PgZk4exPjhgc07ODACcMAMp9uvlYiwHPmnmATfEOFBRIR6sGOZCUVIlvelkAf+7
20
+ 6ELA85iDFcxUlr7DIYr6BM8w7bmC+qzyrwWDyV0mnP1qbfpS0QZ5Lii4wW8Te9vX
21
+ 6FMN3Yodtfvdr50FSdNGHJC0w6+tX5lphAo2i3vkz4KOkBdOR3DRwyAw/nDbZsuE
22
+ M9Yqtr/UoTes/BeqgeR5IpNvSDcsSXNVw+BsUjMzElnr4uTOOrlQOHs+f2R2s7B+
23
+ DP26Wb77cQ+ntbT907SOaqrMAJUCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
+ DwQEAwIEsDAdBgNVHQ4EFgQUB7WTIBd3fdE68snzyGPPygagrHMwJgYDVR0RBB8w
25
25
  HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAYSFZKFWb
27
- 777wn2Agpr8fHTvLBZ9xxHtglgpm8LUCyJVwKmbsr8WI8L98dTJUpr6rBscLGlNA
28
- FwmwVcFnBxm1wh8+i+W4I7Ts6Xnk2Bh3ZbWhy3WdfzBNniQ8ExaMKcGQ5c81ZIxR
29
- IWZQLB6u4TAiI2Okx/UwIAQXRuJHDNgkwIy6T0ewHRX3bTNf73oR6p0s4Rt5WvL/
30
- auu2U/SEbxEa8vohSDvo8c09xich+3by0wJazca04fOedIuEWuP4ZH9apMYuYxJt
31
- dEqi5CounDnDNhe7rUTTIuu0MrOb34ZE6764bu+q8DVP3XqnOJ86KiUa9jkp9suF
32
- p8w0UzQnpUtnPA==
26
+ c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAYnIMsxNv
27
+ iHynTuej7HpUtOrcbGX4D3kDqNBYNdKorkFWU5+jQWzVuLcr+NWIKZGJOLyUfQBM
28
+ V3v5v3ZPNWC89ClgIk8xfgPyR1SIoKOqusfJpB0GmOJuy7f3zfFUKs82dOPkdWlo
29
+ NzwfsF9MmFLkPcCw2hFBBvJsrLlHowT4WQ51I/K6aw83dXgCAjQA1DYvCjldEdEc
30
+ Fb17YZ2p7442pT1asXspSsujtWuRZrB2L6Kmmjr03Q9Eie41pkUQTaHTcWtETrbp
31
+ 03+2ttzIMR7wl/1qlZlAlvMQ71TeyXUIKE3dzMV3MlQqD5jNgpweeDOVAu06J77/
32
+ C4Q94lEe/XWITQ==
33
33
  -----END CERTIFICATE-----
34
- date: 2016-12-25 00:00:00.000000000 Z
34
+ date: 2017-05-10 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
- name: pi_piper
37
+ name: rpi_pinout
38
38
  requirement: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
- version: '1.3'
42
+ version: '0.1'
43
43
  - - ">="
44
44
  - !ruby/object:Gem::Version
45
- version: 1.3.2
45
+ version: 0.1.1
46
46
  type: :runtime
47
47
  prerelease: false
48
48
  version_requirements: !ruby/object:Gem::Requirement
49
49
  requirements:
50
50
  - - "~>"
51
51
  - !ruby/object:Gem::Version
52
- version: '1.3'
52
+ version: '0.1'
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: 1.3.2
55
+ version: 0.1.1
56
56
  description:
57
- email: james@r0bertson.co.uk
57
+ email: james@jamesrobertson.eu
58
58
  executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
@@ -80,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
80
  version: '0'
81
81
  requirements: []
82
82
  rubyforge_project:
83
- rubygems_version: 2.5.1
83
+ rubygems_version: 2.6.8
84
84
  signing_key:
85
85
  specification_version: 4
86
86
  summary: The RPi gem makes it easy to set the GPIO pins on the Raspberry Pi e.g. RPi.new([4,27]).pins.first.on
metadata.gz.sig CHANGED
Binary file