meshtastic 0.0.143 → 0.0.145
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/.github/workflows/main.yml +27 -0
- data/.gitignore +29 -0
- data/.rubocop.yml +35 -0
- data/.rubocop_todo.yml +134 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/AUTOGEN_meshtastic_protobufs.sh +28 -0
- data/CHANGELOG_BETWEEN_TAGS.txt +196 -0
- data/CODE_OF_CONDUCT.md +84 -0
- data/Gemfile +23 -0
- data/LICENSE +21 -0
- data/README.md +106 -0
- data/Rakefile +21 -0
- data/bin/meshtastic_autoinc_version +38 -0
- data/build_meshtastic_gem.sh +58 -0
- data/git_commit.sh +29 -0
- data/lib/meshtastic/admin.rb +24 -0
- data/lib/meshtastic/admin_pb.rb +31 -0
- data/lib/meshtastic/apponly.rb +24 -0
- data/lib/meshtastic/apponly_pb.rb +18 -0
- data/lib/meshtastic/atak.rb +24 -0
- data/lib/meshtastic/atak_pb.rb +22 -0
- data/lib/meshtastic/cannedmessages.rb +24 -0
- data/lib/meshtastic/cannedmessages_pb.rb +15 -0
- data/lib/meshtastic/channel.rb +24 -0
- data/lib/meshtastic/channel_pb.rb +18 -0
- data/lib/meshtastic/clientonly.rb +24 -0
- data/lib/meshtastic/clientonly_pb.rb +18 -0
- data/lib/meshtastic/config.rb +24 -0
- data/lib/meshtastic/config_pb.rb +42 -0
- data/lib/meshtastic/connection_status.rb +24 -0
- data/lib/meshtastic/connection_status_pb.rb +20 -0
- data/lib/meshtastic/device_ui_pb.rb +23 -0
- data/lib/meshtastic/deviceonly.rb +24 -0
- data/lib/meshtastic/deviceonly_pb.rb +28 -0
- data/lib/meshtastic/interdevice_pb.rb +17 -0
- data/lib/meshtastic/localonly.rb +24 -0
- data/lib/meshtastic/localonly_pb.rb +19 -0
- data/lib/meshtastic/mesh_interface.rb +596 -0
- data/lib/meshtastic/mesh_pb.rb +65 -0
- data/lib/meshtastic/module_config.rb +24 -0
- data/lib/meshtastic/module_config_pb.rb +36 -0
- data/lib/meshtastic/mqtt.rb +383 -0
- data/lib/meshtastic/mqtt_pb.rb +19 -0
- data/lib/meshtastic/paxcount.rb +24 -0
- data/lib/meshtastic/paxcount_pb.rb +15 -0
- data/lib/meshtastic/portnums.rb +24 -0
- data/lib/meshtastic/portnums_pb.rb +15 -0
- data/lib/meshtastic/powermon_pb.rb +18 -0
- data/lib/meshtastic/remote_hardware.rb +24 -0
- data/lib/meshtastic/remote_hardware_pb.rb +16 -0
- data/lib/meshtastic/rtttl.rb +24 -0
- data/lib/meshtastic/rtttl_pb.rb +15 -0
- data/lib/meshtastic/serial_interface.rb +550 -0
- data/lib/meshtastic/storeforward.rb +24 -0
- data/lib/meshtastic/storeforward_pb.rb +19 -0
- data/lib/meshtastic/stream_interface.rb +132 -0
- data/lib/meshtastic/telemetry.rb +24 -0
- data/lib/meshtastic/telemetry_pb.rb +24 -0
- data/lib/meshtastic/util.rb +70 -0
- data/lib/meshtastic/version.rb +5 -0
- data/lib/meshtastic/xmodem.rb +24 -0
- data/lib/meshtastic/xmodem_pb.rb +16 -0
- data/lib/meshtastic.rb +71 -0
- data/lib/nanopb_pb.rb +19 -0
- data/meshtastic.gemspec +73 -0
- data/reinstall_meshtastic_gemset.sh +29 -0
- data/sig/meshtastic.rbs +4 -0
- data/spec/lib/meshtastic/admin_pb_spec.rb +7 -0
- data/spec/lib/meshtastic/admin_spec.rb +6 -0
- data/spec/lib/meshtastic/apponly_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/apponly_spec.rb +6 -0
- data/spec/lib/meshtastic/atak_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/atak_spec.rb +6 -0
- data/spec/lib/meshtastic/cannedmessages_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/cannedmessages_spec.rb +6 -0
- data/spec/lib/meshtastic/channel_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/channel_spec.rb +6 -0
- data/spec/lib/meshtastic/clientonly_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/clientonly_spec.rb +6 -0
- data/spec/lib/meshtastic/config_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/config_spec.rb +6 -0
- data/spec/lib/meshtastic/connection_status_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/connection_status_spec.rb +6 -0
- data/spec/lib/meshtastic/device_ui_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/deviceonly_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/deviceonly_spec.rb +6 -0
- data/spec/lib/meshtastic/interdevice_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/localonly_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/localonly_spec.rb +6 -0
- data/spec/lib/meshtastic/mesh_interface_spec.rb +6 -0
- data/spec/lib/meshtastic/mesh_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/module_config_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/module_config_spec.rb +6 -0
- data/spec/lib/meshtastic/mqtt_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/mqtt_spec.rb +6 -0
- data/spec/lib/meshtastic/paxcount_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/paxcount_spec.rb +6 -0
- data/spec/lib/meshtastic/portnums_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/portnums_spec.rb +6 -0
- data/spec/lib/meshtastic/powermon_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/remote_hardware_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/remote_hardware_spec.rb +6 -0
- data/spec/lib/meshtastic/rtttl_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/rtttl_spec.rb +6 -0
- data/spec/lib/meshtastic/serial_interface_spec.rb +6 -0
- data/spec/lib/meshtastic/storeforward_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/storeforward_spec.rb +6 -0
- data/spec/lib/meshtastic/stream_interface_spec.rb +6 -0
- data/spec/lib/meshtastic/telemetry_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/telemetry_spec.rb +6 -0
- data/spec/lib/meshtastic/util_spec.rb +6 -0
- data/spec/lib/meshtastic/version_spec.rb +17 -0
- data/spec/lib/meshtastic/xmodem_pb_spec.rb +6 -0
- data/spec/lib/meshtastic/xmodem_spec.rb +6 -0
- data/spec/lib/meshtastic_spec.rb +6 -0
- data/spec/lib/nanopb_pb_spec.rb +6 -0
- data/spec/spec_helper.rb +3 -0
- data/upgrade_Gemfile_gems.sh +21 -0
- data/upgrade_gem.sh +4 -0
- data/upgrade_meshtastic.sh +13 -0
- data/upgrade_ruby.sh +45 -0
- metadata +126 -3
data/README.md
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# Meshtastic
|
|
2
|
+
|
|
3
|
+
Ruby gem for interfacing with Meshtastic nodes / network.
|
|
4
|
+
|
|
5
|
+
# Setting Expectations
|
|
6
|
+
|
|
7
|
+
This gem was created to support alt-comm capabilities w/in a security research framework known as [PWN](https://github.com/0dayInc/pwn). Contributors of this effort cannot guarantee full functionality or support for all Meshtastic features.
|
|
8
|
+
|
|
9
|
+
# Objectives
|
|
10
|
+
|
|
11
|
+
- Consume the latest [Meshtastic Protobof Specs](https://github.com/meshtastic/protobufs) and [auto-generate Ruby protobuf modules for Meshtastic](https://github.com/0dayInc/meshtastic/blob/master/AUTOGEN_meshtastic_protobufs.sh) using the `grpc_tools_ruby_protoc` command: `Complete`
|
|
12
|
+
- Integrate auto-generated Ruby protobuf modules into a working Ruby gem: `Complete`
|
|
13
|
+
- Scale out Meshtastic Ruby Modules for their respective protobufs within the meshtastic gem (e.g. Meshtastic::MQTTPB is auto-generated based on latest Meshtastic protobuf specs and extended via Meshtastic::MQTT for more MQTT interaction as desired): `Ongoing Effort`
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
Install the gem and add to the application's Gemfile by executing:
|
|
18
|
+
|
|
19
|
+
$ bundle add meshtastic
|
|
20
|
+
|
|
21
|
+
If bundler is not being used to manage dependencies, install the gem by executing:
|
|
22
|
+
|
|
23
|
+
$ gem install meshtastic
|
|
24
|
+
|
|
25
|
+
## Usage
|
|
26
|
+
|
|
27
|
+
At the moment the only module available is `Meshtastic::MQTT`. To view MQTT messages, and include only messages containing `_APP` _and_ `LongFast` strings, use the following code:
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
require 'meshtastic'
|
|
31
|
+
Meshtastic::MQTT.help
|
|
32
|
+
mqtt_obj = Meshastic::MQTT.connect
|
|
33
|
+
puts mqtt_obj.inspect
|
|
34
|
+
Meshtastic::MQTT.subscribe(
|
|
35
|
+
mqtt_obj: mqtt_obj,
|
|
36
|
+
include: '_APP, LongFast'
|
|
37
|
+
)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
This code will dump the contents of every message:
|
|
41
|
+
|
|
42
|
+
```ruby
|
|
43
|
+
require 'meshtastic'
|
|
44
|
+
mqtt_obj = Meshastic::MQTT.connect
|
|
45
|
+
Meshtastic::MQTT.subscribe(
|
|
46
|
+
mqtt_obj: mqtt_obj,
|
|
47
|
+
root_topic: 'msh',
|
|
48
|
+
region: 'US',
|
|
49
|
+
topic: '2/e/LongFast/#',
|
|
50
|
+
psks: { LongFast: 'AQ==' }
|
|
51
|
+
) do |message|
|
|
52
|
+
puts message.inspect
|
|
53
|
+
end
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Sending a message over MQTT:
|
|
57
|
+
|
|
58
|
+
```ruby
|
|
59
|
+
require 'meshtastic'
|
|
60
|
+
mqtt_obj = Meshastic::MQTT.connect
|
|
61
|
+
client_id = "!#{mqtt_obj.client_id}"
|
|
62
|
+
Meshtastic::MQTT.send_text(
|
|
63
|
+
mqtt_obj: mqtt_obj,
|
|
64
|
+
from: client_id,
|
|
65
|
+
to: '!ffffffff',
|
|
66
|
+
root_topic: 'msh',
|
|
67
|
+
region: 'US',
|
|
68
|
+
topic: '2/e/LongFast/#',
|
|
69
|
+
channel: 93,
|
|
70
|
+
text: 'Hello, World!',
|
|
71
|
+
psks: { LongFast: 'AQ==' }
|
|
72
|
+
)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
One of the "gotchas" when sending messages is ensuring you're sending over the proper integer for the `channel` parameter. The best way to determine the proper `channel` value is by sending a test message from within the meshtastic app and then viewing the MQTT message similar to the following:
|
|
76
|
+
|
|
77
|
+
```ruby
|
|
78
|
+
require 'meshtastic'
|
|
79
|
+
mqtt_obj = Meshastic::MQTT.connect
|
|
80
|
+
Meshtastic::MQTT.subscribe(
|
|
81
|
+
mqtt_obj: mqtt_obj,
|
|
82
|
+
root_topic: 'msh',
|
|
83
|
+
region: 'US',
|
|
84
|
+
topic: '2/e/LongFast/#',
|
|
85
|
+
psks: { LongFast: 'AQ==' },
|
|
86
|
+
include: '!YOUR_CLIENT_ID'
|
|
87
|
+
) do |message|
|
|
88
|
+
puts message.inspect
|
|
89
|
+
end
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
You should see something like this:
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
{packet: {from: 4080917205, to: 4294967295, channel: 93, id: 1198634591, rx_time: 1738614021, rx_snr: 0.0, hop_limit: 3, want_ack: false, priority: :HIGH, rx_rssi: 0, delayed: :NO_DELAY, via_mqtt: false, hop_start: 3, public_key: "", pki_encrypted: false, next_hop: 0, relay_node: 0, tx_after: 0, decoded: {portnum: :TEXT_MESSAGE_APP, payload: "WHAT IS MY channel VALUE?", want_response: false, dest: 0, source: 0, request_id: 0, reply_id: 0, emoji: 0, bitfield: 0}, encrypted: :decrypted, topic: "msh/US/2/e/LongFast/!f33ddad5", node_id_from: "!f33ddad5", node_id_to: "!ffffffff", rx_time_utc: "2025-01-01 07:00:00 UTC"}, channel_id: "LongFast", gateway_id: "!f33ddad5"}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Note where is says `channel: 93`. This is the `channel` value required to send messages in this particular example.
|
|
99
|
+
|
|
100
|
+
## Contributing
|
|
101
|
+
|
|
102
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/0dayinc/meshtastic. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/0dayinc/meshtastic/blob/master/CODE_OF_CONDUCT.md).
|
|
103
|
+
|
|
104
|
+
## Code of Conduct
|
|
105
|
+
|
|
106
|
+
Everyone interacting in the Meshtastic project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/0dayinc/meshtastic/blob/master/CODE_OF_CONDUCT.md).
|
data/Rakefile
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'bundler/gem_tasks'
|
|
4
|
+
require 'rspec/core/rake_task'
|
|
5
|
+
require 'rdoc/task'
|
|
6
|
+
require 'rubocop/rake_task'
|
|
7
|
+
|
|
8
|
+
RSpec::Core::RakeTask.new(:spec)
|
|
9
|
+
|
|
10
|
+
RuboCop::RakeTask.new do |rubocop|
|
|
11
|
+
config_file = '.rubocop.yml'
|
|
12
|
+
rubocop.options = ['-E', '-S', '-c', config_file]
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
RDoc::Task.new do |rdoc|
|
|
16
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
17
|
+
rdoc.rdoc_dir = 'rdoc'
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# task default: %i[spec rubocop rdoc]
|
|
21
|
+
task default: %i[rubocop rdoc]
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
# frozen_string_literal: true
|
|
4
|
+
|
|
5
|
+
require 'meshtastic'
|
|
6
|
+
|
|
7
|
+
old_rev = Meshtastic::VERSION
|
|
8
|
+
placeholder_arr = old_rev.split('.')
|
|
9
|
+
major = placeholder_arr[0].to_i
|
|
10
|
+
minor = placeholder_arr[1].to_i
|
|
11
|
+
hotfix = placeholder_arr[2].to_i
|
|
12
|
+
|
|
13
|
+
if hotfix < 999
|
|
14
|
+
hotfix += 1
|
|
15
|
+
placeholder_arr[2] = hotfix.to_s
|
|
16
|
+
else
|
|
17
|
+
# TODO: Tag master branch once minor version is reached
|
|
18
|
+
placeholder_arr[2] = '0'
|
|
19
|
+
if minor < 9
|
|
20
|
+
minor += 1
|
|
21
|
+
placeholder_arr[1] = minor.to_s
|
|
22
|
+
else
|
|
23
|
+
placeholder_arr[1] = '0'
|
|
24
|
+
major += 1
|
|
25
|
+
placeholder_arr[0] = major.to_s
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
new_rev = placeholder_arr.join('.')
|
|
30
|
+
|
|
31
|
+
puts "Upgrading to #{new_rev}..."
|
|
32
|
+
File.open('./lib/meshtastic/version.rb', 'w') do |f|
|
|
33
|
+
f.puts '# frozen_string_literal: true'
|
|
34
|
+
f.puts "\n"
|
|
35
|
+
f.puts 'module Meshtastic'
|
|
36
|
+
f.puts " VERSION = '#{new_rev}'"
|
|
37
|
+
f.puts 'end'
|
|
38
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
#!/bin/bash --login
|
|
2
|
+
if [[ $MESHTASTIC_ROOT == '' ]]; then
|
|
3
|
+
if [[ ! -d '/opt/meshtastic' ]]; then
|
|
4
|
+
mesh_root=$(pwd)
|
|
5
|
+
else
|
|
6
|
+
mesh_root='/opt/meshtastic'
|
|
7
|
+
fi
|
|
8
|
+
else
|
|
9
|
+
mesh_root="${MESHTASTIC_ROOT}"
|
|
10
|
+
fi
|
|
11
|
+
|
|
12
|
+
ls pkg/*.gem 2> /dev/null | while read previous_gems; do
|
|
13
|
+
rvmsudo rm $previous_gems
|
|
14
|
+
done
|
|
15
|
+
old_ruby_version=`cat ${mesh_root}/.ruby-version`
|
|
16
|
+
# Default Strategy is to merge codebase
|
|
17
|
+
# rvmsudo git config pull.rebase false
|
|
18
|
+
# rvmsudo git pull origin master
|
|
19
|
+
git config pull.rebase false
|
|
20
|
+
git pull origin master
|
|
21
|
+
new_ruby_version=`cat ${mesh_root}/.ruby-version`
|
|
22
|
+
|
|
23
|
+
rvm list gemsets | grep `cat ${mesh_root}/.ruby-gemset`
|
|
24
|
+
if [[ $? != 0 ]]; then
|
|
25
|
+
echo "Ruby v${new_ruby_version} is not installed. Installing..."
|
|
26
|
+
cd $mesh_root && ./upgrade_ruby.sh $new_ruby_version
|
|
27
|
+
# Rely on RVM to creeate gemset
|
|
28
|
+
cd / && cd $mesh_root
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
if [[ $old_ruby_version == $new_ruby_version ]]; then
|
|
32
|
+
export rvmsudo_secure_path=1
|
|
33
|
+
rvmsudo /bin/bash --login -c "cd ${mesh_root} && ./reinstall_meshtastic_gemset.sh"
|
|
34
|
+
rvmsudo rake
|
|
35
|
+
rvmsudo rake install
|
|
36
|
+
rvmsudo rake rerdoc
|
|
37
|
+
rvmsudo gem update --system
|
|
38
|
+
rvmsudo gem rdoc --rdoc --ri --overwrite -V meshtastic
|
|
39
|
+
echo "Invoking bundle-audit Gemfile Scanner..."
|
|
40
|
+
rvmsudo bundle-audit
|
|
41
|
+
|
|
42
|
+
latest_gem=$(ls pkg/*.gem)
|
|
43
|
+
if [[ $latest_gem != "" ]]; then
|
|
44
|
+
echo "Pushing ${latest_gem} to RubyGems.org..."
|
|
45
|
+
rvmsudo gem push $latest_gem --debug
|
|
46
|
+
fi
|
|
47
|
+
else
|
|
48
|
+
cd $mesh_root && ./upgrade_ruby.sh $new_ruby_version $old_ruby_version
|
|
49
|
+
fi
|
|
50
|
+
|
|
51
|
+
unpriv_user=`echo $USER`
|
|
52
|
+
if [[ $unpriv_user != 'root' ]]; then
|
|
53
|
+
if [[ $(uname -s) == 'Darwin' ]]; then
|
|
54
|
+
rvmsudo chown -R $unpriv_user $mesh_root
|
|
55
|
+
else
|
|
56
|
+
rvmsudo chown -R $unpriv_user:$unpriv_user $mesh_root
|
|
57
|
+
fi
|
|
58
|
+
fi
|
data/git_commit.sh
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#!/bin/bash --login
|
|
2
|
+
if [[ $1 != "" && $2 != "" && $3 != "" ]]; then
|
|
3
|
+
# Default Strategy is to merge codebase
|
|
4
|
+
git config pull.rebase false
|
|
5
|
+
git config commit.gpgsign true
|
|
6
|
+
git pull origin master
|
|
7
|
+
git add . --all
|
|
8
|
+
echo 'Updating Gems to Latest Versions in Gemfile...'
|
|
9
|
+
./upgrade_Gemfile_gems.sh
|
|
10
|
+
./AUTOGEN_meshtastic_protobufs.sh
|
|
11
|
+
meshtastic_autoinc_version
|
|
12
|
+
if [[ $tag_this_version_bool == 'true' ]]; then
|
|
13
|
+
last_tag=$(git tag | tail -n 1)
|
|
14
|
+
git log $last_tag.. --oneline > CHANGELOG_BETWEEN_TAGS.txt
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
git commit -a -S --author="${1} <${2}>" -m "${3}"
|
|
18
|
+
./upgrade_meshtastic.sh
|
|
19
|
+
# Tag for every 100 commits (i.e. 0.1.100, 0.1.200, etc)
|
|
20
|
+
tag_this_version_bool=`ruby -r 'meshtastic' -e 'if Meshtastic::VERSION.split(".")[-1].to_i % 100 == 0; then print true; else print false; end'`
|
|
21
|
+
if [[ $tag_this_version_bool == 'true' ]]; then
|
|
22
|
+
this_version=`ruby -r 'meshtastic' -e 'print Meshtastic::VERSION'`
|
|
23
|
+
echo "Tagging: ${this_version}"
|
|
24
|
+
git tag $this_version
|
|
25
|
+
git push origin $this_version
|
|
26
|
+
fi
|
|
27
|
+
else
|
|
28
|
+
echo "USAGE: ${0} '<full name>' <email address> '<git commit comments>'"
|
|
29
|
+
fi
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'meshtastic/admin_pb'
|
|
4
|
+
|
|
5
|
+
# Plugin used to interact with Meshtastic nodes
|
|
6
|
+
module Meshtastic
|
|
7
|
+
module Admin
|
|
8
|
+
# Author(s):: 0day Inc. <support@0dayinc.com>
|
|
9
|
+
|
|
10
|
+
public_class_method def self.authors
|
|
11
|
+
"AUTHOR(S):
|
|
12
|
+
0day Inc. <support@0dayinc.com>
|
|
13
|
+
"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Display Usage for this Module
|
|
17
|
+
|
|
18
|
+
public_class_method def self.help
|
|
19
|
+
puts "USAGE:
|
|
20
|
+
#{self}.authors
|
|
21
|
+
"
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: meshtastic/admin.proto
|
|
4
|
+
|
|
5
|
+
require 'google/protobuf'
|
|
6
|
+
|
|
7
|
+
require 'meshtastic/channel_pb'
|
|
8
|
+
require 'meshtastic/config_pb'
|
|
9
|
+
require 'meshtastic/connection_status_pb'
|
|
10
|
+
require 'meshtastic/device_ui_pb'
|
|
11
|
+
require 'meshtastic/mesh_pb'
|
|
12
|
+
require 'meshtastic/module_config_pb'
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
descriptor_data = "\n\x16meshtastic/admin.proto\x12\nmeshtastic\x1a\x18meshtastic/channel.proto\x1a\x17meshtastic/config.proto\x1a\"meshtastic/connection_status.proto\x1a\x1ameshtastic/device_ui.proto\x1a\x15meshtastic/mesh.proto\x1a\x1emeshtastic/module_config.proto\"\xd6\x18\n\x0c\x41\x64minMessage\x12\x17\n\x0fsession_passkey\x18\x65 \x01(\x0c\x12\x1d\n\x13get_channel_request\x18\x01 \x01(\rH\x00\x12\x33\n\x14get_channel_response\x18\x02 \x01(\x0b\x32\x13.meshtastic.ChannelH\x00\x12\x1b\n\x11get_owner_request\x18\x03 \x01(\x08H\x00\x12.\n\x12get_owner_response\x18\x04 \x01(\x0b\x32\x10.meshtastic.UserH\x00\x12\x41\n\x12get_config_request\x18\x05 \x01(\x0e\x32#.meshtastic.AdminMessage.ConfigTypeH\x00\x12\x31\n\x13get_config_response\x18\x06 \x01(\x0b\x32\x12.meshtastic.ConfigH\x00\x12N\n\x19get_module_config_request\x18\x07 \x01(\x0e\x32).meshtastic.AdminMessage.ModuleConfigTypeH\x00\x12>\n\x1aget_module_config_response\x18\x08 \x01(\x0b\x32\x18.meshtastic.ModuleConfigH\x00\x12\x34\n*get_canned_message_module_messages_request\x18\n \x01(\x08H\x00\x12\x35\n+get_canned_message_module_messages_response\x18\x0b \x01(\tH\x00\x12%\n\x1bget_device_metadata_request\x18\x0c \x01(\x08H\x00\x12\x42\n\x1cget_device_metadata_response\x18\r \x01(\x0b\x32\x1a.meshtastic.DeviceMetadataH\x00\x12\x1e\n\x14get_ringtone_request\x18\x0e \x01(\x08H\x00\x12\x1f\n\x15get_ringtone_response\x18\x0f \x01(\tH\x00\x12.\n$get_device_connection_status_request\x18\x10 \x01(\x08H\x00\x12S\n%get_device_connection_status_response\x18\x11 \x01(\x0b\x32\".meshtastic.DeviceConnectionStatusH\x00\x12\x31\n\x0cset_ham_mode\x18\x12 \x01(\x0b\x32\x19.meshtastic.HamParametersH\x00\x12/\n%get_node_remote_hardware_pins_request\x18\x13 \x01(\x08H\x00\x12\\\n&get_node_remote_hardware_pins_response\x18\x14 \x01(\x0b\x32*.meshtastic.NodeRemoteHardwarePinsResponseH\x00\x12 \n\x16\x65nter_dfu_mode_request\x18\x15 \x01(\x08H\x00\x12\x1d\n\x13\x64\x65lete_file_request\x18\x16 \x01(\tH\x00\x12\x13\n\tset_scale\x18\x17 \x01(\rH\x00\x12\x45\n\x12\x62\x61\x63kup_preferences\x18\x18 \x01(\x0e\x32\'.meshtastic.AdminMessage.BackupLocationH\x00\x12\x46\n\x13restore_preferences\x18\x19 \x01(\x0e\x32\'.meshtastic.AdminMessage.BackupLocationH\x00\x12L\n\x19remove_backup_preferences\x18\x1a \x01(\x0e\x32\'.meshtastic.AdminMessage.BackupLocationH\x00\x12?\n\x10send_input_event\x18\x1b \x01(\x0b\x32#.meshtastic.AdminMessage.InputEventH\x00\x12%\n\tset_owner\x18 \x01(\x0b\x32\x10.meshtastic.UserH\x00\x12*\n\x0bset_channel\x18! \x01(\x0b\x32\x13.meshtastic.ChannelH\x00\x12(\n\nset_config\x18\" \x01(\x0b\x32\x12.meshtastic.ConfigH\x00\x12\x35\n\x11set_module_config\x18# \x01(\x0b\x32\x18.meshtastic.ModuleConfigH\x00\x12,\n\"set_canned_message_module_messages\x18$ \x01(\tH\x00\x12\x1e\n\x14set_ringtone_message\x18% \x01(\tH\x00\x12\x1b\n\x11remove_by_nodenum\x18& \x01(\rH\x00\x12\x1b\n\x11set_favorite_node\x18\' \x01(\rH\x00\x12\x1e\n\x14remove_favorite_node\x18( \x01(\rH\x00\x12\x32\n\x12set_fixed_position\x18) \x01(\x0b\x32\x14.meshtastic.PositionH\x00\x12\x1f\n\x15remove_fixed_position\x18* \x01(\x08H\x00\x12\x17\n\rset_time_only\x18+ \x01(\x07H\x00\x12\x1f\n\x15get_ui_config_request\x18, \x01(\x08H\x00\x12<\n\x16get_ui_config_response\x18- \x01(\x0b\x32\x1a.meshtastic.DeviceUIConfigH\x00\x12\x35\n\x0fstore_ui_config\x18. \x01(\x0b\x32\x1a.meshtastic.DeviceUIConfigH\x00\x12\x1a\n\x10set_ignored_node\x18/ \x01(\rH\x00\x12\x1d\n\x13remove_ignored_node\x18\x30 \x01(\rH\x00\x12\x1d\n\x13\x62\x65gin_edit_settings\x18@ \x01(\x08H\x00\x12\x1e\n\x14\x63ommit_edit_settings\x18\x41 \x01(\x08H\x00\x12\x30\n\x0b\x61\x64\x64_contact\x18\x42 \x01(\x0b\x32\x19.meshtastic.SharedContactH\x00\x12<\n\x10key_verification\x18\x43 \x01(\x0b\x32 .meshtastic.KeyVerificationAdminH\x00\x12\x1e\n\x14\x66\x61\x63tory_reset_device\x18^ \x01(\x05H\x00\x12\x1c\n\x12reboot_ota_seconds\x18_ \x01(\x05H\x00\x12\x18\n\x0e\x65xit_simulator\x18` \x01(\x08H\x00\x12\x18\n\x0ereboot_seconds\x18\x61 \x01(\x05H\x00\x12\x1a\n\x10shutdown_seconds\x18\x62 \x01(\x05H\x00\x12\x1e\n\x14\x66\x61\x63tory_reset_config\x18\x63 \x01(\x05H\x00\x12\x16\n\x0cnodedb_reset\x18\x64 \x01(\x08H\x00\x1aS\n\nInputEvent\x12\x12\n\nevent_code\x18\x01 \x01(\r\x12\x0f\n\x07kb_char\x18\x02 \x01(\r\x12\x0f\n\x07touch_x\x18\x03 \x01(\r\x12\x0f\n\x07touch_y\x18\x04 \x01(\r\"\xd6\x01\n\nConfigType\x12\x11\n\rDEVICE_CONFIG\x10\x00\x12\x13\n\x0fPOSITION_CONFIG\x10\x01\x12\x10\n\x0cPOWER_CONFIG\x10\x02\x12\x12\n\x0eNETWORK_CONFIG\x10\x03\x12\x12\n\x0e\x44ISPLAY_CONFIG\x10\x04\x12\x0f\n\x0bLORA_CONFIG\x10\x05\x12\x14\n\x10\x42LUETOOTH_CONFIG\x10\x06\x12\x13\n\x0fSECURITY_CONFIG\x10\x07\x12\x15\n\x11SESSIONKEY_CONFIG\x10\x08\x12\x13\n\x0f\x44\x45VICEUI_CONFIG\x10\t\"\xbb\x02\n\x10ModuleConfigType\x12\x0f\n\x0bMQTT_CONFIG\x10\x00\x12\x11\n\rSERIAL_CONFIG\x10\x01\x12\x13\n\x0f\x45XTNOTIF_CONFIG\x10\x02\x12\x17\n\x13STOREFORWARD_CONFIG\x10\x03\x12\x14\n\x10RANGETEST_CONFIG\x10\x04\x12\x14\n\x10TELEMETRY_CONFIG\x10\x05\x12\x14\n\x10\x43\x41NNEDMSG_CONFIG\x10\x06\x12\x10\n\x0c\x41UDIO_CONFIG\x10\x07\x12\x19\n\x15REMOTEHARDWARE_CONFIG\x10\x08\x12\x17\n\x13NEIGHBORINFO_CONFIG\x10\t\x12\x1a\n\x16\x41MBIENTLIGHTING_CONFIG\x10\n\x12\x1a\n\x16\x44\x45TECTIONSENSOR_CONFIG\x10\x0b\x12\x15\n\x11PAXCOUNTER_CONFIG\x10\x0c\"#\n\x0e\x42\x61\x63kupLocation\x12\t\n\x05\x46LASH\x10\x00\x12\x06\n\x02SD\x10\x01\x42\x11\n\x0fpayload_variant\"[\n\rHamParameters\x12\x11\n\tcall_sign\x18\x01 \x01(\t\x12\x10\n\x08tx_power\x18\x02 \x01(\x05\x12\x11\n\tfrequency\x18\x03 \x01(\x02\x12\x12\n\nshort_name\x18\x04 \x01(\t\"f\n\x1eNodeRemoteHardwarePinsResponse\x12\x44\n\x19node_remote_hardware_pins\x18\x01 \x03(\x0b\x32!.meshtastic.NodeRemoteHardwarePin\"s\n\rSharedContact\x12\x10\n\x08node_num\x18\x01 \x01(\r\x12\x1e\n\x04user\x18\x02 \x01(\x0b\x32\x10.meshtastic.User\x12\x15\n\rshould_ignore\x18\x03 \x01(\x08\x12\x19\n\x11manually_verified\x18\x04 \x01(\x08\"\x9c\x02\n\x14KeyVerificationAdmin\x12\x42\n\x0cmessage_type\x18\x01 \x01(\x0e\x32,.meshtastic.KeyVerificationAdmin.MessageType\x12\x16\n\x0eremote_nodenum\x18\x02 \x01(\r\x12\r\n\x05nonce\x18\x03 \x01(\x04\x12\x1c\n\x0fsecurity_number\x18\x04 \x01(\rH\x00\x88\x01\x01\"g\n\x0bMessageType\x12\x19\n\x15INITIATE_VERIFICATION\x10\x00\x12\x1b\n\x17PROVIDE_SECURITY_NUMBER\x10\x01\x12\r\n\tDO_VERIFY\x10\x02\x12\x11\n\rDO_NOT_VERIFY\x10\x03\x42\x12\n\x10_security_numberBa\n\x14org.meshtastic.protoB\x0b\x41\x64minProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3"
|
|
16
|
+
|
|
17
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
18
|
+
pool.add_serialized_file(descriptor_data)
|
|
19
|
+
|
|
20
|
+
module Meshtastic
|
|
21
|
+
AdminMessage = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.AdminMessage").msgclass
|
|
22
|
+
AdminMessage::InputEvent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.AdminMessage.InputEvent").msgclass
|
|
23
|
+
AdminMessage::ConfigType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.AdminMessage.ConfigType").enummodule
|
|
24
|
+
AdminMessage::ModuleConfigType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.AdminMessage.ModuleConfigType").enummodule
|
|
25
|
+
AdminMessage::BackupLocation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.AdminMessage.BackupLocation").enummodule
|
|
26
|
+
HamParameters = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.HamParameters").msgclass
|
|
27
|
+
NodeRemoteHardwarePinsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.NodeRemoteHardwarePinsResponse").msgclass
|
|
28
|
+
SharedContact = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.SharedContact").msgclass
|
|
29
|
+
KeyVerificationAdmin = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.KeyVerificationAdmin").msgclass
|
|
30
|
+
KeyVerificationAdmin::MessageType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.KeyVerificationAdmin.MessageType").enummodule
|
|
31
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'meshtastic/apponly_pb'
|
|
4
|
+
|
|
5
|
+
# Plugin used to interact with Meshtastic nodes
|
|
6
|
+
module Meshtastic
|
|
7
|
+
module Apponly
|
|
8
|
+
# Author(s):: 0day Inc. <support@0dayinc.com>
|
|
9
|
+
|
|
10
|
+
public_class_method def self.authors
|
|
11
|
+
"AUTHOR(S):
|
|
12
|
+
0day Inc. <support@0dayinc.com>
|
|
13
|
+
"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Display Usage for this Module
|
|
17
|
+
|
|
18
|
+
public_class_method def self.help
|
|
19
|
+
puts "USAGE:
|
|
20
|
+
#{self}.authors
|
|
21
|
+
"
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: meshtastic/apponly.proto
|
|
4
|
+
|
|
5
|
+
require 'google/protobuf'
|
|
6
|
+
|
|
7
|
+
require 'meshtastic/channel_pb'
|
|
8
|
+
require 'meshtastic/config_pb'
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
descriptor_data = "\n\x18meshtastic/apponly.proto\x12\nmeshtastic\x1a\x18meshtastic/channel.proto\x1a\x17meshtastic/config.proto\"o\n\nChannelSet\x12-\n\x08settings\x18\x01 \x03(\x0b\x32\x1b.meshtastic.ChannelSettings\x12\x32\n\x0blora_config\x18\x02 \x01(\x0b\x32\x1d.meshtastic.Config.LoRaConfigBc\n\x14org.meshtastic.protoB\rAppOnlyProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3"
|
|
12
|
+
|
|
13
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
14
|
+
pool.add_serialized_file(descriptor_data)
|
|
15
|
+
|
|
16
|
+
module Meshtastic
|
|
17
|
+
ChannelSet = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.ChannelSet").msgclass
|
|
18
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'meshtastic/atak_pb'
|
|
4
|
+
|
|
5
|
+
# Plugin used to interact with Meshtastic nodes
|
|
6
|
+
module Meshtastic
|
|
7
|
+
module ATAK
|
|
8
|
+
# Author(s):: 0day Inc. <support@0dayinc.com>
|
|
9
|
+
|
|
10
|
+
public_class_method def self.authors
|
|
11
|
+
"AUTHOR(S):
|
|
12
|
+
0day Inc. <support@0dayinc.com>
|
|
13
|
+
"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Display Usage for this Module
|
|
17
|
+
|
|
18
|
+
public_class_method def self.help
|
|
19
|
+
puts "USAGE:
|
|
20
|
+
#{self}.authors
|
|
21
|
+
"
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: meshtastic/atak.proto
|
|
4
|
+
|
|
5
|
+
require 'google/protobuf'
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
descriptor_data = "\n\x15meshtastic/atak.proto\x12\nmeshtastic\"\xf8\x01\n\tTAKPacket\x12\x15\n\ris_compressed\x18\x01 \x01(\x08\x12$\n\x07\x63ontact\x18\x02 \x01(\x0b\x32\x13.meshtastic.Contact\x12 \n\x05group\x18\x03 \x01(\x0b\x32\x11.meshtastic.Group\x12\"\n\x06status\x18\x04 \x01(\x0b\x32\x12.meshtastic.Status\x12\x1e\n\x03pli\x18\x05 \x01(\x0b\x32\x0f.meshtastic.PLIH\x00\x12#\n\x04\x63hat\x18\x06 \x01(\x0b\x32\x13.meshtastic.GeoChatH\x00\x12\x10\n\x06\x64\x65tail\x18\x07 \x01(\x0cH\x00\x42\x11\n\x0fpayload_variant\"\\\n\x07GeoChat\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x0f\n\x02to\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bto_callsign\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x05\n\x03_toB\x0e\n\x0c_to_callsign\"M\n\x05Group\x12$\n\x04role\x18\x01 \x01(\x0e\x32\x16.meshtastic.MemberRole\x12\x1e\n\x04team\x18\x02 \x01(\x0e\x32\x10.meshtastic.Team\"\x19\n\x06Status\x12\x0f\n\x07\x62\x61ttery\x18\x01 \x01(\r\"4\n\x07\x43ontact\x12\x10\n\x08\x63\x61llsign\x18\x01 \x01(\t\x12\x17\n\x0f\x64\x65vice_callsign\x18\x02 \x01(\t\"_\n\x03PLI\x12\x12\n\nlatitude_i\x18\x01 \x01(\x0f\x12\x13\n\x0blongitude_i\x18\x02 \x01(\x0f\x12\x10\n\x08\x61ltitude\x18\x03 \x01(\x05\x12\r\n\x05speed\x18\x04 \x01(\r\x12\x0e\n\x06\x63ourse\x18\x05 \x01(\r*\xc0\x01\n\x04Team\x12\x14\n\x10Unspecifed_Color\x10\x00\x12\t\n\x05White\x10\x01\x12\n\n\x06Yellow\x10\x02\x12\n\n\x06Orange\x10\x03\x12\x0b\n\x07Magenta\x10\x04\x12\x07\n\x03Red\x10\x05\x12\n\n\x06Maroon\x10\x06\x12\n\n\x06Purple\x10\x07\x12\r\n\tDark_Blue\x10\x08\x12\x08\n\x04\x42lue\x10\t\x12\x08\n\x04\x43yan\x10\n\x12\x08\n\x04Teal\x10\x0b\x12\t\n\x05Green\x10\x0c\x12\x0e\n\nDark_Green\x10\r\x12\t\n\x05\x42rown\x10\x0e*\x7f\n\nMemberRole\x12\x0e\n\nUnspecifed\x10\x00\x12\x0e\n\nTeamMember\x10\x01\x12\x0c\n\x08TeamLead\x10\x02\x12\x06\n\x02HQ\x10\x03\x12\n\n\x06Sniper\x10\x04\x12\t\n\x05Medic\x10\x05\x12\x13\n\x0f\x46orwardObserver\x10\x06\x12\x07\n\x03RTO\x10\x07\x12\x06\n\x02K9\x10\x08\x42`\n\x14org.meshtastic.protoB\nATAKProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3"
|
|
9
|
+
|
|
10
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
11
|
+
pool.add_serialized_file(descriptor_data)
|
|
12
|
+
|
|
13
|
+
module Meshtastic
|
|
14
|
+
TAKPacket = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.TAKPacket").msgclass
|
|
15
|
+
GeoChat = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.GeoChat").msgclass
|
|
16
|
+
Group = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Group").msgclass
|
|
17
|
+
Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Status").msgclass
|
|
18
|
+
Contact = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Contact").msgclass
|
|
19
|
+
PLI = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.PLI").msgclass
|
|
20
|
+
Team = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Team").enummodule
|
|
21
|
+
MemberRole = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.MemberRole").enummodule
|
|
22
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'meshtastic/cannedmessages_pb'
|
|
4
|
+
|
|
5
|
+
# Plugin used to interact with Meshtastic nodes
|
|
6
|
+
module Meshtastic
|
|
7
|
+
module Cannedmessages
|
|
8
|
+
# Author(s):: 0day Inc. <support@0dayinc.com>
|
|
9
|
+
|
|
10
|
+
public_class_method def self.authors
|
|
11
|
+
"AUTHOR(S):
|
|
12
|
+
0day Inc. <support@0dayinc.com>
|
|
13
|
+
"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Display Usage for this Module
|
|
17
|
+
|
|
18
|
+
public_class_method def self.help
|
|
19
|
+
puts "USAGE:
|
|
20
|
+
#{self}.authors
|
|
21
|
+
"
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: meshtastic/cannedmessages.proto
|
|
4
|
+
|
|
5
|
+
require 'google/protobuf'
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
descriptor_data = "\n\x1fmeshtastic/cannedmessages.proto\x12\nmeshtastic\"-\n\x19\x43\x61nnedMessageModuleConfig\x12\x10\n\x08messages\x18\x01 \x01(\tBo\n\x14org.meshtastic.protoB\x19\x43\x61nnedMessageConfigProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3"
|
|
9
|
+
|
|
10
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
11
|
+
pool.add_serialized_file(descriptor_data)
|
|
12
|
+
|
|
13
|
+
module Meshtastic
|
|
14
|
+
CannedMessageModuleConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.CannedMessageModuleConfig").msgclass
|
|
15
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'meshtastic/channel_pb'
|
|
4
|
+
|
|
5
|
+
# Plugin used to interact with Meshtastic nodes
|
|
6
|
+
module Meshtastic
|
|
7
|
+
module Channel
|
|
8
|
+
# Author(s):: 0day Inc. <support@0dayinc.com>
|
|
9
|
+
|
|
10
|
+
public_class_method def self.authors
|
|
11
|
+
"AUTHOR(S):
|
|
12
|
+
0day Inc. <support@0dayinc.com>
|
|
13
|
+
"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Display Usage for this Module
|
|
17
|
+
|
|
18
|
+
public_class_method def self.help
|
|
19
|
+
puts "USAGE:
|
|
20
|
+
#{self}.authors
|
|
21
|
+
"
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: meshtastic/channel.proto
|
|
4
|
+
|
|
5
|
+
require 'google/protobuf'
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
descriptor_data = "\n\x18meshtastic/channel.proto\x12\nmeshtastic\"\xb8\x01\n\x0f\x43hannelSettings\x12\x17\n\x0b\x63hannel_num\x18\x01 \x01(\rB\x02\x18\x01\x12\x0b\n\x03psk\x18\x02 \x01(\x0c\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\n\n\x02id\x18\x04 \x01(\x07\x12\x16\n\x0euplink_enabled\x18\x05 \x01(\x08\x12\x18\n\x10\x64ownlink_enabled\x18\x06 \x01(\x08\x12\x33\n\x0fmodule_settings\x18\x07 \x01(\x0b\x32\x1a.meshtastic.ModuleSettings\">\n\x0eModuleSettings\x12\x1a\n\x12position_precision\x18\x01 \x01(\r\x12\x10\n\x08is_muted\x18\x02 \x01(\x08\"\xa1\x01\n\x07\x43hannel\x12\r\n\x05index\x18\x01 \x01(\x05\x12-\n\x08settings\x18\x02 \x01(\x0b\x32\x1b.meshtastic.ChannelSettings\x12&\n\x04role\x18\x03 \x01(\x0e\x32\x18.meshtastic.Channel.Role\"0\n\x04Role\x12\x0c\n\x08\x44ISABLED\x10\x00\x12\x0b\n\x07PRIMARY\x10\x01\x12\r\n\tSECONDARY\x10\x02\x42\x63\n\x14org.meshtastic.protoB\rChannelProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3"
|
|
9
|
+
|
|
10
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
11
|
+
pool.add_serialized_file(descriptor_data)
|
|
12
|
+
|
|
13
|
+
module Meshtastic
|
|
14
|
+
ChannelSettings = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.ChannelSettings").msgclass
|
|
15
|
+
ModuleSettings = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.ModuleSettings").msgclass
|
|
16
|
+
Channel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Channel").msgclass
|
|
17
|
+
Channel::Role = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Channel.Role").enummodule
|
|
18
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'meshtastic/clientonly_pb'
|
|
4
|
+
|
|
5
|
+
# Plugin used to interact with Meshtastic nodes
|
|
6
|
+
module Meshtastic
|
|
7
|
+
module Clientonly
|
|
8
|
+
# Author(s):: 0day Inc. <support@0dayinc.com>
|
|
9
|
+
|
|
10
|
+
public_class_method def self.authors
|
|
11
|
+
"AUTHOR(S):
|
|
12
|
+
0day Inc. <support@0dayinc.com>
|
|
13
|
+
"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Display Usage for this Module
|
|
17
|
+
|
|
18
|
+
public_class_method def self.help
|
|
19
|
+
puts "USAGE:
|
|
20
|
+
#{self}.authors
|
|
21
|
+
"
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: meshtastic/clientonly.proto
|
|
4
|
+
|
|
5
|
+
require 'google/protobuf'
|
|
6
|
+
|
|
7
|
+
require 'meshtastic/localonly_pb'
|
|
8
|
+
require 'meshtastic/mesh_pb'
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
descriptor_data = "\n\x1bmeshtastic/clientonly.proto\x12\nmeshtastic\x1a\x1ameshtastic/localonly.proto\x1a\x15meshtastic/mesh.proto\"\xa9\x03\n\rDeviceProfile\x12\x16\n\tlong_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\nshort_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x63hannel_url\x18\x03 \x01(\tH\x02\x88\x01\x01\x12,\n\x06\x63onfig\x18\x04 \x01(\x0b\x32\x17.meshtastic.LocalConfigH\x03\x88\x01\x01\x12\x39\n\rmodule_config\x18\x05 \x01(\x0b\x32\x1d.meshtastic.LocalModuleConfigH\x04\x88\x01\x01\x12\x31\n\x0e\x66ixed_position\x18\x06 \x01(\x0b\x32\x14.meshtastic.PositionH\x05\x88\x01\x01\x12\x15\n\x08ringtone\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0f\x63\x61nned_messages\x18\x08 \x01(\tH\x07\x88\x01\x01\x42\x0c\n\n_long_nameB\r\n\x0b_short_nameB\x0e\n\x0c_channel_urlB\t\n\x07_configB\x10\n\x0e_module_configB\x11\n\x0f_fixed_positionB\x0b\n\t_ringtoneB\x12\n\x10_canned_messagesBf\n\x14org.meshtastic.protoB\x10\x43lientOnlyProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3"
|
|
12
|
+
|
|
13
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
14
|
+
pool.add_serialized_file(descriptor_data)
|
|
15
|
+
|
|
16
|
+
module Meshtastic
|
|
17
|
+
DeviceProfile = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.DeviceProfile").msgclass
|
|
18
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'meshtastic/config_pb'
|
|
4
|
+
|
|
5
|
+
# Plugin used to interact with Meshtastic nodes
|
|
6
|
+
module Meshtastic
|
|
7
|
+
module Config
|
|
8
|
+
# Author(s):: 0day Inc. <support@0dayinc.com>
|
|
9
|
+
|
|
10
|
+
public_class_method def self.authors
|
|
11
|
+
"AUTHOR(S):
|
|
12
|
+
0day Inc. <support@0dayinc.com>
|
|
13
|
+
"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Display Usage for this Module
|
|
17
|
+
|
|
18
|
+
public_class_method def self.help
|
|
19
|
+
puts "USAGE:
|
|
20
|
+
#{self}.authors
|
|
21
|
+
"
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: meshtastic/config.proto
|
|
4
|
+
|
|
5
|
+
require 'google/protobuf'
|
|
6
|
+
|
|
7
|
+
require 'meshtastic/device_ui_pb'
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
descriptor_data = "\n\x17meshtastic/config.proto\x12\nmeshtastic\x1a\x1ameshtastic/device_ui.proto\"\x8d)\n\x06\x43onfig\x12\x31\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x1f.meshtastic.Config.DeviceConfigH\x00\x12\x35\n\x08position\x18\x02 \x01(\x0b\x32!.meshtastic.Config.PositionConfigH\x00\x12/\n\x05power\x18\x03 \x01(\x0b\x32\x1e.meshtastic.Config.PowerConfigH\x00\x12\x33\n\x07network\x18\x04 \x01(\x0b\x32 .meshtastic.Config.NetworkConfigH\x00\x12\x33\n\x07\x64isplay\x18\x05 \x01(\x0b\x32 .meshtastic.Config.DisplayConfigH\x00\x12-\n\x04lora\x18\x06 \x01(\x0b\x32\x1d.meshtastic.Config.LoRaConfigH\x00\x12\x37\n\tbluetooth\x18\x07 \x01(\x0b\x32\".meshtastic.Config.BluetoothConfigH\x00\x12\x35\n\x08security\x18\x08 \x01(\x0b\x32!.meshtastic.Config.SecurityConfigH\x00\x12\x39\n\nsessionkey\x18\t \x01(\x0b\x32#.meshtastic.Config.SessionkeyConfigH\x00\x12/\n\tdevice_ui\x18\n \x01(\x0b\x32\x1a.meshtastic.DeviceUIConfigH\x00\x1a\xf6\x06\n\x0c\x44\x65viceConfig\x12\x32\n\x04role\x18\x01 \x01(\x0e\x32$.meshtastic.Config.DeviceConfig.Role\x12\x1a\n\x0eserial_enabled\x18\x02 \x01(\x08\x42\x02\x18\x01\x12\x13\n\x0b\x62utton_gpio\x18\x04 \x01(\r\x12\x13\n\x0b\x62uzzer_gpio\x18\x05 \x01(\r\x12I\n\x10rebroadcast_mode\x18\x06 \x01(\x0e\x32/.meshtastic.Config.DeviceConfig.RebroadcastMode\x12 \n\x18node_info_broadcast_secs\x18\x07 \x01(\r\x12\"\n\x1a\x64ouble_tap_as_button_press\x18\x08 \x01(\x08\x12\x16\n\nis_managed\x18\t \x01(\x08\x42\x02\x18\x01\x12\x1c\n\x14\x64isable_triple_click\x18\n \x01(\x08\x12\r\n\x05tzdef\x18\x0b \x01(\t\x12\x1e\n\x16led_heartbeat_disabled\x18\x0c \x01(\x08\x12?\n\x0b\x62uzzer_mode\x18\r \x01(\x0e\x32*.meshtastic.Config.DeviceConfig.BuzzerMode\"\xd4\x01\n\x04Role\x12\n\n\x06\x43LIENT\x10\x00\x12\x0f\n\x0b\x43LIENT_MUTE\x10\x01\x12\n\n\x06ROUTER\x10\x02\x12\x15\n\rROUTER_CLIENT\x10\x03\x1a\x02\x08\x01\x12\x10\n\x08REPEATER\x10\x04\x1a\x02\x08\x01\x12\x0b\n\x07TRACKER\x10\x05\x12\n\n\x06SENSOR\x10\x06\x12\x07\n\x03TAK\x10\x07\x12\x11\n\rCLIENT_HIDDEN\x10\x08\x12\x12\n\x0eLOST_AND_FOUND\x10\t\x12\x0f\n\x0bTAK_TRACKER\x10\n\x12\x0f\n\x0bROUTER_LATE\x10\x0b\x12\x0f\n\x0b\x43LIENT_BASE\x10\x0c\"s\n\x0fRebroadcastMode\x12\x07\n\x03\x41LL\x10\x00\x12\x15\n\x11\x41LL_SKIP_DECODING\x10\x01\x12\x0e\n\nLOCAL_ONLY\x10\x02\x12\x0e\n\nKNOWN_ONLY\x10\x03\x12\x08\n\x04NONE\x10\x04\x12\x16\n\x12\x43ORE_PORTNUMS_ONLY\x10\x05\"i\n\nBuzzerMode\x12\x0f\n\x0b\x41LL_ENABLED\x10\x00\x12\x0c\n\x08\x44ISABLED\x10\x01\x12\x16\n\x12NOTIFICATIONS_ONLY\x10\x02\x12\x0f\n\x0bSYSTEM_ONLY\x10\x03\x12\x13\n\x0f\x44IRECT_MSG_ONLY\x10\x04\x1a\x91\x05\n\x0ePositionConfig\x12\x1f\n\x17position_broadcast_secs\x18\x01 \x01(\r\x12(\n position_broadcast_smart_enabled\x18\x02 \x01(\x08\x12\x16\n\x0e\x66ixed_position\x18\x03 \x01(\x08\x12\x17\n\x0bgps_enabled\x18\x04 \x01(\x08\x42\x02\x18\x01\x12\x1b\n\x13gps_update_interval\x18\x05 \x01(\r\x12\x1c\n\x10gps_attempt_time\x18\x06 \x01(\rB\x02\x18\x01\x12\x16\n\x0eposition_flags\x18\x07 \x01(\r\x12\x0f\n\x07rx_gpio\x18\x08 \x01(\r\x12\x0f\n\x07tx_gpio\x18\t \x01(\r\x12(\n broadcast_smart_minimum_distance\x18\n \x01(\r\x12-\n%broadcast_smart_minimum_interval_secs\x18\x0b \x01(\r\x12\x13\n\x0bgps_en_gpio\x18\x0c \x01(\r\x12;\n\x08gps_mode\x18\r \x01(\x0e\x32).meshtastic.Config.PositionConfig.GpsMode\"\xab\x01\n\rPositionFlags\x12\t\n\x05UNSET\x10\x00\x12\x0c\n\x08\x41LTITUDE\x10\x01\x12\x10\n\x0c\x41LTITUDE_MSL\x10\x02\x12\x16\n\x12GEOIDAL_SEPARATION\x10\x04\x12\x07\n\x03\x44OP\x10\x08\x12\t\n\x05HVDOP\x10\x10\x12\r\n\tSATINVIEW\x10 \x12\n\n\x06SEQ_NO\x10@\x12\x0e\n\tTIMESTAMP\x10\x80\x01\x12\x0c\n\x07HEADING\x10\x80\x02\x12\n\n\x05SPEED\x10\x80\x04\"5\n\x07GpsMode\x12\x0c\n\x08\x44ISABLED\x10\x00\x12\x0b\n\x07\x45NABLED\x10\x01\x12\x0f\n\x0bNOT_PRESENT\x10\x02\x1a\x84\x02\n\x0bPowerConfig\x12\x17\n\x0fis_power_saving\x18\x01 \x01(\x08\x12&\n\x1eon_battery_shutdown_after_secs\x18\x02 \x01(\r\x12\x1f\n\x17\x61\x64\x63_multiplier_override\x18\x03 \x01(\x02\x12\x1b\n\x13wait_bluetooth_secs\x18\x04 \x01(\r\x12\x10\n\x08sds_secs\x18\x06 \x01(\r\x12\x0f\n\x07ls_secs\x18\x07 \x01(\r\x12\x15\n\rmin_wake_secs\x18\x08 \x01(\r\x12\"\n\x1a\x64\x65vice_battery_ina_address\x18\t \x01(\r\x12\x18\n\x10powermon_enables\x18 \x01(\x04\x1a\xe5\x03\n\rNetworkConfig\x12\x14\n\x0cwifi_enabled\x18\x01 \x01(\x08\x12\x11\n\twifi_ssid\x18\x03 \x01(\t\x12\x10\n\x08wifi_psk\x18\x04 \x01(\t\x12\x12\n\nntp_server\x18\x05 \x01(\t\x12\x13\n\x0b\x65th_enabled\x18\x06 \x01(\x08\x12\x42\n\x0c\x61\x64\x64ress_mode\x18\x07 \x01(\x0e\x32,.meshtastic.Config.NetworkConfig.AddressMode\x12@\n\x0bipv4_config\x18\x08 \x01(\x0b\x32+.meshtastic.Config.NetworkConfig.IpV4Config\x12\x16\n\x0ersyslog_server\x18\t \x01(\t\x12\x19\n\x11\x65nabled_protocols\x18\n \x01(\r\x12\x14\n\x0cipv6_enabled\x18\x0b \x01(\x08\x1a\x46\n\nIpV4Config\x12\n\n\x02ip\x18\x01 \x01(\x07\x12\x0f\n\x07gateway\x18\x02 \x01(\x07\x12\x0e\n\x06subnet\x18\x03 \x01(\x07\x12\x0b\n\x03\x64ns\x18\x04 \x01(\x07\"#\n\x0b\x41\x64\x64ressMode\x12\x08\n\x04\x44HCP\x10\x00\x12\n\n\x06STATIC\x10\x01\"4\n\rProtocolFlags\x12\x10\n\x0cNO_BROADCAST\x10\x00\x12\x11\n\rUDP_BROADCAST\x10\x01\x1a\x89\x08\n\rDisplayConfig\x12\x16\n\x0escreen_on_secs\x18\x01 \x01(\r\x12V\n\ngps_format\x18\x02 \x01(\x0e\x32>.meshtastic.Config.DisplayConfig.DeprecatedGpsCoordinateFormatB\x02\x18\x01\x12!\n\x19\x61uto_screen_carousel_secs\x18\x03 \x01(\r\x12\x1d\n\x11\x63ompass_north_top\x18\x04 \x01(\x08\x42\x02\x18\x01\x12\x13\n\x0b\x66lip_screen\x18\x05 \x01(\x08\x12<\n\x05units\x18\x06 \x01(\x0e\x32-.meshtastic.Config.DisplayConfig.DisplayUnits\x12\x37\n\x04oled\x18\x07 \x01(\x0e\x32).meshtastic.Config.DisplayConfig.OledType\x12\x41\n\x0b\x64isplaymode\x18\x08 \x01(\x0e\x32,.meshtastic.Config.DisplayConfig.DisplayMode\x12\x14\n\x0cheading_bold\x18\t \x01(\x08\x12\x1d\n\x15wake_on_tap_or_motion\x18\n \x01(\x08\x12P\n\x13\x63ompass_orientation\x18\x0b \x01(\x0e\x32\x33.meshtastic.Config.DisplayConfig.CompassOrientation\x12\x15\n\ruse_12h_clock\x18\x0c \x01(\x08\x12\x1a\n\x12use_long_node_name\x18\r \x01(\x08\"+\n\x1d\x44\x65precatedGpsCoordinateFormat\x12\n\n\x06UNUSED\x10\x00\"(\n\x0c\x44isplayUnits\x12\n\n\x06METRIC\x10\x00\x12\x0c\n\x08IMPERIAL\x10\x01\"f\n\x08OledType\x12\r\n\tOLED_AUTO\x10\x00\x12\x10\n\x0cOLED_SSD1306\x10\x01\x12\x0f\n\x0bOLED_SH1106\x10\x02\x12\x0f\n\x0bOLED_SH1107\x10\x03\x12\x17\n\x13OLED_SH1107_128_128\x10\x04\"A\n\x0b\x44isplayMode\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08TWOCOLOR\x10\x01\x12\x0c\n\x08INVERTED\x10\x02\x12\t\n\x05\x43OLOR\x10\x03\"\xba\x01\n\x12\x43ompassOrientation\x12\r\n\tDEGREES_0\x10\x00\x12\x0e\n\nDEGREES_90\x10\x01\x12\x0f\n\x0b\x44\x45GREES_180\x10\x02\x12\x0f\n\x0b\x44\x45GREES_270\x10\x03\x12\x16\n\x12\x44\x45GREES_0_INVERTED\x10\x04\x12\x17\n\x13\x44\x45GREES_90_INVERTED\x10\x05\x12\x18\n\x14\x44\x45GREES_180_INVERTED\x10\x06\x12\x18\n\x14\x44\x45GREES_270_INVERTED\x10\x07\x1a\xda\x07\n\nLoRaConfig\x12\x12\n\nuse_preset\x18\x01 \x01(\x08\x12?\n\x0cmodem_preset\x18\x02 \x01(\x0e\x32).meshtastic.Config.LoRaConfig.ModemPreset\x12\x11\n\tbandwidth\x18\x03 \x01(\r\x12\x15\n\rspread_factor\x18\x04 \x01(\r\x12\x13\n\x0b\x63oding_rate\x18\x05 \x01(\r\x12\x18\n\x10\x66requency_offset\x18\x06 \x01(\x02\x12\x38\n\x06region\x18\x07 \x01(\x0e\x32(.meshtastic.Config.LoRaConfig.RegionCode\x12\x11\n\thop_limit\x18\x08 \x01(\r\x12\x12\n\ntx_enabled\x18\t \x01(\x08\x12\x10\n\x08tx_power\x18\n \x01(\x05\x12\x13\n\x0b\x63hannel_num\x18\x0b \x01(\r\x12\x1b\n\x13override_duty_cycle\x18\x0c \x01(\x08\x12\x1e\n\x16sx126x_rx_boosted_gain\x18\r \x01(\x08\x12\x1a\n\x12override_frequency\x18\x0e \x01(\x02\x12\x17\n\x0fpa_fan_disabled\x18\x0f \x01(\x08\x12\x17\n\x0fignore_incoming\x18g \x03(\r\x12\x13\n\x0bignore_mqtt\x18h \x01(\x08\x12\x19\n\x11\x63onfig_ok_to_mqtt\x18i \x01(\x08\"\xae\x02\n\nRegionCode\x12\t\n\x05UNSET\x10\x00\x12\x06\n\x02US\x10\x01\x12\n\n\x06\x45U_433\x10\x02\x12\n\n\x06\x45U_868\x10\x03\x12\x06\n\x02\x43N\x10\x04\x12\x06\n\x02JP\x10\x05\x12\x07\n\x03\x41NZ\x10\x06\x12\x06\n\x02KR\x10\x07\x12\x06\n\x02TW\x10\x08\x12\x06\n\x02RU\x10\t\x12\x06\n\x02IN\x10\n\x12\n\n\x06NZ_865\x10\x0b\x12\x06\n\x02TH\x10\x0c\x12\x0b\n\x07LORA_24\x10\r\x12\n\n\x06UA_433\x10\x0e\x12\n\n\x06UA_868\x10\x0f\x12\n\n\x06MY_433\x10\x10\x12\n\n\x06MY_919\x10\x11\x12\n\n\x06SG_923\x10\x12\x12\n\n\x06PH_433\x10\x13\x12\n\n\x06PH_868\x10\x14\x12\n\n\x06PH_915\x10\x15\x12\x0b\n\x07\x41NZ_433\x10\x16\x12\n\n\x06KZ_433\x10\x17\x12\n\n\x06KZ_863\x10\x18\x12\n\n\x06NP_865\x10\x19\x12\n\n\x06\x42R_902\x10\x1a\"\xa9\x01\n\x0bModemPreset\x12\r\n\tLONG_FAST\x10\x00\x12\r\n\tLONG_SLOW\x10\x01\x12\x16\n\x0eVERY_LONG_SLOW\x10\x02\x1a\x02\x08\x01\x12\x0f\n\x0bMEDIUM_SLOW\x10\x03\x12\x0f\n\x0bMEDIUM_FAST\x10\x04\x12\x0e\n\nSHORT_SLOW\x10\x05\x12\x0e\n\nSHORT_FAST\x10\x06\x12\x11\n\rLONG_MODERATE\x10\x07\x12\x0f\n\x0bSHORT_TURBO\x10\x08\x1a\xad\x01\n\x0f\x42luetoothConfig\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12<\n\x04mode\x18\x02 \x01(\x0e\x32..meshtastic.Config.BluetoothConfig.PairingMode\x12\x11\n\tfixed_pin\x18\x03 \x01(\r\"8\n\x0bPairingMode\x12\x0e\n\nRANDOM_PIN\x10\x00\x12\r\n\tFIXED_PIN\x10\x01\x12\n\n\x06NO_PIN\x10\x02\x1a\xb6\x01\n\x0eSecurityConfig\x12\x12\n\npublic_key\x18\x01 \x01(\x0c\x12\x13\n\x0bprivate_key\x18\x02 \x01(\x0c\x12\x11\n\tadmin_key\x18\x03 \x03(\x0c\x12\x12\n\nis_managed\x18\x04 \x01(\x08\x12\x16\n\x0eserial_enabled\x18\x05 \x01(\x08\x12\x1d\n\x15\x64\x65\x62ug_log_api_enabled\x18\x06 \x01(\x08\x12\x1d\n\x15\x61\x64min_channel_enabled\x18\x08 \x01(\x08\x1a\x12\n\x10SessionkeyConfigB\x11\n\x0fpayload_variantBb\n\x14org.meshtastic.protoB\x0c\x43onfigProtosZ\"github.com/meshtastic/go/generated\xaa\x02\x14Meshtastic.Protobufs\xba\x02\x00\x62\x06proto3"
|
|
11
|
+
|
|
12
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
13
|
+
pool.add_serialized_file(descriptor_data)
|
|
14
|
+
|
|
15
|
+
module Meshtastic
|
|
16
|
+
Config = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config").msgclass
|
|
17
|
+
Config::DeviceConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.DeviceConfig").msgclass
|
|
18
|
+
Config::DeviceConfig::Role = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.DeviceConfig.Role").enummodule
|
|
19
|
+
Config::DeviceConfig::RebroadcastMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.DeviceConfig.RebroadcastMode").enummodule
|
|
20
|
+
Config::DeviceConfig::BuzzerMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.DeviceConfig.BuzzerMode").enummodule
|
|
21
|
+
Config::PositionConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.PositionConfig").msgclass
|
|
22
|
+
Config::PositionConfig::PositionFlags = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.PositionConfig.PositionFlags").enummodule
|
|
23
|
+
Config::PositionConfig::GpsMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.PositionConfig.GpsMode").enummodule
|
|
24
|
+
Config::PowerConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.PowerConfig").msgclass
|
|
25
|
+
Config::NetworkConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.NetworkConfig").msgclass
|
|
26
|
+
Config::NetworkConfig::IpV4Config = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.NetworkConfig.IpV4Config").msgclass
|
|
27
|
+
Config::NetworkConfig::AddressMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.NetworkConfig.AddressMode").enummodule
|
|
28
|
+
Config::NetworkConfig::ProtocolFlags = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.NetworkConfig.ProtocolFlags").enummodule
|
|
29
|
+
Config::DisplayConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.DisplayConfig").msgclass
|
|
30
|
+
Config::DisplayConfig::DeprecatedGpsCoordinateFormat = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.DisplayConfig.DeprecatedGpsCoordinateFormat").enummodule
|
|
31
|
+
Config::DisplayConfig::DisplayUnits = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.DisplayConfig.DisplayUnits").enummodule
|
|
32
|
+
Config::DisplayConfig::OledType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.DisplayConfig.OledType").enummodule
|
|
33
|
+
Config::DisplayConfig::DisplayMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.DisplayConfig.DisplayMode").enummodule
|
|
34
|
+
Config::DisplayConfig::CompassOrientation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.DisplayConfig.CompassOrientation").enummodule
|
|
35
|
+
Config::LoRaConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.LoRaConfig").msgclass
|
|
36
|
+
Config::LoRaConfig::RegionCode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.LoRaConfig.RegionCode").enummodule
|
|
37
|
+
Config::LoRaConfig::ModemPreset = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.LoRaConfig.ModemPreset").enummodule
|
|
38
|
+
Config::BluetoothConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.BluetoothConfig").msgclass
|
|
39
|
+
Config::BluetoothConfig::PairingMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.BluetoothConfig.PairingMode").enummodule
|
|
40
|
+
Config::SecurityConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.SecurityConfig").msgclass
|
|
41
|
+
Config::SessionkeyConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("meshtastic.Config.SessionkeyConfig").msgclass
|
|
42
|
+
end
|