display snr in recv mesgs

This commit is contained in:
Florent 2025-04-19 08:24:54 +02:00
parent d56038133c
commit a35aa83126

View file

@ -74,6 +74,13 @@ async def process_event_message(mc, ev, json_output, end="\n", above=False):
else : else :
await mc.ensure_contacts() await mc.ensure_contacts()
data = ev.payload data = ev.payload
if data['path_len'] == 255 :
path_str = "D"
else :
path_str = f"{data['path_len']}"
if "SNR" in data and process_event_message.print_snr:
path_str = path_str + f",{data['SNR']}dB"
if (data['type'] == "PRIV") : if (data['type'] == "PRIV") :
ct = mc.get_contact_by_key_prefix(data['pubkey_prefix']) ct = mc.get_contact_by_key_prefix(data['pubkey_prefix'])
if ct is None: if ct is None:
@ -81,10 +88,6 @@ async def process_event_message(mc, ev, json_output, end="\n", above=False):
name = data["pubkey_prefix"] name = data["pubkey_prefix"]
else: else:
name = ct["adv_name"] name = ct["adv_name"]
if data['path_len'] == 255 :
path_str = "D"
else :
path_str = str(data['path_len'])
disp = f"{ANSI_GREEN}{name}" disp = f"{ANSI_GREEN}{name}"
if 'signature' in data: if 'signature' in data:
@ -98,11 +101,7 @@ async def process_event_message(mc, ev, json_output, end="\n", above=False):
else: else:
print(disp) print(disp)
elif (data['type'] == "CHAN") : elif (data['type'] == "CHAN") :
if data['path_len'] == 255 : path_str = f"{ANSI_YELLOW}({path_str}){ANSI_END}"
path_str = "D"
else :
path_str = f"{ANSI_YELLOW}({data['path_len']}){ANSI_END}"
if above: if above:
print_above(f"{ANSI_GREEN}ch{data['channel_idx']}({path_str}): {data['text']}") print_above(f"{ANSI_GREEN}ch{data['channel_idx']}({path_str}): {data['text']}")
else: else:
@ -110,6 +109,7 @@ async def process_event_message(mc, ev, json_output, end="\n", above=False):
else: else:
print(json.dumps(ev.payload)) print(json.dumps(ev.payload))
return True return True
process_event_message.print_snr=False
async def handle_message(event): async def handle_message(event):
""" Process incoming message events """ """ Process incoming message events """
@ -136,8 +136,11 @@ def make_completion_dict(contacts):
"infos" : None, "infos" : None,
"advert" : None, "advert" : None,
"floodadv" : None, "floodadv" : None,
"set" : {"pin" : None, "radio" : None, "tuning" : None, "tx" : None, "name" : None, "lat" : None, "lon" : None, "coords" : None}, "set" : {"pin" : None, "radio" : None, "tuning" : None, "tx" : None,
"get" : {"name" : None, "bat" : None, "coords" : None, "radio" : None, "tx" : None}, "name" : None, "lat" : None, "lon" : None, "coords" : None,
"print_snr" : {"on":None, "off": None}},
"get" : {"name" : None, "bat" : None, "coords" : None, "radio" : None,
"tx" : None, "print_snr" : None},
"reboot" : None, "reboot" : None,
"card" : None, "card" : None,
"login" : None, "login" : None,
@ -433,7 +436,13 @@ async def next_cmd(mc, cmds, json_output=False):
name <name> : node name name <name> : node name
lat <lat> : latitude lat <lat> : latitude
lon <lon> : longitude lon <lon> : longitude
coords <lat,lon> : coordinates""") coords <lat,lon> : coordinates
print_snr <on/off> : toggle snr display in messages""")
case "print_snr" :
if cmds[2] == "on" :
process_event_message.print_snr = True
else:
process_event_message.print_snr = False
case "pin": case "pin":
res = await mc.commands.set_devicepin(cmds[2]) res = await mc.commands.set_devicepin(cmds[2])
logger.debug(res) logger.debug(res)
@ -522,11 +531,17 @@ async def next_cmd(mc, cmds, json_output=False):
match cmds[1]: match cmds[1]:
case "help": case "help":
print("""Gets parameters from node print("""Gets parameters from node
name : node name name : node name
bat : battery level in mV bat : battery level in mV
coords : adv coordinates coords : adv coordinates
radio : radio parameters radio : radio parameters
tx : tx power""") tx : tx power
print_snr : snr display in messages""")
case "print_snr":
if json_output :
print(json.dumps({"print_snr" : process_event_message.print_snr}))
else:
print(f"{"on" if process_event_message.print_snr else "off"}")
case "name": case "name":
if json_output : if json_output :
print(json.dumps(mc.self_info["name"])) print(json.dumps(mc.self_info["name"]))