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 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.