@@ -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