meshtastic 0.0.34 → 0.0.36

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: 8bc079b846550e65c15013b3926d0680fbbb77e393484b2c001cd9ad95777f00
4
- data.tar.gz: 47cde9a565ac4815bbeccf179269e1be1c982c107774b2790b3a7a2bd4cf883c
3
+ metadata.gz: a1557d6c023667935647acdf7bb90c4d1613bf048a1907b522849fb9f3a3c5d1
4
+ data.tar.gz: a26600a5afd502eeb0a7efe99c9df4cddf8f41635d1d53414f8d4a7d59c036f3
5
5
  SHA512:
6
- metadata.gz: 1b864230b6ab3db1c78955be811421ae7910cdbfeb962483a2b9c1afa7e9a7ec170e0eb1aae5f05c5f94049c7b122cfe9e8f719deb1c98d6b308d5b8ad3568a7
7
- data.tar.gz: 8b5ab00dab82fdd351c9c7634765a121c316dfd1f0fb9dc319ab451073986d8c1a822cc95f421accd36db42a6e0c2ced4610f49a305692e667061ecc8b43f15e
6
+ metadata.gz: 38f3941863fb6a984f0ea93e170435fdf9d6c9ff648b7b779cb476daf7c4d3e6fdae2c17ac1b28207a5e7a36088cf3eb9630478304059350a6edc9163538eb19
7
+ data.tar.gz: 356331a1d7daf23a56359108cf469e059fb5671660a8cea817b21ada22253e400e8879cc74cc0ff4197a0240c47f5416783d84cadba37374c7f4c823e947340d
@@ -86,21 +86,24 @@ module Meshtastic
86
86
  cipher = OpenSSL::Cipher.new('AES-128-CTR')
87
87
  filter_arr = filter.to_s.split(',').map(&:strip)
88
88
  mqtt_obj.get_packet do |packet_bytes|
89
- raw_packet = packet_bytes.to_s.b
89
+ # raw_packet = packet_bytes.to_s.b
90
90
  raw_topic = packet_bytes.topic ||= ''
91
- raw_message = packet_bytes.payload
91
+ raw_payload = packet_bytes.payload
92
92
 
93
93
  begin
94
94
  disp = false
95
+ decoded_payload_hash = {}
95
96
  message = {}
96
97
  stdout_message = ''
97
98
 
98
99
  if json
99
- message = JSON.parse(raw_message, symbolize_names: true)
100
+ decoded_payload_hash = JSON.parse(raw_payload, symbolize_names: true)
100
101
  else
101
- decoded_packet = Meshtastic::ServiceEnvelope.decode(raw_message)
102
- message = decoded_packet.to_h[:packet]
102
+ decoded_payload = Meshtastic::ServiceEnvelope.decode(raw_payload)
103
+ decoded_payload_hash = decoded_payload.to_h
103
104
  end
105
+
106
+ message = decoded_payload_hash[:packet] if decoded_payload_hash.keys.include?(:packet)
104
107
  message[:topic] = raw_topic
105
108
  message[:node_id_from] = "!#{message[:from].to_i.to_s(16)}"
106
109
  message[:node_id_to] = "!#{message[:to].to_i.to_s(16)}"
@@ -123,6 +126,8 @@ module Meshtastic
123
126
 
124
127
  decrypted = cipher.update(encrypted_message) + cipher.final
125
128
  message[:decrypted] = decrypted
129
+ # decoded_packet = Meshtastic::ServiceEnvelope.decode(decrypted)
130
+ # puts "Decoded Decrypted Packet: #{decoded_packet.display.to_h}"
126
131
  # Vvv Decode the decrypted message vvV
127
132
  end
128
133
 
@@ -175,7 +180,8 @@ module Meshtastic
175
180
  pb_obj = Meshtastic::StoreAndForward.decode(payload)
176
181
  when :TEXT_MESSAGE_APP
177
182
  # Unsure if this is the correct protobuf object
178
- pb_obj = Meshtastic::MqttClientProxyMessage.decode(payload)
183
+ # pb_obj = Meshtastic::MqttClientProxyMessage.decode(payload)
184
+ pb_obj = Meshtastic::Data.decode(payload)
179
185
  when :TELEMETRY_APP
180
186
  pb_obj = Meshtastic::Telemetry.decode(payload)
181
187
  when :TRACEROUTE_APP
@@ -214,23 +220,32 @@ module Meshtastic
214
220
  # message[:decoded][:pb_obj] = pb_obj
215
221
  end
216
222
 
223
+ # message[:raw_packet] = raw_packet if block_given?
224
+ decoded_payload_hash[:packet] = message
225
+ unless block_given?
226
+ message[:stdout] = 'pretty'
227
+ stdout_message = JSON.pretty_generate(decoded_payload_hash)
228
+ end
229
+ rescue Google::Protobuf::ParseError,
230
+ JSON::GeneratorError
231
+
232
+ decoded_payload_hash[:packet] = message
233
+ unless block_given?
234
+ message[:stdout] = 'inspect'
235
+ stdout_message = decoded_payload_hash.inspect
236
+ end
237
+
238
+ next
239
+ ensure
217
240
  filter_arr = [message[:id].to_s] if filter.nil?
218
241
  flat_message = message.values.join(' ')
219
242
 
220
243
  disp = true if filter_arr.first == message[:id] ||
221
244
  filter_arr.all? { |filter| flat_message.include?(filter) }
222
245
 
223
- message[:raw_packet] = raw_packet if block_given?
224
- stdout_message = JSON.pretty_generate(message) unless block_given?
225
- rescue Google::Protobuf::ParseError,
226
- JSON::GeneratorError
227
-
228
- stdout_message = message.inspect unless block_given?
229
- next
230
- ensure
231
246
  if disp
232
247
  if block_given?
233
- yield message
248
+ yield decoded_payload_hash
234
249
  else
235
250
  puts "\n"
236
251
  puts '-' * 80
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Meshtastic
4
- VERSION = '0.0.34'
4
+ VERSION = '0.0.36'
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.34
4
+ version: 0.0.36
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.