rpi_pinin_msgout 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8b4fdc2b754129d212acd18f67a26fb72d3c78bf
4
+ data.tar.gz: 0d0f15d97a7dfc2157ee544bf9198e548488809e
5
+ SHA512:
6
+ metadata.gz: 0b0ad3e22ff963dca7a745ce285cdae820fcb0503971945c79267d4fa3da9b4665769b17c512d462f93bea6973f735995545a660271b87bbb84a63da05aec520
7
+ data.tar.gz: f33c4c3851da1ead1d636bc6085755c0f7339cffa6624a133de801b8a5eb4569021b365830eb03e0999605fac0483b8747cd29fe18d59629783e35d00b82a652
checksums.yaml.gz.sig ADDED
Binary file
@@ -0,0 +1,107 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # file: rpi_pinin_msgout.rb
4
+
5
+ require 'rpi_pinin'
6
+ require 'chronic_duration'
7
+
8
+
9
+ class Echo
10
+
11
+ def notice(s)
12
+ puts "%s: %s" % [Time.now, s]
13
+ end
14
+ end
15
+
16
+ class RPiPinInMsgOut < RPiPinIn
17
+
18
+
19
+ def initialize(id, pull: nil, mode: :default, verbose: true,
20
+ subtopic: 'sensor', device_id: 'pi', notifier: Echo.new,
21
+ duration: '5 seconds', index: 0, capture_rate: 0.5)
22
+
23
+ super(id, pull: pull)
24
+
25
+ @mode, @verbose, @notifier, @duration = mode, verbose, notifier, duration
26
+ @capture_rate = capture_rate
27
+ @topic = [device_id, subtopic, index].join('/')
28
+
29
+ end
30
+
31
+ def capture_high()
32
+
33
+ case @mode
34
+ when :interval
35
+
36
+ count = 0
37
+
38
+ duration = ChronicDuration.parse(@duration)
39
+
40
+ t1 = Time.now - duration + 1
41
+
42
+ setup do
43
+ count, t1 = interval_mode(t1, count, duration)
44
+ end
45
+
46
+ when :default
47
+ setup { default_mode() }
48
+ end
49
+
50
+ end
51
+
52
+ private
53
+
54
+ def setup()
55
+
56
+ t0 = Time.now + 1
57
+
58
+ self.watch_high do
59
+
60
+ # ignore any movements that happened a short time ago e.g. 250
61
+ # milliseconds ago since the last movement
62
+ if t0 + @capture_rate < Time.now then
63
+
64
+ puts Time.now.to_s if @verbose
65
+
66
+ yield()
67
+
68
+ t0 = Time.now
69
+
70
+ else
71
+ #puts 'ignoring ...'
72
+ end
73
+
74
+ end # /watch_high
75
+
76
+ end
77
+
78
+ def interval_mode(t1, count, duration)
79
+
80
+ count += 1
81
+
82
+ elapsed = Time.now - (t1 + duration)
83
+
84
+ if elapsed > 0 then
85
+
86
+ # identify if the movement is consecutive
87
+ msg = if elapsed < duration then
88
+ s = ChronicDuration.output(duration, :format => :long)
89
+ "%s: detected %s times within the past %s" % [@topic, count, s ]
90
+ else
91
+ "%s: detected" % [@topic, @index]
92
+ end
93
+
94
+ @notifier.notice msg
95
+ count, t1 = 0, Time.now
96
+
97
+ end
98
+
99
+ [count, t1]
100
+
101
+ end
102
+
103
+ def default_mode()
104
+ @notifier.notice "%s: detected" % [@topic, @index]
105
+ end
106
+
107
+ end
data.tar.gz.sig ADDED
@@ -0,0 +1 @@
1
+ �H1�e�&2�8�o�׍�D]��U=*�� � fv������F����>��)�k�݈�>[_Chl ~uUR�#_�r<S*P<��~2\���{ŧE�A���F�|����i/�v� ����x�qnR���-.�`BƋ쇨lLIoT�i0�ٴzR���Ȝus��5�'��;�_���ܚ���U=��w��@0���džW����.5�GU��g�v�~�5�l��� �[�A-P8�l󴺫�rw-LU
metadata ADDED
@@ -0,0 +1,88 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rpi_pinin_msgout
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - James Robertson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
+ YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
+ 8ixkARkWAmV1MB4XDTE2MDQxODIwMjIwM1oXDTE3MDQxODIwMjIwM1owSDESMBAG
16
+ A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
+ EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
+ ggEBAKzo2LbAB4YZY4rzmlMLUORqIGisj1k26aZM09nS1wQ9qTGNLUoDE/fieoNx
19
+ ZUx95sp+KbpiUxtD1b8VOB/hNEsES6laO5V4DVg9Eb4UCH0QQygQs+iHId5SC16K
20
+ yjr9dC1GR+XxwL+C+pBt+B3xSDREscXvgqXp+pBM3dwZJe+FPwRUGQMpRqYQd4RN
21
+ TaDcIt8NXr5Izx3ao6CMrQRaU3Ce8jv5Bcfv41LkQNeR6JI0UAuPGw9G8tyIPZ2q
22
+ 1aingrSPcBylj+yt3S39C0BH79EldTIZpE62L554KIz57c6gyslZ2D0sCs+Qtfpl
23
+ axSOBQn1oIDTvAicPZ0hCC7k4gMCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
+ DwQEAwIEsDAdBgNVHQ4EFgQUXnWuMYD22van1xgPL0YzuL8pnegwJgYDVR0RBB8w
25
+ HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
+ c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEALCsoxGmo
27
+ 8/JLpY6qvCV4Qy+HzeTiqe5rDyp+4xuL81ztou58v1IvyqyDbS4GM0k34Hs15vl0
28
+ AueKDtbWYM1YfzPx0SG5/+pYyV2foyG3EMHfhnT3gewu1IzaS7JDAVJ9sSEIs+UN
29
+ RZM01eH8ZM+IwKAAIxPCXayS4R8sUIL6c69W20OWz5L7j4O60sZVgLxFM8mYZ3nE
30
+ C74GHdHcR0qqBlE/Y0K00YKCqsL/sw0E8vB0/10p5MHqR/3j8H82yinNbrRkpAYq
31
+ 55qRY75k9VJA2GfpeY0Nw/6IyHSZ2JFdwtTDZPKQpT69gVGu7XJlquG9lUMQaNc+
32
+ 2CuqDKVQmWkNHg==
33
+ -----END CERTIFICATE-----
34
+ date: 2016-04-18 00:00:00.000000000 Z
35
+ dependencies:
36
+ - !ruby/object:Gem::Dependency
37
+ name: rpi_pinin
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
56
+ description:
57
+ email: james@r0bertson.co.uk
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - lib/rpi_pinin_msgout.rb
63
+ homepage: https://github.com/jrobertson/rpi_pinin_msgout
64
+ licenses:
65
+ - MIT
66
+ metadata: {}
67
+ post_install_message:
68
+ rdoc_options: []
69
+ require_paths:
70
+ - lib
71
+ required_ruby_version: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ required_rubygems_version: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ requirements: []
82
+ rubyforge_project:
83
+ rubygems_version: 2.4.8
84
+ signing_key:
85
+ specification_version: 4
86
+ summary: Returns meaningful messages for humans from the capture of a Raspberry PI
87
+ GPIO input pin.
88
+ test_files: []
metadata.gz.sig ADDED
@@ -0,0 +1 @@
1
+ `c-�?�+��s�u�d�ڎ|y%