rpi_pwm 0.2.1 → 0.3.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/lib/rpi_pwm.rb +12 -74
  4. data.tar.gz.sig +0 -0
  5. metadata +43 -23
  6. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 95205e0c301a261a683cf3bb5dde72c7210a4d80
4
- data.tar.gz: c6cce65f85343fb24d90eef779425ba3b490fa4d
3
+ metadata.gz: 2d3645e03767ca728009827584055434b1f1e19b
4
+ data.tar.gz: 883f42d3b36ffec7ad4020ddb940528069ff8211
5
5
  SHA512:
6
- metadata.gz: 84e91340a5b6c41c2e0b49f4ae510b4c78eb9f746bf0938bf4e66804bad9b54d23e2c5290dd0f1fad4aa12803c9ed545d19df031e254e3d36953b2743f33b509
7
- data.tar.gz: 1ae48d835dbc86adf954780ab6b8e84c93439097311a5f860d3bcbae8bb143e481e4b8ce64f857522f298ef6f705dcb110c2df7c90adb262aca56764257f5cb3
6
+ metadata.gz: 722fd7d5cf698ad3f3fd3483221f9a34b7091bd6a0c0717bd5ba9f8fa44ad46ad3e5bab5f5d24a0776cc7f7de373cf354e6cc0441b10db8dd4ba0199c9a416e8
7
+ data.tar.gz: 93f203fd8b46e055b909a16f740d3d2a9d7f2681f0f0011d6eb17f7f59147640b0cc8e42a9ca508373e76ac0c483d0c40c95e25e86f6550529b04fe11e2a08f6
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/rpi_pwm.rb CHANGED
@@ -2,18 +2,19 @@
2
2
 
3
3
  # file: rpi_pwm.rb
4
4
 
5
+ require 'pinx'
5
6
  require 'rpi_gpio'
6
7
 
7
8
 
8
- class RPiPwm
9
+ class RPiPwm < PinX
9
10
 
10
- HIGH = true
11
- LOW = false
12
11
 
13
12
  attr_accessor :duty_cycle, :freq
14
13
 
15
14
 
16
15
  def initialize(pin_num, duty_cycle: 100, freq: 100)
16
+
17
+ super(pin_num)
17
18
 
18
19
  @id, @duty_cycle, @freq = pin_num, duty_cycle, freq
19
20
 
@@ -21,16 +22,12 @@ class RPiPwm
21
22
  RPi::GPIO.setup pin_num, :as => :output
22
23
 
23
24
  @pwm = RPi::GPIO::PWM.new(pin_num, freq)
24
-
25
- @on, @blinking = false, false
25
+ @pwm.start 0
26
26
 
27
27
  at_exit { RPi::GPIO.clean_up pin_num}
28
28
 
29
29
  end
30
30
 
31
- def blinking?()
32
- @blinking
33
- end
34
31
 
35
32
  def duty_cycle=(val)
36
33
  @duty_cycle = val
@@ -42,82 +39,23 @@ class RPiPwm
42
39
  @pwm.frequency = val
43
40
  end
44
41
 
45
- def on(durationx=nil, duration: nil)
46
-
47
- set_pin HIGH
48
- @on = true
49
- duration ||= durationx
50
-
51
- @off_thread.exit if @off_thread
52
- @on_thread = Thread.new {(sleep duration; self.off()) } if duration
42
+ def on(durationx=nil, duration: nil, duty_cycle: @duty_cycle, freq: @freq)
53
43
 
54
- end
55
-
56
- def off(durationx=nil, duration: nil)
57
-
58
- set_pin LOW
59
- return if @internal_call
60
-
61
- @on, @blinking = false, false
62
- duration ||= durationx
63
-
64
- @on_thread.exit if @on_thread
65
- @off_thread = Thread.new { (sleep duration; self.on()) } if duration
44
+ self.duty_cycle = duty_cycle if duty_cycle
45
+ self.freq = freq if freq
46
+ super(durationx, duration: duration)
66
47
 
