meshtastic 0.0.29 → 0.0.31
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/meshtastic/mqtt.rb +28 -25
- data/lib/meshtastic/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c29f11f50b242a0557b383c1fb5d0302b65369875a3b7bf6850e2b4d18d37024
|
4
|
+
data.tar.gz: 8d6592149ce03f4dec19924c2c23fcae0d15a80acd44d565f9fec9c3f6565e88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d9d04eee129e4ae7079c4c4797ec258748424beec4f144c9a7a722f537c9e9eed4d1c2ac11c26df73cc51be7ca1548e28982cac59494507a18be51fb2bf270c
|
7
|
+
data.tar.gz: 2786119cf83aac960dc378c8c86f776254057e6e2968436f818fe568fa91495e3df5824003868904d6442a2a5573d41c1a9ee70d753f61eebb665f6bd476c8f0
|
data/lib/meshtastic/mqtt.rb
CHANGED
@@ -51,7 +51,8 @@ module Meshtastic
|
|
51
51
|
# psk: 'optional - channel pre-shared key (default: AQ==)',
|
52
52
|
# qos: 'optional - quality of service (default: 0)',
|
53
53
|
# json: 'optional - JSON output (default: false)',
|
54
|
-
# filter: 'optional - comma-delimited string(s) to filter on in message (default: nil)'
|
54
|
+
# filter: 'optional - comma-delimited string(s) to filter on in message (default: nil)',
|
55
|
+
# gps_metadata: 'optional - include GPS metadata in output (default: false)'
|
55
56
|
# )
|
56
57
|
|
57
58
|
public_class_method def self.subscribe(opts = {})
|
@@ -63,6 +64,7 @@ module Meshtastic
|
|
63
64
|
qos = opts[:qos] ||= 0
|
64
65
|
json = opts[:json] ||= false
|
65
66
|
filter = opts[:filter]
|
67
|
+
gps_metadata = opts[:gps_metadata] ||= false
|
66
68
|
|
67
69
|
# TODO: Find JSON URI for this
|
68
70
|
full_topic = "#{root_topic}/#{region}/2/json/#{channel}/#" if json
|
@@ -131,77 +133,77 @@ module Meshtastic
|
|
131
133
|
case msg_type
|
132
134
|
when :ADMIN_APP
|
133
135
|
pb_obj = Meshtastic::AdminMessage.decode(payload)
|
134
|
-
message[:decoded][:payload] = pb_obj.to_h
|
135
136
|
when :ATAK_FORWARDER, :ATAK_PLUGIN
|
136
137
|
pb_obj = Meshtastic::TAKPacket.decode(payload)
|
137
|
-
message[:decoded][:payload] = pb_obj.to_h
|
138
138
|
# when :AUDIO_APP
|
139
139
|
# pb_obj = Meshtastic::Audio.decode(payload)
|
140
|
-
|
141
|
-
|
140
|
+
when :DETECTION_SENSOR_APP
|
141
|
+
pb_obj = Meshtastic::DeviceState.decode(payload)
|
142
142
|
# when :IP_TUNNEL_APP
|
143
143
|
# pb_obj = Meshtastic::IpTunnel.decode(payload)
|
144
144
|
when :MAP_REPORT_APP
|
145
145
|
pb_obj = Meshtastic::MapReport.decode(payload)
|
146
|
-
message[:decoded][:payload] = pb_obj.to_h
|
147
146
|
# when :MAX
|
148
147
|
# pb_obj = Meshtastic::Max.decode(payload)
|
149
148
|
when :NEIGHBORINFO_APP
|
150
149
|
pb_obj = Meshtastic::NeighborInfo.decode(payload)
|
151
|
-
message[:decoded][:payload] = pb_obj.to_h
|
152
150
|
when :NODEINFO_APP
|
153
151
|
pb_obj = Meshtastic::NodeInfo.decode(payload)
|
154
|
-
message[:decoded][:payload] = pb_obj.to_h
|
155
152
|
when :PAXCOUNTER_APP
|
156
153
|
pb_obj = Meshtastic::Paxcount.decode(payload)
|
157
|
-
message[:decoded][:payload] = pb_obj.to_h
|
158
154
|
when :POSITION_APP
|
159
155
|
pb_obj = Meshtastic::Position.decode(payload)
|
160
|
-
message[:decoded][:payload] = pb_obj.to_h
|
161
|
-
latitude = pb_obj.to_h[:latitude_i] * 0.0000001
|
162
|
-
longitude = pb_obj.to_h[:longitude_i] * 0.0000001
|
163
|
-
message[:decoded][:payload][:gps_metadata] = gps_search(lat: latitude, lon: longitude).first.data
|
164
156
|
# when :PRIVATE_APP
|
165
157
|
# pb_obj = Meshtastic::Private.decode(payload)
|
166
158
|
# when :RANGE_TEST_APP
|
167
159
|
# pb_obj = Meshtastic::RangeTest.decode(payload)
|
168
160
|
when :REMOTE_HARDWARE_APP
|
169
161
|
pb_obj = Meshtastic::HardwareMessage.decode(payload)
|
170
|
-
message[:decoded][:payload] = pb_obj.to_h
|
171
162
|
# when :REPLY_APP
|
172
163
|
# pb_obj = Meshtastic::Reply.decode(payload)
|
173
164
|
when :ROUTING_APP
|
174
165
|
pb_obj = Meshtastic::Routing.decode(payload)
|
175
|
-
message[:decoded][:payload] = pb_obj.to_h
|
176
166
|
when :SERIAL_APP
|
177
167
|
pb_obj = Meshtastic::SerialConnectionStatus.decode(payload)
|
178
|
-
message[:decoded][:payload] = pb_obj.to_h
|
179
168
|
# when :SIMULATOR_APP
|
180
169
|
# pb_obj = Meshtastic::Simulator.decode(payload)
|
181
170
|
when :STORE_FORWARD_APP
|
182
171
|
pb_obj = Meshtastic::StoreAndForward.decode(payload)
|
183
|
-
|
184
|
-
|
185
|
-
# pb_obj = Meshtastic::TextMessage.decode(payload)
|
172
|
+
when :TEXT_MESSAGE_APP
|
173
|
+
pb_obj = Meshtastic::MqttClientProxyMessage.decode(payload)
|
186
174
|
when :TEXT_MESSAGE_COMPRESSED_APP
|
187
175
|
pb_obj = Meshtastic::Compressed.decode(payload)
|
188
|
-
message[:decoded][:payload] = pb_obj.to_h
|
189
176
|
when :TELEMETRY_APP
|
190
177
|
pb_obj = Meshtastic::Telemetry.decode(payload)
|
191
|
-
|
192
|
-
|
193
|
-
#
|
178
|
+
when :TRACEROUTE_APP
|
179
|
+
pb_obj = Meshtastic::RouteDiscovery.decode(payload)
|
180
|
+
# message[:decoded][:payload] = pb_obj.to_h
|
181
|
+
# pb_obj.to_h[:route].each_with_index do |route, index|
|
182
|
+
# message[:decoded][:payload][:route][index] = route.to_s(16)
|
183
|
+
# end
|
194
184
|
# when :UNKNOWN_APP
|
195
185
|
# pb_obj = Meshtastic.Unknown.decode(payload)
|
196
186
|
when :WAYPOINT_APP
|
197
187
|
pb_obj = Meshtastic::Waypoint.decode(payload)
|
198
|
-
message[:decoded][:payload] = pb_obj.to_h
|
199
188
|
# when :ZPS_APP
|
200
189
|
# pb_obj = Meshtastic::Zps.decode(payload)
|
201
190
|
else
|
202
191
|
puts "WARNING: Unknown message type: #{msg_type}"
|
203
192
|
end
|
204
193
|
# Overwrite the payload with the decoded protobuf object
|
194
|
+
# message[:decoded][:payload] = pb_obj.to_h unless msg_type == :TRACEROUTE_APP
|
195
|
+
message[:decoded][:payload] = pb_obj.to_h
|
196
|
+
if message[:decoded][:payload].keys.include?(:latitude_i) &&
|
197
|
+
message[:decoded][:payload].keys.include?(:longitude_i) &&
|
198
|
+
gps_metadata
|
199
|
+
|
200
|
+
latitude = pb_obj.to_h[:latitude_i] * 0.0000001
|
201
|
+
longitude = pb_obj.to_h[:longitude_i] * 0.0000001
|
202
|
+
message[:decoded][:payload][:gps_metadata] = gps_search(
|
203
|
+
lat: latitude,
|
204
|
+
lon: longitude
|
205
|
+
).first.data
|
206
|
+
end
|
205
207
|
# puts pb_obj.public_methods
|
206
208
|
# message[:decoded][:pb_obj] = pb_obj
|
207
209
|
end
|
@@ -302,7 +304,8 @@ module Meshtastic
|
|
302
304
|
psk: 'optional - channel pre-shared key (default: AQ==)',
|
303
305
|
qos: 'optional - quality of service (default: 0)',
|
304
306
|
json: 'optional - JSON output (default: false)',
|
305
|
-
filter: 'optional - comma-delimited string(s) to filter on in message (default: nil)'
|
307
|
+
filter: 'optional - comma-delimited string(s) to filter on in message (default: nil)',
|
308
|
+
gps_metadata: 'optional - include GPS metadata in output (default: false)'
|
306
309
|
)
|
307
310
|
|
308
311
|
#{self}.gps_search(
|
data/lib/meshtastic/version.rb
CHANGED