Skip to content

Commit cc2067b

Browse files
committed
clean up settings response to use CopyFrom to be better at repeated and nested fields
1 parent 180ddbc commit cc2067b

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

meshtastic/node.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ def onResponseRequestSettings(self, p):
9898
print("")
9999
adminMessage = p["decoded"]["admin"]
100100
if "getConfigResponse" in adminMessage:
101+
oneof = "get_config_response"
101102
resp = adminMessage["getConfigResponse"]
102103
field = list(resp.keys())[0]
103104
config_type = self.localConfig.DESCRIPTOR.fields_by_name.get(
@@ -106,6 +107,7 @@ def onResponseRequestSettings(self, p):
106107
if config_type is not None:
107108
config_values = getattr(self.localConfig, config_type.name)
108109
elif "getModuleConfigResponse" in adminMessage:
110+
oneof = "get_module_config_response"
109111
resp = adminMessage["getModuleConfigResponse"]
110112
field = list(resp.keys())[0]
111113
config_type = self.moduleConfig.DESCRIPTOR.fields_by_name.get(
@@ -118,8 +120,8 @@ def onResponseRequestSettings(self, p):
118120
)
119121
return
120122
if config_values is not None:
121-
for key, value in resp[field].items():
122-
setattr(config_values, camel_to_snake(key), value)
123+
raw_config = getattr(getattr(adminMessage['raw'], oneof), field)
124+
config_values.CopyFrom(raw_config)
123125
print(f"{str(camel_to_snake(field))}:\n{str(config_values)}")
124126

125127
def requestConfig(self, configType):

0 commit comments

Comments
 (0)