67
48
  end
68
-
69
- alias stop off
70
- alias start on
71
- alias frequency freq
72
-
73
- def blink(seconds=0.5, duration: nil)
74
49
 
75
- self.stop if blinking?
76
-
77
- @blinking = true
78
- t2 = Time.now + duration if duration
79
-
80
- Thread.new do
81
- while @blinking do
82
-
83
- set_pin HIGH
84
- sleep seconds / 2.0
85
- break if !@blinking
86
- sleep seconds / 2.0
87
- break if !@blinking
88
-
89
- set_pin LOW;
90
- sleep seconds / 2.0
91
- break if !@blinking
92
- sleep seconds / 2.0
93
-
94
- break if !@blinking
95
-
96
- self.off if duration and Time.now >= t2
97
- end
98
-
99
- end
100
- end
101
-
102
- alias oscillate blink
103
-
104
- def on?() @on end
105
- def off?() !@on end
50
+ alias frequency freq
106
51
 
107
52
  # set val with 0 (off) or 1 (on)
108
53
  #
109
54
  def set_pin(val)
110
55
 
111
- if val then
112
- @pwm.start @duty_cycle
113
- @pwm.frequency = @freq
114
- else
115
- @pwm.stop
116
- end
56
+ @pwm.duty_cycle = val ? @duty_cycle : 0
57
+ super(val)
117
58
 
118
59
  end
119
60
 
120
- def to_s()
121
- @id
122
- end
123
61
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rpi_pwm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -12,49 +12,69 @@ cert_chain:
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
14
  YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
- 8ixkARkWAmV1MB4XDTE2MDQwMzA5NDYzNFoXDTE3MDQwMzA5NDYzNFowSDESMBAG
15
+ 8ixkARkWAmV1MB4XDTE3MDUxMDE5NTkyN1oXDTE4MDUxMDE5NTkyN1owSDESMBAG
16
16
  A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
17
  EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBAKj5REqSzIytdTgKxZPFAr2pZz4B64rcEHM6eoo2iCZsxU9+DzolCF6Rl/sY
19
- AjuNcdgkHFjbVF5mxr1nBvmz2Uec657SDlqIBl/p0vL3nUss8Odu9O6oDRmc3X4u
20
- 3ES0qppUZNGMWouSIyDIKs2g62JovNufqRUhhWgWKJGtBKU2zCtnFh1i4S/jOA8E
21
- ki20nNJ4HN+t1SQ/9DJzu/yHd2vUCbrubYOFust/kKAmdc0o5G4qzO3pLwxCatWV
22
- pvmSG3uies2drDV2y2SSxKOPFUHih4CC4M2QSTDi0+dVDlczeqIZXDi/DiUDDPZQ
23
- OrbLeWt1trBNS3DgtUUNZunpfSUCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQUphSVISSFJ/YGjFyQkoXOWObthAowJgYDVR0RBB8w
18
+ ggEBAMm/tO0QT1WeDYw6GKG7uz31P2fS0P0nT7iro2YSevvQ+Y67UAztQS/kyzm0
19
+ fC4zs58gwTnMcLpYjKMRGlIJ7b7esxI8rPimw9Ze4C2SQQYqBFTpus5U7DjaLI9i
20
+ wrplKJhtj6Gdp3O+g+iiSH+XtxIiaeR1iUMH5ZRvdY0gi6DU/mFacCiu1SsXIe7f
21
+ 5QhUwGg1Af16TM816yysYmfVIeFtHlGREnKUCZyjlH94e64ZF+tfikbARGu9dheR
22
+ ZlaJ4+j+mXDjimWKSsCWDJXXnj1XvUnGKacDe0NjLlXmKENmNV0cLNU21w2lhrHt
23
+ 9HQNZ4vTkgIg/Hw0jA4p0M2O3WcCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
+ DwQEAwIEsDAdBgNVHQ4EFgQUrjTRvma0Ds/XKqKAcBMaPXDIu0YwJgYDVR0RBB8w
25
25
  HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAk1mmrZbP
