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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 53abe45ca69e2d962a54c1a6b7253cb0d1b9ccbac50cb17732d35c27171833f5
4
- data.tar.gz: 3b394df70c866f209cdc723f888b80eaca04d99169db197ba2c5f0d2116917c0
3
+ metadata.gz: c29f11f50b242a0557b383c1fb5d0302b65369875a3b7bf6850e2b4d18d37024
4
+ data.tar.gz: 8d6592149ce03f4dec19924c2c23fcae0d15a80acd44d565f9fec9c3f6565e88
5
5
  SHA512:
6
- metadata.gz: a9230cc0e5170ba34f11a743533fefeeb2cdfb7a1441cab4246e3b2b822569ed1c680a999859dbb2ec0097c5e040fe1efc85f0087f642bc473d85961e6ac3f0f
7
- data.tar.gz: a019b8ccd299fe271ebe984b95de20b90f295df7aab24c773cd18b2bd6554526371db230aa274221a0f96f67192c301de91ce56e4f7b0b6a1bfbb53429ed3ecd
6
+ metadata.gz: 2d9d04eee129e4ae7079c4c4797ec258748424beec4f144c9a7a722f537c9e9eed4d1c2ac11c26df73cc51be7ca1548e28982cac59494507a18be51fb2bf270c
7
+ data.tar.gz: 2786119cf83aac960dc378c8c86f776254057e6e2968436f818fe568fa91495e3df5824003868904d6442a2a5573d41c1a9ee70d753f61eebb665f6bd476c8f0
@@ -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
- # when :DETECTION_SENSOR_APP
141
- # pb_obj = Meshtastic::DetectionSensor.decode(payload)
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
- message[:decoded][:payload] = pb_obj.to_h
184
- # when :TEXT_MESSAGE_APP
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
- message[:decoded][:payload] = pb_obj.to_h
192
- # when :TRACEROUTE_APP
193
- # pb_obj = Meshtastic::Traceroute.decode(payload)
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(
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Meshtastic
4
- VERSION = '0.0.29'
4
+ VERSION = '0.0.31'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: meshtastic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.29
4
+ version: 0.0.31
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.