rpi_pinin_msgout 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b261da484bdebaca2aff10ffb032233256fab445
4
- data.tar.gz: f8cd02a4b59e9ae090f1bda6adacb4bac875e065
3
+ metadata.gz: 49944f9d1bdf045a0c29cb82042fd0f1d78ac208
4
+ data.tar.gz: 25c5297b71b127635107095dd416cf387cba174a
5
5
  SHA512:
6
- metadata.gz: 2336c509714ad9083c09aab37e7b52210fd8e0b64aa74f6dc46de1f6f1c932cc375a56f3ab50e36628e28b0c4158d898f26469fb046e7f7776619a490f7152fe
7
- data.tar.gz: a0d74df5ebdd89617a97361aba5ee4eb74a43e90c4562aff15841e9ee9c25ac37dc23f0b231c5a8b2d8d94feb394447baa6eb62caf3e3c9cedf98a18499c7f30
6
+ metadata.gz: 4385eb8f5c8adb748e7e1fbfdd51c7f6a5bc2900738337d11fc96a7456b611ed6789ebbac3da0b5f650fcb22b2cf2832dee35be5b343bd257259b3ea0d582b98
7
+ data.tar.gz: 5083923876f177bb07525aeb7e57e9ed3ee139ad17721f44da31d9a0bafc38e0d3106ae88c19377769c26c9db27ef443d6ecaef2a81b0d61fb26a4b5008b300b
checksums.yaml.gz.sig CHANGED
Binary file
@@ -3,8 +3,10 @@
3
3
  # file: rpi_pinin_msgout.rb
4
4
 
5
5
  require 'rpi_pinin'
6
+ require 'morsecode'
6
7
  require 'secret_knock'
7
8
  require 'chronic_duration'
9
+ require 'morsecode_listener'
8
10
 
9
11
 
10
12
  class Echo
@@ -31,6 +33,24 @@ class SecretKnockNotifier
31
33
  end
32
34
  end
33
35
 
36
+ class MorseCodeTranslator < MorseCode
37
+
38
+ def initialize(notifier, topic: 'morsecode')
39
+
40
+ super()
41
+ @notifier, @topic = notifier, topic
42
+
43
+ end
44
+
45
+ def message(s)
46
+
47
+ @input_string = s
48
+ @notifier.notice "%s: %s" % [@topic, self.to_s]
49
+
50
+ end
51
+ end
52
+
53
+
34
54
  class RPiPinInMsgOut < RPiPinIn
35
55
 
36
56
  # duration: Used by sample mode
@@ -45,6 +65,35 @@ class RPiPinInMsgOut < RPiPinIn
45
65
  @mode, @verbose, @notifier, @duration = mode, verbose, notifier, duration
46
66
  @capture_rate, @descriptor = capture_rate, descriptor
47
67
  @topic = [device_id, subtopic, index].join('/')
68
+
69
+ end
70
+
71
+ def capture(external: nil)
72
+
73
+ if @mode == :default then
74
+
75
+ button_setup do |state|
76
+ default_mode() if state == HIGH
77
+ end
78
+
79
+ elsif @mode == :secretknock
80
+
81
+ notifier = SecretKnockNotifier.new(@notifier, topic: @topic)
82
+
83
+ sk = SecretKnock.new \
84
+ short_delay: 0.55, long_delay: 1.1, external: notifier
85
+ sk.detect
86
+
87
+ setup { sk.knock }
88
+
89
+ elsif @mode == :morsecode
90
+
91
+ mct = MorseCodeTranslator.new @notifier, topic: @topic
92
+ mcl = MorseCodeListener.new notifier: mct
93
+
94
+ button_setup(external: mcl)
95
+
96
+ end
48
97
 
49
98
  end
50
99
 
@@ -74,17 +123,29 @@ class RPiPinInMsgOut < RPiPinIn
74
123
  short_delay: 0.55, long_delay: 1.1, external: notifier
75
124
  sk.detect
76
125
 
77
- setup { sk.knock }
78
-
126
+ setup { sk.knock }
79
127
 
80
128
  end
81
129
 
82
130
  end
83
131
 
84
- alias capture capture_high
85
132
 
86
133
  private
87
-
134
+
135
+ def button_setup(external: nil)
136
+
137
+ self.watch do |state|
138
+
139
+ name = state.to_i == 1 ? :on_keydown : :on_keyup
140
+ external.method(name).call
141
+
142
+ puts Time.now.to_s + ': ' + state.to_s if @verbose
143
+
144
+ yield state if block_given?
145
+
146
+ end
147
+
148
+ end
88
149
 
89
150
  def setup()
90
151
 
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rpi_pinin_msgout
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
@@ -93,6 +93,46 @@ dependencies:
93
93
  - - ">="
94
94
  - !ruby/object:Gem::Version
95
95
  version: 0.10.6
96
+ - !ruby/object:Gem::Dependency
97
+ name: morsecode
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '0.2'
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: 0.2.0
106
+ type: :runtime
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: '0.2'
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: 0.2.0
116
+ - !ruby/object:Gem::Dependency
117
+ name: morsecode_listener
118
+ requirement: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '0.1'
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: 0.1.2
126
+ type: :runtime
127
+ prerelease: false
128
+ version_requirements: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: '0.1'
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: 0.1.2
96
136
  description:
97
137
  email: james@r0bertson.co.uk
98
138
  executables: []
metadata.gz.sig CHANGED
Binary file