27
- TcdyAkfr5/I6rtqKxsFRj6SHg5l2h6WvazudCdRCAz04Uz+WrGu0fUWd8+cKO4zY
28
- vsh7s5E7SlB/rpli/TZDFaUIt12gN3ASx0cqwKTGWgK07XmAlf+6Dub/tHiq7Yt9
29
- dxkf/5UJoCBxX8HGqiWTtw5896Nz1SgIm5Xi/2z45mpoYjNvaHX9x4e3B2iQvagj
30
- UA50rR8ryFtvMyqumGPCHKoIQNsYEGlTJgckzR/0Ta5DuaTUlMZBJ1E4nyOIr4Bg
31
- Lg+1iD44mOhKo89xZ5h1Puu6JavsbMTmeFCxBH7BbacQ3NHjj3CSG0pI0YWlDSys
32
- SKOkTuZCEwtqtw==
26
+ c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAEjvQuo0p
27
+ XPAX0NH0gaLb19XvGyJvm7M4E2iAbOy8ZoBlcpWseOUrAFnTMb9uJ2dFzj/Bk0yq
28
+ KJvWwy+mSRFKVV32jVtJ5EwDZ/5qjR5S79DQzNKQT9g1Bf4nfIqVwCDoijH41UWo
29
+ r6+zcn1tsyfyI5jIov4BmIuQSJuZnO2L7NSmgLHiSmK4ATNG4K6po67G2+6rxcsX
30
+ teBCgZfImeAFUb54c8Nj79XaBL0konJHPqLgLU0eZ937bq8TK77N4HArVU93jg+o
31
+ DOgMqiajOm6dIxAeYRUIrstBEg4TkzWHbmHtGyXJeEdyZShPrTtjL7ZHUtpy32/j
32
+ 7hILr7dD2PiaAg==
33
33
  -----END CERTIFICATE-----
34
- date: 2016-04-08 00:00:00.000000000 Z
34
+ date: 2017-05-10 00:00:00.000000000 Z
35
35
  dependencies:
36
+ - !ruby/object:Gem::Dependency
37
+ name: pinx
38
+ requirement: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '0.1'
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: 0.1.2
46
+ type: :runtime
47
+ prerelease: false
48
+ version_requirements: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: '0.1'
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 0.1.2
36
56
  - !ruby/object:Gem::Dependency
37
57
  name: rpi_gpio
38
58
  requirement: !ruby/object:Gem::Requirement
39
59
  requirements:
40
60
  - - "~>"
41
61
  - !ruby/object:Gem::Version
42
- version: '0.2'
62
+ version: '0.3'
43
63
  - - ">="
44
64
  - !ruby/object:Gem::Version
45
- version: 0.2.0
65
+ version: 0.3.3
46
66
  type: :runtime
47
67
  prerelease: false
48
68
  version_requirements: !ruby/object:Gem::Requirement
49
69
  requirements:
50
70
  - - "~>"
51
71
  - !ruby/object:Gem::Version
52
- version: '0.2'
72
+ version: '0.3'
53
73
  - - ">="
54
74
  - !ruby/object:Gem::Version
55
- version: 0.2.0
75
+ version: 0.3.3
56
76
  description:
57
- email: james@r0bertson.co.uk
77
+ email: james@jamesrobertson.eu
58
78
  executables: []
59
79
  extensions: []
60
80
  extra_rdoc_files: []
@@ -80,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
100
  version: '0'
81
101
  requirements: []
82
102
  rubyforge_project:
83
- rubygems_version: 2.4.8
103
+ rubygems_version: 2.6.8
84
104
  signing_key:
85
105
  specification_version: 4
86
106
  summary: A wrapper of the rpi_gpio gem with similar function to the rpi gem, but features
metadata.gz.sig CHANGED
Binary file