meshtastic 0.0.12 → 0.0.13
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/Gemfile +1 -1
- data/lib/meshtastic/mqtt.rb +56 -41
- data/lib/meshtastic/version.rb +1 -1
- metadata +2 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3526ab71260935428991ee992ab7f28de3b0cfb3f94dea2849654eaa15aa924d
|
|
4
|
+
data.tar.gz: 878a6a3c9e051296f6fecf3719748bc1171e369ca4ae63b910ab2417494ca0c5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1826305d9e558ad177c438378b43d67b9736f0113e826f04e1d0f2a2579f185a09a2a45f4525494a92a3199eb716e1a3a8754ae76958b5e639a11bc0737256a4
|
|
7
|
+
data.tar.gz: 6eea890ed77dea25e1c7bd303d5ad4ba4bbda641e64435fd9e8603062bee5511e085797dde5813a36b1fcd79976a28788c2e4ec36d4f46200eddc8a0548a82d3
|
data/Gemfile
CHANGED
|
@@ -16,7 +16,7 @@ gem 'bundler', '>=2.5.3'
|
|
|
16
16
|
gem 'bundle-audit', '0.1.0'
|
|
17
17
|
gem 'geocoder', '1.8.2'
|
|
18
18
|
gem 'google-protobuf', '3.21.12'
|
|
19
|
-
gem 'google-protobuf-z', '3.5.1'
|
|
19
|
+
# gem 'google-protobuf-z', '3.5.1'
|
|
20
20
|
gem 'mqtt', '0.6.0'
|
|
21
21
|
gem 'rake', '13.2.1'
|
|
22
22
|
gem 'rdoc', '6.6.3.1'
|
data/lib/meshtastic/mqtt.rb
CHANGED
|
@@ -78,20 +78,31 @@ module Meshtastic
|
|
|
78
78
|
|
|
79
79
|
# cipher = OpenSSL::Cipher.new('AES-256-CTR')
|
|
80
80
|
cipher = OpenSSL::Cipher.new('AES-128-CTR')
|
|
81
|
-
mqtt_obj.get_packet do |
|
|
82
|
-
|
|
83
|
-
|
|
81
|
+
mqtt_obj.get_packet do |packet_bytes|
|
|
82
|
+
# puts "Packet Bytes: #{packet_bytes.public_methods}"
|
|
83
|
+
raw_packet = packet_bytes.to_s.b
|
|
84
|
+
raw_packet_len = raw_packet.to_s.b.length
|
|
85
|
+
raw_topic = packet_bytes.topic
|
|
86
|
+
raw_payload = packet_bytes.payload
|
|
87
|
+
raw_payload_len = raw_payload.length
|
|
88
|
+
|
|
84
89
|
begin
|
|
85
90
|
puts '-' * 80
|
|
86
91
|
|
|
92
|
+
payload = {}
|
|
87
93
|
if json
|
|
88
|
-
|
|
89
|
-
payload = Meshtastic::ServiceEnvelope.json_decode(
|
|
90
|
-
map_report = Meshtastic::MapReport.json_decode(
|
|
94
|
+
json_payload = JSON.parse(raw_payload, symbolize_names: true)
|
|
95
|
+
payload = Meshtastic::ServiceEnvelope.json_decode(json_payload)
|
|
96
|
+
map_report = Meshtastic::MapReport.json_decode(json_payload)
|
|
91
97
|
else
|
|
92
|
-
|
|
93
|
-
payload =
|
|
94
|
-
|
|
98
|
+
svc_envl= Meshtastic::ServiceEnvelope.decode(raw_payload)
|
|
99
|
+
payload = svc_envl.to_h[:packet]
|
|
100
|
+
# puts "STILL GOOD: #{payload.inspect}"
|
|
101
|
+
# puts "Public Methods: #{Meshtastic::MapReport.public_methods}"
|
|
102
|
+
# puts "Public Methods: #{Meshtastic::MapReport.class}"
|
|
103
|
+
# map_report_decode = Meshtastic::MapReport.decode(raw_payload)
|
|
104
|
+
# map_report = map_report_decode.to_h
|
|
105
|
+
# puts "STILL GOOD: #{map_report.inspect}"
|
|
95
106
|
end
|
|
96
107
|
|
|
97
108
|
puts "*** MESSAGE ***"
|
|
@@ -103,8 +114,7 @@ module Meshtastic
|
|
|
103
114
|
puts "Channel: #{channel}"
|
|
104
115
|
packet_id = payload[:id]
|
|
105
116
|
puts "Packet ID: #{packet_id}"
|
|
106
|
-
|
|
107
|
-
puts "\nTopic: #{topic}"
|
|
117
|
+
puts "\nTopic: #{raw_topic}"
|
|
108
118
|
|
|
109
119
|
decoded_payload = payload[:decoded]
|
|
110
120
|
if decoded_payload
|
|
@@ -149,44 +159,49 @@ module Meshtastic
|
|
|
149
159
|
end
|
|
150
160
|
puts '*' * 20
|
|
151
161
|
|
|
152
|
-
map_long_name = map_report[:long_name].b
|
|
153
|
-
puts "\n*** MAP STATS ***"
|
|
154
|
-
puts "Map Long Name: #{map_long_name.inspect}"
|
|
155
|
-
map_short_name = map_report[:short_name]
|
|
156
|
-
puts "Map Short Name: #{map_short_name}"
|
|
157
|
-
role = map_report[:role]
|
|
158
|
-
puts "Role: #{role}"
|
|
159
|
-
hw_model = map_report[:hw_model]
|
|
160
|
-
puts "Hardware Model: #{hw_model}"
|
|
161
|
-
firmware_version = map_report[:firmware_version]
|
|
162
|
-
puts "Firmware Version: #{firmware_version}"
|
|
163
|
-
region = map_report[:region]
|
|
164
|
-
puts "Region: #{region}"
|
|
165
|
-
modem_preset = map_report[:modem_preset]
|
|
166
|
-
puts "Modem Preset: #{modem_preset}"
|
|
167
|
-
has_default_channel = map_report[:has_default_channel]
|
|
168
|
-
puts "Has Default Channel: #{has_default_channel}"
|
|
169
|
-
latitiude_i = map_report[:latitude_i]
|
|
170
|
-
puts "Latitude: #{latitiude_i}"
|
|
171
|
-
longitude_i = map_report[:longitude_i]
|
|
172
|
-
puts "Longitude: #{longitude_i}"
|
|
173
|
-
altitude = map_report[:altitude]
|
|
174
|
-
puts "Altitude: #{altitude}"
|
|
175
|
-
position_precision = map_report[:position_precision]
|
|
176
|
-
puts "Position Precision: #{position_precision}"
|
|
177
|
-
num_online_local_nodes = map_report[:num_online_local_nodes]
|
|
178
|
-
puts "Number of Online Local Nodes: #{num_online_local_nodes}"
|
|
179
|
-
puts '*' * 20
|
|
162
|
+
# map_long_name = map_report[:long_name].b
|
|
163
|
+
# puts "\n*** MAP STATS ***"
|
|
164
|
+
# puts "Map Long Name: #{map_long_name.inspect}"
|
|
165
|
+
# map_short_name = map_report[:short_name]
|
|
166
|
+
# puts "Map Short Name: #{map_short_name}"
|
|
167
|
+
# role = map_report[:role]
|
|
168
|
+
# puts "Role: #{role}"
|
|
169
|
+
# hw_model = map_report[:hw_model]
|
|
170
|
+
# puts "Hardware Model: #{hw_model}"
|
|
171
|
+
# firmware_version = map_report[:firmware_version]
|
|
172
|
+
# puts "Firmware Version: #{firmware_version}"
|
|
173
|
+
# region = map_report[:region]
|
|
174
|
+
# puts "Region: #{region}"
|
|
175
|
+
# modem_preset = map_report[:modem_preset]
|
|
176
|
+
# puts "Modem Preset: #{modem_preset}"
|
|
177
|
+
# has_default_channel = map_report[:has_default_channel]
|
|
178
|
+
# puts "Has Default Channel: #{has_default_channel}"
|
|
179
|
+
# latitiude_i = map_report[:latitude_i]
|
|
180
|
+
# puts "Latitude: #{latitiude_i}"
|
|
181
|
+
# longitude_i = map_report[:longitude_i]
|
|
182
|
+
# puts "Longitude: #{longitude_i}"
|
|
183
|
+
# altitude = map_report[:altitude]
|
|
184
|
+
# puts "Altitude: #{altitude}"
|
|
185
|
+
# position_precision = map_report[:position_precision]
|
|
186
|
+
# puts "Position Precision: #{position_precision}"
|
|
187
|
+
# num_online_local_nodes = map_report[:num_online_local_nodes]
|
|
188
|
+
# puts "Number of Online Local Nodes: #{num_online_local_nodes}"
|
|
189
|
+
# puts '*' * 20
|
|
180
190
|
|
|
181
191
|
puts "\n*** PACKET DEBUGGING ***"
|
|
182
192
|
puts "Payload: #{payload.inspect}"
|
|
183
|
-
puts "\nMap Report: #{map_report.inspect}"
|
|
193
|
+
# puts "\nMap Report: #{map_report.inspect}"
|
|
184
194
|
puts "\nRaw Packet: #{raw_packet.inspect}"
|
|
185
195
|
puts "Length: #{raw_packet_len}"
|
|
186
196
|
puts '*' * 20
|
|
187
|
-
rescue Google::Protobuf::ParseError
|
|
197
|
+
rescue Google::Protobuf::ParseError => e
|
|
198
|
+
puts "ERROR: #{e.inspect}"
|
|
199
|
+
puts "\n*** PACKET DEBUGGING ***"
|
|
200
|
+
puts "Payload: #{payload.inspect}"
|
|
201
|
+
# puts "\nMap Report: #{map_report.inspect}"
|
|
188
202
|
puts "\nRaw Packet: #{raw_packet.inspect}"
|
|
189
203
|
puts "Length: #{raw_packet_len}"
|
|
204
|
+
puts '*' * 20
|
|
190
205
|
next
|
|
191
206
|
ensure
|
|
192
207
|
puts '-' * 80
|
data/lib/meshtastic/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: meshtastic
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.13
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- 0day Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-04-
|
|
11
|
+
date: 2024-04-26 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: brakeman
|
|
@@ -80,20 +80,6 @@ dependencies:
|
|
|
80
80
|
- - '='
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: 3.21.12
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: google-protobuf-z
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
-
requirements:
|
|
87
|
-
- - '='
|
|
88
|
-
- !ruby/object:Gem::Version
|
|
89
|
-
version: 3.5.1
|
|
90
|
-
type: :runtime
|
|
91
|
-
prerelease: false
|
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
-
requirements:
|
|
94
|
-
- - '='
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: 3.5.1
|
|
97
83
|
- !ruby/object:Gem::Dependency
|
|
98
84
|
name: mqtt
|
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|