mirror of
https://github.com/meshcore-dev/meshcore_py.git
synced 2026-04-20 22:13:49 +00:00
support only_prefix flag on discover node
This commit is contained in:
parent
d3c9c8d984
commit
a61616297e
3 changed files with 17 additions and 5 deletions
|
|
@ -10,9 +10,9 @@ logger = logging.getLogger("meshcore")
|
|||
class ControlDataCommandHandler(CommandHandlerBase):
|
||||
"""Helper functions to handle binary requests through binary commands"""
|
||||
|
||||
async def send_control_data (self, control_type: ControlType, payload: bytes) -> Event:
|
||||
async def send_control_data (self, control_type: int, payload: bytes) -> Event:
|
||||
data = bytearray([PacketType.SEND_CONTROL_DATA.value])
|
||||
data.extend(control_type.value.to_bytes(1, "little", signed = False))
|
||||
data.extend(control_type.to_bytes(1, "little", signed = False))
|
||||
data.extend(payload)
|
||||
|
||||
result = await self.send(data, [EventType.OK, EventType.ERROR])
|
||||
|
|
@ -21,6 +21,7 @@ class ControlDataCommandHandler(CommandHandlerBase):
|
|||
async def send_node_discover_req (
|
||||
self,
|
||||
filter: int,
|
||||
prefix_only: bool=True,
|
||||
tag: int=None,
|
||||
since: int=None
|
||||
) -> Event:
|
||||
|
|
@ -36,7 +37,11 @@ class ControlDataCommandHandler(CommandHandlerBase):
|
|||
|
||||
logger.debug(f"sending node discover req {data.hex()}")
|
||||
|
||||
res = await self.send_control_data(ControlType.NODE_DISCOVER_REQ, data)
|
||||
flags = 0
|
||||
flags = flags | 1 if prefix_only else flags
|
||||
|
||||
res = await self.send_control_data(
|
||||
ControlType.NODE_DISCOVER_REQ.value|flags, data)
|
||||
|
||||
if res is None:
|
||||
return None
|
||||
|
|
|
|||
|
|
@ -618,7 +618,14 @@ class MessageReader:
|
|||
ndr["node_type"] = payload_type & 0x0F
|
||||
ndr["SNR_in"] = int.from_bytes(pbuf.read(1), byteorder="little", signed=True)/4
|
||||
ndr["tag"] = pbuf.read(4).hex()
|
||||
ndr["pubkey"] = pbuf.read(32).hex()
|
||||
|
||||
pubkey = pbuf.read()
|
||||
if len(pubkey) < 32:
|
||||
pubkey = pubkey[0:8]
|
||||
else:
|
||||
pubkey = pubkey[0:32]
|
||||
|
||||
ndr["pubkey"] = pubkey.hex()
|
||||
|
||||
attributes = {
|
||||
"node_type" : ndr["node_type"],
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue