Skip to content

Commit b9d9268

Browse files
committed
can print recvs msgs as json ...
1 parent 4974f83 commit b9d9268

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

src/meshcore_cli/meshcore_cli.py

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,14 @@ async def process_event_message(mc, ev, json_output, end="\n", above=False):
7070
logger.error(f"Error retrieving messages: {ev.payload}")
7171
return False
7272
elif json_output :
73-
print(json.dumps(ev.payload, indent=4), end=end, flush=True)
73+
if print_above :
74+
print_above(json.dumps(ev.payload))
75+
else:
76+
print(json.dumps(ev.payload), end=end, flush=True)
7477
else :
7578
await mc.ensure_contacts()
7679
data = ev.payload
80+
7781
if data['path_len'] == 255 :
7882
path_str = "D"
7983
else :
@@ -100,6 +104,7 @@ async def process_event_message(mc, ev, json_output, end="\n", above=False):
100104
print_above(disp)
101105
else:
102106
print(disp)
107+
103108
elif (data['type'] == "CHAN") :
104109
path_str = f"{ANSI_YELLOW}({path_str}){ANSI_END}"
105110
disp = f"{ANSI_GREEN}ch{data['channel_idx']}{path_str}: {data['text']}"
@@ -139,9 +144,10 @@ def make_completion_dict(contacts):
139144
"floodadv" : None,
140145
"set" : {"pin" : None, "radio" : None, "tuning" : None, "tx" : None,
141146
"name" : None, "lat" : None, "lon" : None, "coords" : None,
142-
"print_snr" : {"on":None, "off": None}},
147+
"print_snr" : {"on":None, "off": None},
148+
"json_msgs" : {"on":None, "off": None}},
143149
"get" : {"name" : None, "bat" : None, "coords" : None, "radio" : None,
144-
"tx" : None, "print_snr" : None},
150+
"tx" : None, "print_snr" : None, "json_msgs":None},
145151
"reboot" : None,
146152
"card" : None,
147153
"login" : None,
@@ -182,7 +188,6 @@ async def interactive_loop(mc, to=None) :
182188
\"quit\", \"q\", CTRL+D will end interactive mode""")
183189

184190
await mc.ensure_contacts()
185-
handle_message.json_output = False
186191
handle_message.above = True
187192
await subscribe_to_msgs(mc)
188193
if to is None:
@@ -440,10 +445,9 @@ async def next_cmd(mc, cmds, json_output=False):
440445
coords <lat,lon> : coordinates
441446
print_snr <on/off> : toggle snr display in messages""")
442447
case "print_snr" :
443-
if cmds[2] == "on" :
444-
process_event_message.print_snr = True
445-
else:
446-
process_event_message.print_snr = False
448+
process_event_message.print_snr = (cmds[2] == "on")
449+
case "json_msgs" :
450+
handle_message.json_output = (cmds[2] == "on")
447451
case "pin":
448452
res = await mc.commands.set_devicepin(cmds[2])
449453
logger.debug(res)
@@ -538,6 +542,11 @@ async def next_cmd(mc, cmds, json_output=False):
538542
radio : radio parameters
539543
tx : tx power
540544
print_snr : snr display in messages""")
545+
case "json_msgs":
546+
if json_output :
547+
print(json.dumps({"json_msgs" : handle_message.json_output}))
548+
else:
549+
print(f"{'on' if handle_message.json_output else 'off'}")
541550
case "print_snr":
542551
if json_output :
543552
print(json.dumps({"print_snr" : process_event_message.print_snr}))

0 commit comments

Comments
 (0)