You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
mesh_interface drops ModuleConfig.tak from the config dump — HasField chain never extended #964
MeshInterface._handleFromRadio() accumulates the device's module config via a hand-maintained elif fromRadio.moduleConfig.HasField(...) chain (meshtastic/mesh_interface.py, ~line 1432). The chain was never extended for tak, so moduleConfig { tak { ... } } packets sent by the firmware during the config dump are silently dropped and iface.localNode.moduleConfig.tak always reads as default (team=0 role=0), even when the device has values set.
Version
2.7.11 (current PyPI release; the chain in master ends at traffic_management).
importmeshtastic.serial_interfaceassiiface=si.SerialInterface()
print(iface.localNode.moduleConfig.tak) # always emptyprint([f.nameforf, _iniface.localNode.moduleConfig.ListFields()]) # no 'tak'
Enabling debug logging shows the packet does arrive on the wire:
moduleConfig { tak { team: Cyan role: Medic } }
…but nothing copies it into localNode.moduleConfig, so the section is missing from ListFields() and --get-style reads report stale defaults.
Why it matters
This makes firmware-side TAK config verification misleading: while testing meshtastic/firmware#11216 (TAK team/role never persisted), the library's read path made a working fix look broken — an admin get_module_config(TAK_CONFIG) round-trip returned the correct values while localNode.moduleConfig.tak stayed empty.
or replace the whole chain with a generic copy so future sections can't be forgotten (this is the second time this bug class has appeared — the firmware's set/get switches had the same gap for tak):
Activity