Skip to content

Commit a35aa83

Browse files
committed
display snr in recv mesgs
1 parent d560381 commit a35aa83

File tree

1 file changed

+32
-17
lines changed

1 file changed

+32
-17
lines changed

src/meshcore_cli/meshcore_cli.py

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -74,17 +74,20 @@ async def process_event_message(mc, ev, json_output, end="\n", above=False):
7474
else :
7575
await mc.ensure_contacts()
7676
data = ev.payload
77+
if data['path_len'] == 255 :
78+
path_str = "D"
79+
else :
80+
path_str = f"{data['path_len']}"
81+
if "SNR" in data and process_event_message.print_snr:
82+
path_str = path_str + f",{data['SNR']}dB"
83+
7784
if (data['type'] == "PRIV") :
7885
ct = mc.get_contact_by_key_prefix(data['pubkey_prefix'])
7986
if ct is None:
8087
logger.info(f"Unknown contact with pubkey prefix: {data['pubkey_prefix']}")
8188
name = data["pubkey_prefix"]
8289
else:
8390
name = ct["adv_name"]
84-
if data['path_len'] == 255 :
85-
path_str = "D"
86-
else :
87-
path_str = str(data['path_len'])
8891

8992
disp = f"{ANSI_GREEN}{name}"
9093
if 'signature' in data:
@@ -98,18 +101,15 @@ async def process_event_message(mc, ev, json_output, end="\n", above=False):
98101
else:
99102
print(disp)
100103
elif (data['type'] == "CHAN") :
101-
if data['path_len'] == 255 :
102-
path_str = "D"
103-
else :
104-
path_str = f"{ANSI_YELLOW}({data['path_len']}){ANSI_END}"
105-
104+
path_str = f"{ANSI_YELLOW}({path_str}){ANSI_END}"
106105
if above:
107106
print_above(f"{ANSI_GREEN}ch{data['channel_idx']}({path_str}): {data['text']}")
108107
else:
109108
print(f"ch{data['channel_idx']}({path_str}): {data['text']}")
110109
else:
111110
print(json.dumps(ev.payload))
112111
return True
112+
process_event_message.print_snr=False
113113

114114
async def handle_message(event):
115115
""" Process incoming message events """
@@ -136,8 +136,11 @@ def make_completion_dict(contacts):
136136
"infos" : None,
137137
"advert" : None,
138138
"floodadv" : None,
139-
"set" : {"pin" : None, "radio" : None, "tuning" : None, "tx" : None, "name" : None, "lat" : None, "lon" : None, "coords" : None},
140-
"get" : {"name" : None, "bat" : None, "coords" : None, "radio" : None, "tx" : None},
139+
"set" : {"pin" : None, "radio" : None, "tuning" : None, "tx" : None,
140+
"name" : None, "lat" : None, "lon" : None, "coords" : None,
141+
"print_snr" : {"on":None, "off": None}},
142+
"get" : {"name" : None, "bat" : None, "coords" : None, "radio" : None,
143+
"tx" : None, "print_snr" : None},
141144
"reboot" : None,
142145
"card" : None,
143146
"login" : None,
@@ -433,7 +436,13 @@ async def next_cmd(mc, cmds, json_output=False):
433436
name <name> : node name
434437
lat <lat> : latitude
435438
lon <lon> : longitude
436-
coords <lat,lon> : coordinates""")
439+
coords <lat,lon> : coordinates
440+
print_snr <on/off> : toggle snr display in messages""")
441+
case "print_snr" :
442+
if cmds[2] == "on" :
443+
process_event_message.print_snr = True
444+
else:
445+
process_event_message.print_snr = False
437446
case "pin":
438447
res = await mc.commands.set_devicepin(cmds[2])
439448
logger.debug(res)
@@ -522,11 +531,17 @@ async def next_cmd(mc, cmds, json_output=False):
522531
match cmds[1]:
523532
case "help":
524533
print("""Gets parameters from node
525-
name : node name
526-
bat : battery level in mV
527-
coords : adv coordinates
528-
radio : radio parameters
529-
tx : tx power""")
534+
name : node name
535+
bat : battery level in mV
536+
coords : adv coordinates
537+
radio : radio parameters
538+
tx : tx power
539+
print_snr : snr display in messages""")
540+
case "print_snr":
541+
if json_output :
542+
print(json.dumps({"print_snr" : process_event_message.print_snr}))
543+
else:
544+
print(f"{"on" if process_event_message.print_snr else "off"}")
530545
case "name":
531546
if json_output :
532547
print(json.dumps(mc.self_info["name"]))

0 commit comments

Comments
 (0)