Skip to content

Commit bde5db9

Browse files
committed
Fixed ch-set command in setPref
1 parent 148ae49 commit bde5db9

File tree

4 files changed

+46
-30
lines changed

4 files changed

+46
-30
lines changed

.vscode/launch.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,15 @@
132132
"justMyCode": true,
133133
"args": ["--debug", "--setchan", "psk", ""]
134134
},
135+
{
136+
"name": "meshtastic --ch-set",
137+
"type": "python",
138+
"request": "launch",
139+
"module": "meshtastic",
140+
"justMyCode": true,
141+
"args": ["--debug", "--ch-set", "channel_num", "0", "--ch-index", "0"]
142+
},
143+
135144
{
136145
"name": "meshtastic seturl",
137146
"type": "python",

meshtastic/__main__.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ def getPref(config, comp_name):
6565
logging.debug(f'use camel:{Globals.getInstance().get_camel_case()}')
6666

6767
objDesc = config.DESCRIPTOR
68+
print()
6869
config_type = objDesc.fields_by_name.get(name[0])
6970
pref = False
7071
if config_type:
@@ -106,8 +107,11 @@ def setPref(config, comp_name, valStr):
106107
objDesc = config.DESCRIPTOR
107108
config_type = objDesc.fields_by_name.get(name[0])
108109
pref = False
109-
if config_type:
110+
if config_type and config_type.message_type is not None:
110111
pref = config_type.message_type.fields_by_name.get(snake_name)
112+
# Others like ChannelSettings are standalone
113+
elif config_type:
114+
pref = config_type
111115

112116
if (not pref) or (not config_type):
113117
return False
@@ -143,8 +147,11 @@ def setPref(config, comp_name, valStr):
143147
# note: 'ignore_incoming' is a repeating field
144148
if snake_name != 'ignore_incoming':
145149
try:
146-
config_values = getattr(config, config_type.name)
147-
setattr(config_values, pref.name, val)
150+
if config_type.message_type is not None:
151+
config_values = getattr(config, config_type.name)
152+
setattr(config_values, pref.name, val)
153+
else:
154+
setattr(config, snake_name, val)
148155
except TypeError:
149156
# The setter didn't like our arg type guess try again as a string
150157
config_values = getattr(config, config_type.name)
@@ -158,10 +165,11 @@ def setPref(config, comp_name, valStr):
158165
print(f"Adding '{val}' to the ignore_incoming list")
159166
config_type.message_type.ignore_incoming.extend([val])
160167

168+
prefix = f"{name[0]}." if config_type.message_type is not None else ""
161169
if Globals.getInstance().get_camel_case():
162-
print(f"Set {name[0]}.{camel_name} to {valStr}")
170+
print(f"Set {prefix}{camel_name} to {valStr}")
163171
else:
164-
print(f"Set {name[0]}.{snake_name} to {valStr}")
172+
print(f"Set {prefix}{snake_name} to {valStr}")
165173

166174
return True
167175

meshtastic/module_config_pb2.py

Lines changed: 23 additions & 24 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

proto

Submodule proto updated from 5793089 to d8213ad

0 commit comments

Comments
 (0)