Allow a faster nodedb-less startup on 2.3.11+ with --no-nodes and the magic value from meshtastic/firmware#3949

This commit is contained in:
Ian McEwen
2024-06-05 18:52:35 -07:00
parent ee857c5128
commit e6d61c6603
7 changed files with 30 additions and 14 deletions

View File

@@ -26,6 +26,7 @@ from meshtastic import (
BROADCAST_ADDR,
BROADCAST_NUM,
LOCAL_ADDR,
NODELESS_WANT_CONFIG_ID,
ResponseHandler,
protocols,
publishingThread,
@@ -57,12 +58,14 @@ class MeshInterface:
self.message = message
super().__init__(self.message)
def __init__(self, debugOut=None, noProto: bool=False) -> None:
def __init__(self, debugOut=None, noProto: bool=False, noNodes: bool=False) -> None:
"""Constructor
Keyword Arguments:
noProto -- If True, don't try to run our protocol on the
link - just be a dumb serial client.
noNodes -- If True, instruct the node to not send its nodedb
on startup, just other configuration information.
"""
self.debugOut = debugOut
self.nodes: Optional[Dict[str,Dict]] = None # FIXME
@@ -81,7 +84,8 @@ class MeshInterface:
random.seed() # FIXME, we should not clobber the random seedval here, instead tell user they must call it
self.currentPacketId: int = random.randint(0, 0xFFFFFFFF)
self.nodesByNum: Optional[Dict[int, Dict]] = None
self.configId: Optional[int] = None
self.noNodes: bool = noNodes
self.configId: Optional[int] = NODELESS_WANT_CONFIG_ID if noNodes else None
self.gotResponse: bool = False # used in gpio read
self.mask: Optional[int] = None # used in gpio read and gpio watch
self.queueStatus: Optional[mesh_pb2.QueueStatus] = None
@@ -713,7 +717,8 @@ class MeshInterface:
self._localChannels = [] # empty until we start getting channels pushed from the device (during config)
startConfig = mesh_pb2.ToRadio()
self.configId = random.randint(0, 0xFFFFFFFF)
if self.configId is None or not self.noNodes:
self.configId = random.randint(0, 0xFFFFFFFF)
startConfig.want_config_id = self.configId
self._sendToRadio(startConfig)