humble_rpi 0.6.1 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8a7cdf168cfe069f81a5905ed688855dd1357b8c
4
- data.tar.gz: 1a62569750a6aa71097ccb3187199a554c5496de
3
+ metadata.gz: 5ffdfa5b1856d9b677acaa738dc04e241b65f5fc
4
+ data.tar.gz: b288e9256b2ad0772acabe3a1ab2755ababf2024
5
5
  SHA512:
6
- metadata.gz: 58c9a4645888c7102748d9e8ab6fbcd105f43e1f0147339bde3b4ad3a92055e2666bcae87f397fbe20febd3a771b50af4a5cb9cd0bc4a43c733721e3bf41f20b
7
- data.tar.gz: f57d6ce257df9fef5380f321c415760bdaa7fa94a9b0176472282c0123e5df77e8de1b3cf9597082d776b0f6e24cd0f49801f45f4b9cca1e57b667a1b5060945
6
+ metadata.gz: 0529c2c23c93ad08118d894f75afd8e0fcc1a7bb27daa00d4cf5f187ab90aa03caa7f53e895daa15a5fec4ee8dd1c92d4dc1094a9e8bf46cef20bed7b8d4475b
7
+ data.tar.gz: a44c927c22c111d1b5208ac3d0c73e35527dffbcb8f5d60a52ada5cbe5fa664e269bf8ff8ba9992b5ead31bae3e5c349888fadbf636fab5830f0338c9d166efb
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/humble_rpi.rb CHANGED
@@ -15,36 +15,37 @@ class DummyNotifier
15
15
 
16
16
  end
17
17
 
18
- class HumbleRPi
18
+ class HumbleRPi
19
19
 
20
20
  def initialize(device_name: 'rpi', sps_address: nil, sps_port: 59000, \
21
- plugins: {})
21
+ plugins: {}, group_id: 'root')
22
22
 
23
23
  @device_name, @sps_address, @sps_port = device_name, sps_address, sps_port
24
+ @group_id = group_id
24
25
 
25
26
  @publisher, @subscriber = sps_address ? initialize_sps() \
26
27
  : [DummyNotifier.new, nil]
27
28
 
28
29
  @plugins = initialize_plugins(plugins || [])
29
-
30
+
30
31
  end
31
32
 
32
33
  # triggered from a sps-sub callback
33
34
  #
34
35
  def ontopic(topic, msg)
35
-
36
+
36
37
  component = topic[/\w+$/]
37
-
38
+
38
39
  method_name = "on_#{component}_message".to_sym
39
-
40
+
40
41
  @plugins.each do |x|
41
-
42
- if x.respond_to? method_name then
43
- x.method(method_name).call(msg)
42
+
43
+ if x.respond_to? method_name then
44
+ x.method(method_name).call(msg)
44
45
  end
45
-
46
+
46
47
  end
47
- end
48
+ end
48
49
 
49
50
  def start()
50
51
 
@@ -56,15 +57,18 @@ class HumbleRPi
56
57
  end
57
58
 
58
59
  if @subscriber then
59
-
60
- Thread.new do
60
+
61
+ Thread.new do
61
62
  sp = SPSSubPing.new host: @sps_address, port: @sps_port, \
62
- identifier: 'HumbleRPi/' + @device_name
63
+ identifier: "HumbleRPi/%s/%s" % [@group_id, @device_name]
63
64
  sp.start
64
65
  end
65
-
66
- topic = "#{@device_name}/output/#"
67
- @subscriber.subscribe topic: topic
66
+
67
+ subtopics = %w(output do)
68
+ topics = subtopics\
69
+ .map {|x| "HumbleRPi/%s/%s/%s/#" % [@group_id, @device_name, x]}\
70
+ .join(' | ')
71
+ @subscriber.subscribe topic: topics
68
72
 
69
73
  else
70
74
  loop while true
@@ -72,15 +76,16 @@ class HumbleRPi
72
76
 
73
77
  end
74
78
 
75
-
79
+
76
80
  private
77
-
81
+
78
82
  def initialize_sps()
79
-
83
+
80
84
  publisher = SPSPub.new address: @sps_address, port: @sps_port
81
- publisher.notice @device_name + '/info: humble_rpi initialized'
82
- subscriber = SPSSub.new address: @sps_address, port: @sps_port, callback: self
83
-
85
+ publisher.notice "HumbleRPi/%s/%s/info: initialized" \
86
+ % [@group_id, @device_name]
87
+ subscriber = SPSSub.new address: @sps_address, port: @sps_port,\
88
+ callback: self
84
89
  [publisher, subscriber]
85
90
 
86
91
  end
@@ -93,10 +98,12 @@ class HumbleRPi
93
98
  return r if settings[:active] == false and !settings[:active]
94
99
 
95
100
  klass_name = 'HumbleRPiPlugin' + name.to_s
96
-
97
- vars = {device_id: @device_name, notifier: @publisher}
98
101
 
99
- r << Kernel.const_get(klass_name).new(settings: settings, variables: vars)
102
+ device_id = "HumbleRPi/%s/%s" % [@group_id, @device_name]
103
+ vars = {device_id: device_id, notifier: @publisher}
104
+
105
+ r << Kernel.const_get(klass_name)\
106
+ .new(settings: settings, variables: vars)
100
107
 
101
108
  end
102
109
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: humble_rpi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -31,7 +31,7 @@ cert_chain:
31
31
  999CZL08Zqxa+1DKwhW/XqeiQ9eIZ+1fLAK+XbAKgv6ghNYEPtZLUFiD73uUbsKd
32
32
  sBqeV1LF1yKYmA==
33
33
  -----END CERTIFICATE-----
34
- date: 2015-06-22 00:00:00.000000000 Z
34
+ date: 2015-06-27 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: sps-pub
metadata.gz.sig CHANGED
Binary file