meshtastic 0.0.29 → 0.0.31
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 +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